Saya memiliki sejumlah paket mesa yang telah saya tingkatkan ke versi PPA, sebelum membersihkan PPA sehingga saya dapat memutakhirkan sistem saya. Perbedaan dalam versi adalah minor (secara teknis sama, hanya satu set perpustakaan dari git dan yang lainnya adalah versi final).
Jika saya mencoba untuk menurunkan versi melalui Synaptic, apt-get, atau aptitude, saya akan dilempar ke neraka ketergantungan.
Apakah ada cara untuk menurunkan versi paket secara manual (mungkin satu per satu) dan menandai paket dependen mereka sebagai tidak bergerak (jika itu masuk akal) sampai saya selesai?
PS pertanyaan ini: Bagaimana Cara Turunkan Paket melalui apt-get? sedikit berbeda dan tidak membantu situasi ini.
apt
dpkg
dependencies
downgrade
RolandiXor
sumber
sumber
ppa-purge
duluan?synaptic
, ketika Anda memilih paket xyz, semua dependensi akan dipilih secara default. Tetapi Anda selalu dapat membatalkan pilihan semua dependensi dan cukup menginstal paket utama. ini hanya berfungsi jika Anda siap menginstal ulang.Jawaban:
Saya tidak pernah bermain dengan ini sebelumnya, tetapi saya akan menyarankan Anda
hold
(ataulock
) versi dependensi yang menyebabkan Anda kesulitan. Cara iniapt
memiliki sejumlah kemungkinan solusi yang lebih terbatas, dan mungkin tidak menjadi bingung ketika Anda mencoba untuk menurunkan versi paket lainnya.Jika tidak ada yang berhasil, Anda dapat mengambil pendekatan manual yang disarankan dalam jawaban ini: Bagaimana Cara Menurunkan Paket melalui apt-get? . Pada dasarnya, download diperlukan
.deb
paket secara manual, kemudian menginstalnya satu persatu menggunakan lebih rendah-tingkatdpkg
dan salah satu argumen kuat nya:--ignore-depends
,--force-depends
,--force-depends-version
, atau bahkan--force-all
.Dengan semangat yang sama seperti di atas, Anda memiliki
--force-downgrade
argumen:Tetapi ini mengasumsikan bahwa Anda telah membaca
man dpkg
, dan bahwa Anda memahami apa yang Anda lakukan:Lihat Kesalahan: nomor versi tidak dimulai dengan angka dan Bagaimana menginstal versi Java yang lebih lama dan Bagaimana menginstal versi paket yang lebih lama seperti liquid 2.2.2? untuk contoh:
Dan lihat Bagaimana saya bisa menginstal paket tanpa menginstal beberapa dependensi? untuk contoh (bersama dengan peringatan yang sesuai) dari:
Namun pendekatan lain adalah membuat
.deb
paket boneka menggunakanequivs
paket (dan mungkin nama yang sedikit berbeda). Kemudian menginstal paket dummy akan memungkinkan Anda untuk menghapus paket "true" sambil menyimpan deps yang relevan, dan kemudian menginstal versi yang lebih lama. Saya tidak yakin bagaimana tepatnya ini akan bekerja, tetapi periksa utas yang relevan ini untuk perincian: Cara menghapus deb tanpa menghapus ketergantungannya .sumber
Pertama-tama Anda dapat menggunakan
apt-mark
untuk menandai semua dependensi paket target (dan mungkin yang disarankan / disarankan juga) yang diinstal dalam sistem sebagai instalasi manual . Setelah melakukan itu, instal versi perangkat lunak sebelumnya denganapt-get
menyebutkan versi secara eksplisit.Untuk membuat daftar ketergantungan, paket yang disarankan dan yang disarankan untuk paket target:
Menandai paket yang diinstal secara manual :
(gunakan ini untuk semua dependensi, rekomendasi dan saran.)
Hapus paket target:
Untuk melihat daftar versi paket yang dapat Anda turunkan / tingkatkan ke, gunakan:
Instal versi target dari paket yang diperlukan:
atau
PS. Jika daftar paket dependensi / yang disarankan / disarankan yaitu paket yang ditandai dengan
apt-mark
besar, simpan daftar keluaran paket yang dimaksud denganapt-cache show <target-package-name>
ke file apa saja/path/to/foo
dan gunakanapt-mark
dalam kombo seperti ini:sumber
apt-cache policy <target-package-name>
daftar versi paket yang dapat Anda turunkan / tingkatkan ke ..Saya baru saja mengalami kesulitan mengupgrade ke versi hulu dari sebuah paket dan kemudian memutuskan untuk menurunkan versi. Ini adalah melalui repositori pribadi pengelola. Dalam kasus saya ini semua tentang mencoba versi systemd 233 terbaru (belum dirilis).
Kuncinya adalah untuk memahami bahwa Anda perlu menentukan semua paket yang harus diturunkan. Jika Anda melakukan ini dengan benar, kemungkinan besar akan melakukan apa yang Anda inginkan. Jika Anda melewatkan sesuatu, apt akan memberi tahu Anda bahwa tindakan tersebut akan menyebabkan banyak paket dihapus. Untuk memastikan kami menggunakan bendera '-s' untuk mencoba downgrade sebelum benar-benar melakukannya.
Langkah-langkah yang perlu Anda ambil adalah sebagai berikut:
1) Daftar semua dependensi yang ditingkatkan ke hulu (gunakan beberapa kata kunci lain jika situasinya berbeda):
Ini memberi Anda daftar paket dengan nomor versi hulu.
2) Daftar apa versi stabil yang benar untuk setiap paket:
3) Periksa semuanya baik-baik:
(tidak yakin apakah --reinstall diperlukan btw, tapi ini yang saya lakukan)
4) Hapus -s dan lakukan.
sumber