Jawaban singkatnya:
File preferensi APT / etc / apt / preferensi dapat digunakan untuk mengontrol versi paket mana yang akan dipilih untuk instalasi.
Ini adalah file /etc/apt/preferences
, yang apt-get
digunakan untuk memutuskan, versi mana yang harus dipilih jika ada banyak versi paket tunggal. Dengan ini, paket apa pun yang berasal dari repositori lokal, akan diutamakan daripada paket lain.
Paket: *
Pin: asal ""
Pin-Prioritas: 1001
Ini tidak akan mengontrol versi, tetapi preferensi sumber jika kedua paket memiliki versi yang sama. Jika Anda perlu menetapkan prioritas tertinggi untuk versi paket yang sama di repo lokal Anda, daftarkan mereka di bagian atas /etc/apt/sources.list
file>
Jawab pertanyaan awal:
Bagaimana cara menetapkan prioritas tertinggi ke repositori lokal tanpa menggunakan file sources.list?
Tidak ada cara untuk menetapkan prioritas tertinggi ke repositori lokal tanpa menggunakan sources.list
file. Anda harus meletakkannya di atas "sources.list" jika Anda ingin menetapkan prioritas tertinggi untuk repo lokal Anda.
Ringkasan jawaban untuk pertanyaan ini:
Bagaimana saya bisa membuat apt-get prefer paket repositori lokal daripada mengunduh lagi versi paket yang sama dari repositori resmi? Repositori lokal ditandatangani dan dipercaya. Kami sudah mencoba prioritas preferensi yang tepat.
Menggunakan /etc/apt/sources.list
file, Anda harus meletakkan baris repositori lokal Anda di bagian atas file ini. seperti yang di bawah ini.
deb cdrom: [Kubuntu 12.04 LTS _Pulise Pangolin_ - Rilis i386 (20120424)] / tepat dibatasi utama
file deb: / media / Utama / Precise-Debs-New /
file deb: / media / Utama / Linux-Software / Ubuntu / Precise /
deb http://archive.ubuntu.com/ubuntu multiverse utama yang tepat dibatasi semesta
deb-src http://archive.ubuntu.com/ubuntu tepat semesta multiverse utama dibatasi #Ditambahkan oleh properti-perangkat lunak
# deb cdrom: [Xubuntu 12.04 LTS _Precise Pangolin_ - Rilis i386 (20120423.1)] / alam semesta multiverse terbatas utama yang tepat
# deb cdrom: [Ubuntu 12.04 LTS _Precise Pangolin_ - Rilis i386 (20120423)] / tepat dibatasi utama
# deb http://archive.canonical.com/ubuntu mitra yang tepat
# deb-src http://archive.canonical.com/ubuntu mitra yang tepat
# deb http://extras.ubuntu.com/ubuntu main tepatnya
# deb-src http://extras.ubuntu.com/ubuntu utama yang tepat
Dan ya, "apt_preference" tidak ada hubungannya dengan memilih contoh paket dengan versi yang sama. Intinya di sini adalah, Anda tidak dapat menggunakan /etc/apt/preference
file untuk memaksa memilih / menggunakan .deb
file dari repositori lokal Anda dengan menetapkan prioritas tertinggi untuk yang lokal Anda. File itu (preferensi) digunakan untuk memilih versi tertentu, bukan contoh spesifik (file .deb) dari versi yang sama. Untuk kasus yang terakhir, Anda perlu menggunakan /etc/apt/sources.list
file dengan metode yang disebutkan di atas.
Penjelasan:
Sepertinya kita semua salah mengerti apt_preference
tujuannya, manual apt_preference menjelaskan hal ini dalam 3 paragraf pertama !!
File preferensi APT / etc / apt / preferensi dapat digunakan untuk mengontrol versi paket mana yang akan dipilih untuk instalasi.
Beberapa versi paket mungkin tersedia untuk instalasi ketika file sources.list (5) berisi referensi ke lebih dari satu distribusi (misalnya, stabil dan pengujian). APT memberikan prioritas untuk setiap versi yang tersedia. Tunduk pada batasan ketergantungan, apt-get (8) memilih versi dengan prioritas tertinggi untuk instalasi. File preferensi APT mengesampingkan prioritas yang ditetapkan APT untuk versi paket secara default, sehingga memberikan kontrol pengguna atas mana yang dipilih untuk instalasi.
Dan yang paling penting adalah di paragraf ketiga
Beberapa contoh paket versi yang sama mungkin tersedia ketika file sources.list (5) berisi referensi ke lebih dari satu sumber. Dalam hal ini apt-get (8) mengunduh instance yang paling awal terdaftar dalam file sources.list (5). File preferensi APT tidak mempengaruhi pilihan misalnya, hanya pilihan versi .
Orang Italia itu dibuat oleh saya
Mari kita lihat ini dengan sebuah contoh:
Saya memiliki versi tepat compiz-fusion-plugins-extra
, tetapi saya menonaktifkannya untuk demonstrasi
Ini adalah file /etc/apt/preferences
, yang apt-get
digunakan untuk memutuskan, versi mana yang harus dipilih jika ada banyak versi paket tunggal. (Dalam contoh ini, compiz-fusion-plugins-extra
ada beberapa versi.
Paket: *
Pin: asal ""
Pin-Prioritas: 1001
File ini mengatakan apt-get
untuk menginstal dari repositori lokal untuk semua paket yang memiliki beberapa versi ada di repositori berbeda.
Dengan kata lain, jika saya memiliki paket xapps
dengan versi 1.0
di repositori lokal saya, dan paket yang sama ini xapps
ada di repositori Precise dengan versi yang lebih tinggi, katakanlah 2.0
, apt-get
akan lebih suka versi dari repositori lokal, yaitu versi 1.0
.
Ini /etc/apt/sources.list
file saya
deb http://archive.ubuntu.com/ubuntu multiverse utama yang tepat dibatasi semesta
deb-src http://archive.ubuntu.com/ubuntu tepat semesta multiverse utama dibatasi #Ditambahkan oleh properti-perangkat lunak
deb http://security.ubuntu.com/ubuntu/ multiverse main-security universe utama dibatasi
deb http://archive.ubuntu.com/ubuntu pembaruan-tepat semesta multiverse utama dibatasi
deb http://archive.ubuntu.com/ubuntu-backports universe multiverse utama dibatasi
# deb http://archive.canonical.com/ubuntu mitra yang tepat
# deb-src http://archive.canonical.com/ubuntu mitra yang tepat
# deb http://extras.ubuntu.com/ubuntu main tepatnya
# deb-src http://extras.ubuntu.com/ubuntu utama yang tepat
file deb: / media / Main / Linux-Software / Ubuntu / Oneiric / #ini adalah repositori oneiric.
file deb: / media / Utama / Linux-Software / Ubuntu / Natty / natty /
file deb: / media / Utama / Linux-Software / Ubuntu / Natty / kubuntu /
file deb: / media / Utama / Linux-Software / Ubuntu / Natty / natty_new /
Meskipun, saya telah mendaftarkan repositori yang tepat sebelumnya dalam file, itu tidak menyebabkan apt-get
memilih paket dari repositori itu. Seperti yang dijelaskan dalam manual
File preferensi APT tidak mempengaruhi pilihan misalnya, hanya pilihan versi.
Jadi, output dari perintah apt-cache policy compiz-fusion-plugins-extra
itu seperti yang diharapkan seperti di bawah ini
anwar @ edubuntu-lenovo: / etc / apt $ apt-cache policy compiz-fusion-plugins-extra
compiz-fusion-plugins-extra:
Diinstal: (tidak ada)
Kandidat: 0.9.5.94-0ubuntu1 / ** memilih versi yang lebih rendah untuk prioritas ** /
Tabel versi:
0.9.7.0 ~ bzr9-0ubuntu6 0
500 Paket http://archive.ubuntu.com/ubuntu/tepat / universe i386
0.9.5.94-0ubuntu1 0
File 1001: / media / Utama / Linux-Software / Ubuntu / Oneiric / Paket
0.9.4-0ubuntu3 0
File 1001: / media / Main / Linux-Software / Ubuntu / Natty / natty / Packages
Di sini, versi kandidat adalah 0.9.5.94-0ubuntu1
, (yang ada di repositori lokal), bukan 0.9.7.0~bzr9-0ubuntu6 0
, yang ada di repositori sebelumnya. meskipun yang tepat terdaftar pertama dalam sources.list
file.
Contoh menjalankan apt-get
mencoba menginstal compiz-fusion-plugins-extra
setelah menetapkan prioritas tertinggi untuk repositori lokal.
anwar @ edubuntu-lenovo: ~ $ sudo apt-get install compiz-fusion-plugins-extra
Membaca daftar paket ... Selesai
Membangun pohon ketergantungan
Membaca informasi keadaan ... Selesai
Paket-paket berikut secara otomatis diinstal dan tidak lagi diperlukan:
x11-apps x11-xfs-utils xinit x11-session-utils libfs6
Gunakan 'apt-get autoremove' untuk menghapusnya.
Paket tambahan berikut akan diinstal:
compiz-core compiz-plugins-default compiz-plugins-extra
compiz-plugins-main-default libdecoration0 xserver-xorg-core
xserver-xorg-video-intel
Paket yang disarankan:
compizconfig-settings-manager xfonts-100dpi xfonts-75dpi
Paket-paket berikut akan DIHAPUS:
compiz compiz-gnome compizconfig-backend-gconf edubuntu-desktop
libcompizconfig0 ubuntu-desktop unity xorg xserver-xorg
xserver-xorg-input-semua xserver-xorg-input-evdev xserver-xorg-input-mouse
xserver-xorg-input-synaptics xserver-xorg-input-vmmouse
xserver-xorg-input-wacom xserver-xorg-video-semua xserver-xorg-video-ati
xserver-xorg-video-cirrus xserver-xorg-video-fbdev xserver-xorg-video-geode
xserver-xorg-video-mach64 xserver-xorg-video-mga xserver-xorg-video-neomagic
xserver-xorg-video-nouveau xserver-xorg-video-openchrome
xserver-xorg-video-qxl xserver-xorg-video-r128 xserver-xorg-video-radeon
xserver-xorg-video-s3 xserver-xorg-video-savage
xserver-xorg-video-siliconmotion xserver-xorg-video-sis
xserver-xorg-video-sisusb xserver-xorg-video-tdfx xserver-xorg-video-trident
xserver-xorg-video-vesa xserver-xorg-video-vmware
Paket BARU berikut ini akan diinstal:
compiz-fusion-plugins-extra compiz-plugins-extra
Paket-paket berikut akan DIPERBARUI:
compiz-core compiz-plugins-default compiz-plugins-main-default
libdecoration0 xserver-xorg-core xserver-xorg-video-intel
0 ditingkatkan, 2 baru dipasang, 6 diturunkan, 37 untuk dihapus dan 698 tidak ditingkatkan.
Perlu mendapatkan 0 B / 5.772 kB arsip.
Setelah operasi ini, ruang disk 8.294 kB akan dibebaskan.
Apakah Anda ingin melanjutkan [Y / n]?
Strange !!!, Ini mencoba menurunkan versi paket compiz yang sudah diinstal dengan tepat untuk menyelesaikan dependensi (cocok dengan Oneiric's) dengan yang baru dipilih compiz-fusion-plugins-extra
!!!.
Yang lebih berbahaya adalah, ia mencoba untuk menghapus paket driver grafis (xserver-xorg -....) untuk menghindari konflik dengan compizes baru.
(Mungkin, jika saya juga memilikinya di repositori lokal saya, mereka mungkin ingin downgrade dengan aman. Tetapi karena paket-paket itu biasanya diinstal, saya tidak mengunduhnya, jadi tidak ada dalam repo lokal, maka hasil ini) .
Kesimpulan : Jadi, menggunakan /etc/apt/preferences
hanya disarankan untuk digunakan dengan repositori lokal, jika Anda memiliki repositori lengkap di sistem lokal.
Bagaimana jika beberapa instance (file .deb) dari versi yang sama ada di banyak repositori.
Yang dijelaskan oleh apt_preference
manual
Beberapa contoh paket versi yang sama mungkin tersedia ketika file sources.list (5) berisi referensi ke lebih dari satu sumber. Dalam hal ini apt-get (8) mengunduh instance yang paling awal terdaftar dalam file sources.list (5).
Contoh kasus penggunaan untuk /etc/apt/preferences
file:
Contoh dari pemaksaan apt-get
untuk memilih versi yang tersedia dari repo khusus, alih-alih yang standar Ubuntu mungkin adalah distribusi "Linux Mint". Mereka menggunakan preference
file khusus ini .
Paket: *
Pin: lepaskan o = linuxmint
Pin-Prioritas: 700
Paket: *
Pin: origin packages.linuxmint.com
Pin-Prioritas: 700
Paket: *
Pin: lepaskan o = Ubuntu
Prioritas Pin: 500
Ini secara efektif menyebabkan mereka, untuk menyediakan paket ketika mereka memiliki mereka di repositori mereka. Tetapi jika mereka tidak memilikinya, mereka menggunakan repositori standar Ubuntu.
Contoh yang berjalan apt-get
setelah menetapkan prioritas tertinggi ke repositori lokal
Saya hanya ingin menginstal kubuntu-desktop
paket melalui Ubuntu untuk menguji KDE. (Saya lupa itu, saya telah menetapkan preferensi menggunakan /etc/apt/preference
file) . Saya punya iso dari Kubuntu-12.04-alternate-installer, jadi saya pikir saya bisa menggunakannya.
(setelah mengatur iso dengan benar sebagai sumber repositori) , saya berlari
sudo apt-get install kubuntu-desktop
, lalu terkejut dengan melihat output di bawah.
anwar @ edubuntu-lenovo: ~ $ sudo apt-get install kubuntu-desktop
Membaca daftar paket ... Selesai
Membangun pohon ketergantungan
Membaca informasi keadaan ... Selesai
Beberapa paket tidak dapat diinstal. Ini mungkin berarti Anda memilikinya
meminta situasi yang mustahil atau jika Anda menggunakan yang tidak stabil
distribusi yang beberapa paket yang diperlukan belum dibuat
atau dipindahkan dari Incoming.
Informasi berikut dapat membantu menyelesaikan situasi:
Paket-paket berikut memiliki dependensi yang tidak terpenuhi:
kubuntu-desktop: Tergantung: bahasa-selector-kde tetapi tidak akan diinstal
Merekomendasikan: amarok tetapi tidak akan diinstal
Merekomendasikan: apturl-kde tetapi tidak akan diinstal
Merekomendasikan: gdebi-KDE tetapi tidak akan diinstal
Merekomendasikan: gpgsm tetapi tidak akan diinstal
Merekomendasikan: ibus-qt4 tetapi tidak akan diinstal
Merekomendasikan: jockey-kde tetapi tidak akan diinstal
Merekomendasikan: kdegraphics-strigi-plugins tetapi tidak akan diinstal
Merekomendasikan: kdepim-penyihir tetapi tidak akan diinstal
Merekomendasikan: kpackagekit tetapi tidak akan diinstal
Merekomendasikan: libreoffice-KDE tetapi tidak akan diinstal
Merekomendasikan: libreoffice-style-oxygen tetapi tidak akan dipasang
Merekomendasikan: network-manager-pptp-kde tetapi tidak akan diinstal
Merekomendasikan: plasma-widget-facebook tetapi tidak akan diinstal
Merekomendasikan: plasma-widget-kimpanel tetapi tidak akan diinstal
Merekomendasikan: usb-creator-kde tetapi tidak akan diinstal
E: Tidak dapat memperbaiki masalah, Anda telah memegang paket yang rusak.
Saya terkejut dengan hasilnya. tiba-tiba saya ingat itu, saya telah menetapkan preferensi ( untuk menulis jawaban ini ) /etc/apt/preference
untuk menetapkan prioritas tertinggi ke repositori lokal saya.
jadi, saya menjalankan ini:, apt-cache policy kubuntu-desktop
outputnya seperti di bawah ini:
anwar @ edubuntu-lenovo: ~ $ apt-cache policy kubuntu-desktop
kubuntu-desktop:
Diinstal: (tidak ada)
Kandidat: 1.222.1kde47 ~ ppa2
Tabel versi:
1.254 0
500 cdrom: // Kubuntu 12.04 LTS _Precise Pangolin_ - Rilis i386 (20120424) / tepatnya / paket utama i386
500 Paket http://archive.ubuntu.com/ubuntu/tepat / main i386
1.222.1kde47 ~ ppa2 0
File 1001: / media / Main / Linux-Software / Ubuntu / Natty / natty / Packages
1.222.1 0
File 1001: / media / Main / Linux-Software / Ubuntu / Natty / natty / Packages
1.222 0
File 1001: / media / Main / Linux-Software / Ubuntu / Natty / kubuntu / Paket
Dalam output ini, kita melihat bahwa "cdrom" dan "repositori utama yang tepat" memiliki nomor versi 1.254 , sedangkan repositori lokal memiliki versi 1.222.1kde47 ~ ppa2 , yang merupakan versi lebih rendah. Meskipun, mereka ditempatkan sebelum yang lokal di file sources.list, paket lokal diutamakan.
Untuk secara eksplisit melihat bahwa apt-get
memang mencoba untuk menginstal dari yang lokal, saya berlari synaptic
dan mendapatkan ini, yang menunjukkan bahwa, sistem Apt menganggap 1.222.1kde47 ~ ppa2 sebagai versi kandidat untuk menginstal.
Juga apt-cache policy kubuntu-desktop
menunjukkan hal yang sama
anwar @ edubuntu-lenovo: ~ $ apt-cache policy kubuntu-desktop
kubuntu-desktop:
Diinstal: (tidak ada)
Kandidat: 1.222.1kde47 ~ ppa2
Tabel versi:
1.254 0
500 cdrom: // Kubuntu 12.04 LTS _Precise Pangolin_ - Rilis i386 (20120424) / tepatnya / paket utama i386
500 Paket http://archive.ubuntu.com/ubuntu/tepat / main i386
1.222.1kde47 ~ ppa2 0
File 1001: / media / Main / Linux-Software / Ubuntu / Natty / natty / Packages
1.222.1 0
File 1001: / media / Main / Linux-Software / Ubuntu / Natty / natty / Packages
1.222 0
File 1001: / media / Main / Linux-Software / Ubuntu / Natty / kubuntu / Paket
Untuk mengatasi ini, saya menghapus /etc/apt/preference
file dengan sudo rm /etc/apt/preference
.
Kemudian berlari lagi ini lagi apt-cache policy kubuntu-desktop
. hanya melihat output yang diharapkan ini.
anwar @ edubuntu-lenovo: ~ $ sudo rm / etc / apt / preferensi
anwar @ edubuntu-lenovo: ~ $ sudo apt-cache policy kubuntu-desktop
kubuntu-desktop:
Diinstal: (tidak ada)
Kandidat: 1.254
Tabel versi:
1.254 0
500 cdrom: // Kubuntu 12.04 LTS _Precise Pangolin_ - Rilis i386 (20120424) / tepatnya / paket utama i386
500 Paket http://archive.ubuntu.com/ubuntu/tepat / main i386
1.222.1kde47 ~ ppa2 0
500 file: / media / Utama / Linux-Software / Ubuntu / Natty / natty / Paket
1.222.1 0
500 file: / media / Utama / Linux-Software / Ubuntu / Natty / natty / Paket
1.222 0
500 file: / media / Main / Linux-Software / Ubuntu / Natty / kubuntu / Paket
Juga jalankan ini lagi. sudo apt-get install kubuntu-desktop
untuk melihat output di bawah ini:
......... Detail yang tidak perlu dihapus .........
0 ditingkatkan, 213 baru dipasang, 0 untuk dihapus dan 150 tidak ditingkatkan.
Perlu mendapatkan 0 B / 89,6 MB arsip.
Setelah operasi ini, 269 MB ruang disk tambahan akan digunakan.
Apakah Anda ingin melanjutkan [Y / n]?
Anda dapat memeriksa hasil lengkapnya di sini
Kemudian saya cukup yakin tentang bagian Penjelasan.
Referensi 1: Manual apt_preference
Referensi 2: Cara Mempertahankan versi tertentu dari paket yang diinstal