Saya ingin menginstal versi boto terbaru , yang saya lakukan viapython setup.py install
Namun ketika saya mencoba untuk menghapus versi lama paket-paket berikut juga bisa dihapus:
apt-get remove python-boto
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
cloud-init cloud-utils euca2ools python-boto
Bagaimana saya bisa memberitahu manajer paket untuk menghapus boto, dan mereka menandainya sebagai diinstal secara eksternal (atau sesuatu seperti itu) sehingga apt tidak akan mencoba untuk memperbaiki ketergantungan yang hilang?
Terima kasih,
Maxim.
Jawaban:
Anda dapat membuat paket .deb dummy menggunakan
equivs
utilitas, ini akan memberikan ketergantungan tanpa menginstal file apa pun. Kemudian cukup ganti paket yang saat ini diinstal ke versi dummy menggunakandpkg -i fake.deb
.sumber
Gunakan dpkg secara langsung, bukan apt-get atau aptitude:
sumber
Saya tahu ini adalah posting lama, tetapi karena saya baru-baru ini memiliki masalah yang sama, saya ingin membagikan solusi saya dengan harapan bahwa seseorang di masa depan akan merasakan manfaatnya.
Jika Anda menginstal sebuah paket melalui aptitude, ia secara otomatis memberikan flag ke dependensi (otomatis) dan ketika Anda mencoba untuk menghapus paket Anda lagi, ia mencoba untuk menghapus semua dependensinya yang memiliki flag otomatis masih diatur.
Seperti yang Anda lihat dalam kasus saya, ini adalah zabbix yang ingin saya hapus:
Dan jika kita mencari paket apache sepertinya ini
bendera pertama "i" memberitahu kita bahwa apache diinstal
. Bendera berikutnya "A" adalah singkatan dari diinstal secara otomatis
Jadi untuk memperbaiki ini dan tidak memiliki apache, mysql dan php dihapus, kita bisa menghapus flag otomatis dengan aptitude seperti ini:
Sekarang kelihatannya seperti ini saat menghapus paket zabbix:
Silakan periksa halaman manual untuk aptitude untuk lebih jelasnya
sumber
Itulah tepatnya untuk apa
apt-mark hold
.apt-mark hold package_name
Dari dokumentasi:
Untuk melepaskan paket:
apt-mark unhold package_name
sumber
The following packages have unmet dependencies: mysql-server-5.7 : Depends: apparmor (>= 2.10) but it is not going to be installed E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
AFAIK tidak ada cara untuk menghapus paket menggunakan APT tanpa juga menghapus paket-paket yang bergantung padanya.
Referensi: http://www.debian.org/doc/manuals/apt-howto/ch-apt-get.en.html
sumber
Untuk menyelesaikan jawaban João Pinto, Anda dapat menggunakan skrip kecil saya untuk memperbaiki paket yang rusak, skrip ini akan membuat paket dummy dengan equivs dan menginstalnya. Anda dapat menemukan artikel di blog saya dalam bahasa Prancis .
Atau langsung pada kode inti .
Untuk menggunakannya:
sumber