Bagaimana cara menghapus paket-paket usang setelah gagal merilis upgrade melalui do-release-upgrade di Ubuntu?


14

Terkadang, ketika saya memutakhirkan sistem melalui do-release-upgrade, proses pembaruan gagal dan skrip memberitahu saya untuk menyelesaikan proses secara manual melalui dpkg --configure -a. Ini bukan masalah serius - setelah menyelesaikan masalah dependensi secara manual dan menyelesaikan proses pemutakhiran semuanya bekerja dengan baik.

Tetapi do-release-upgradeskrip memiliki proses pembersihan setelah menyelesaikan pemutakhiran:

Remove obsolete packages?  
XXX packages are going to be removed.  
Continue [yN]  Details [d]y

yang menghapus beberapa paket usang dari sistem versi lama.

Tampaknya proses ini tidak berjalan ketika pemutakhiran otomatis gagal dan saya menyelesaikan pemutakhiran secara manual, jadi paket usang dari versi lama tetap diinstal di sistem.

Bagaimana saya bisa menjalankan proses "Hapus paket usang" secara manual setelah menyelesaikan upgrade dengan tangan?

Jawaban:


16

Tes ini:

Buka terminal,

Tekan Ctrl+ Alt+T

Menjalankannya:

sudo -i

apt-get update

apt-get autoremove

apt-get clean

UNUSCONF=$(dpkg -l|grep "^rc"|awk '{print $2}')

apt-get remove --purge $UNUSCONF

NEWKERNEL=$(uname -r|sed 's/-*[a-z]//g'|sed 's/-386//g')

ADDKERNEL="linux-(image|headers|ubuntu-modules|restricted-modules)"

METAKERNEL="linux-(image|headers|restricted-modules)-(generic|i386|server|common|rt|xen)"

UNUSKERNELS=$(dpkg -l|awk '{print $2}'|grep -E $ADDKERNEL |grep -vE $METAKERNEL|grep -v $NEWKERNEL)

apt-get remove --purge $UNUSKERNELS

update-grub

1
Terima kasih, perintah-perintah itu persis yang saya inginkan, utamanya adalah dpkg -l|grep "^rc"|awk '{print $2}'yang menunjukkan paket untuk dihapus. Ini aneh bahwa apt-get atau aptitude tidak ingin melihatnya untuk dihapus.
Murz

2
Satu-baris perintah cli untuk menghapus paket usang setelah gagal do-release-Upgrade berdasarkan contoh adalah: sudo dpkg -l|grep "^rc"|awk '{print $2}' | xargs sudo apt-get remove -y --purge. Perhatian, perintah ini menghapus paket tanpa konfirmasi, tetapi berguna untuk mengotomatiskan sistem pembersihan dengan cepat.
Murz

Pada sistem saya, '^rc'paket yang bertanda bahkan tidak diinstal, tetapi pemutakhiran gagal tepat sebelum mencari paket yang usang. Jadi jawaban ini sepertinya tidak lengkap. Ini tidak akan menghapus semua paket yang akan do-release-upgrade, jika berhasil.
Ruslan

2

Saya percaya "Hapus paket usang" sebenarnya hanya menjalankan a sudo apt-get autoremove. Cobalah, lihat apakah itu membantu.


2
sudo apt-get autoremovehanya menghapus sebagian kecil dari paket, yang menghapus do-release-upgrade, misalnya do-release-upgradepada sistem yang sama menghapus sekitar 150 paket, tetapi apt-get autoremove- hapus hanya sekitar 5-10 paket.
Murz

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.