Saya ingin menginstal satu paket (dan dependensinya, tetapi hanya sejauh itu tidak memuaskan di Wheezy) dari Debian Jessie ke sistem Wheezy saya, tanpa memutakhirkan "semuanya dan wastafel dapur" ke versi Jessie. Secara khusus, saya ingin menginstal kpcli, yang tersedia dalam paket Jessie tetapi tidak dalam Wheezy.
Semua yang saya temukan menunjukkan bahwa saya harus menambahkan repositori Jessie ke daftar sumber saya, mengatur penyematan untuk menjaga semuanya tetap terengah-engah dan hanya mengambil satu paket dari jessie, dan itu akan jatuh pada tempatnya. Namun, itu tidak cocok untuk saya. Jika saya membuat /etc/apt.d/sources.list.d/jessie.list dengan konten berikut:
deb ftp://ftp.debian.org/debian/ jessie main
deb-src ftp://ftp.debian.org/debian/ jessie main
lalu buat /etc/apt/preferences.d/jessie dengan:
Package: *
Pin: release a=wheezy
Pin-Priority: 1001
Package: kpcli
Pin: release a=jessie
Pin-Priority: 450
dan jalankan apt-get -u update
diikuti dengan apt-get -u install kpcli/jessie
, maka saya berharap apt-get untuk menarik kpcli dan mungkin segelintir paket lain dari Jessie, dan biarkan sisa sistem yang saya instal tidak tersentuh. (Sistem saya adalah instalasi Wheezy yang sepenuhnya mutakhir.) Atau, jika saya mendapatkan prioritas pin terlalu rendah, saya berharap itu tidak melakukan apa-apa. Sebaliknya, di sistem saya, apt-get ingin meningkatkan beberapa ratus paket.
Apa, tepatnya, diperlukan untuk menginstal hanya satu paket versi Jessie ini sambil membiarkan sisa sistem Wheezy saya tidak tersentuh?
Perhatikan bahwa dalam kasus khusus ini, perangkat lunak sebenarnya ditulis dalam Perl sehingga tidak ada kompilasi ke biner atau semacamnya yang terlibat; namun, ada beberapa dependensi modul Perl. Oleh karena itu, salah satu alternatif yang mungkin adalah menginstal .deb (diunduh secara manual) menggunakan sesuatu yang hanya (1) memungkinkan menentukan satu arsip .deb lokal yang akan diinstal, seperti dpkg -i
, dan (2) menangani dependensi dengan cara yang cerdas, yang biasa dpkg -i
tidak. Namun, untuk semua pencarian yang telah saya lakukan pada beberapa kesempatan dan gagal menghasilkan panduan yang mudah diikuti tentang cara melakukan ini, solusi umum (yang berfungsi untuk biner, paket yang dikompilasi juga) akan sangat bagus .
Jawaban yang Diterima:
Untuk setiap entri (stabil, pengujian, tidak stabil) Anda memiliki prioritas pin 500. Anda tidak boleh menggunakan pin> 1000. Saya menggunakan 1001 hanya ketika saya ingin menurunkan sesuatu. Saya memiliki entri pengujian+sid+eksperimental yang ditentukan dalam /etc/apt/sources.list
dan berikut /etc/apt/preferences
berkas:
Package: *
Pin: release o=Debian,a=testing
Pin-Priority: 900
Package: *
Pin: release o=Debian,a=experimental
Pin-Priority: 130
Nilai 500 adalah default untuk tidak stabil. Jadi, mari kita coba cek iceweasel:
# apt-cache policy iceweasel
iceweasel:
Installed: (none)
Candidate: 17.0.10esr-1~deb7u1
Version table:
26.0-1 0
130 http://ftp.pl.debian.org/debian/ experimental/main amd64 Packages
24.2.0esr-1 0
500 http://ftp.pl.debian.org/debian/ sid/main amd64 Packages
17.0.10esr-1~deb7u1 0
900 http://ftp.pl.debian.org/debian/ testing/main amd64 Packages
Jadi, jika saya mencoba menginstal iceweasel, itu akan diunduh dari cabang pengujian karena memiliki prioritas tertinggi.
Terkait:Tata letak xkb khusus di mana satu kunci membuat dua titik kode unicode?Coba ubah prioritas menjadi:
Package: *
Pin: release a=wheezy
Pin-Priority: 900
Package: kpcli
Pin: release a=jessie
Pin-Priority: 910
-
Debian – Bagaimana Menginstal Beberapa Paket Dari Debian “tidak stabil” Di Komputer Menjalankan Debian “stabil”?
-
Cara menginstal Firefox terbaru (non-ESR) di Debian 10 Buster (stabil) atau Bullseye (pengujian)
-
Bagaimana saya bisa menjalankan Debian stable tetapi menginstal beberapa paket dari pengujian?