apt mengatakan paket telah disimpan kembali, apa yang harus dilakukan?

22

Output dari apt-get upgradeadalah:

The following packages have been kept back:
certbot python-acme python-certbot python-certbot-apache python-cryptography python-openssl

Apa artinya ini? Haruskah saya mengambil tindakan? Jika ya, apa?

Jarle Hammen Knudsen
sumber

Jawaban:

36

Solusi Cepat & MUDAH:

Saya memiliki masalah yang sama, beberapa kali. JANGAN lakukan sudo apt-get dist-upgradedulu. Sangat penting. **** CATATAN: Solusi ini untuk mesin berbasis Debian tetapi tidak akan berfungsi pada KDE Neon . Untuk memperbarui KDE Neon, Anda harus menggunakan sudo pkcon update. ****

Mengapa?

Ini dapat membuat sistem Anda sangat tidak stabil, program dapat macet dan Anda dapat kehilangan banyak fungsi di OS Anda.

Anda HARUS menginstal setiap paket secara terpisah, NAMUN , selama proses itu, dependensi lain juga akan diinstal secara otomatis dan masalah Anda akan terpecahkan hanya dalam beberapa menit.

Saya tidak punya masalah dengan solusi berikut. Ini cukup cepat dan mudah.


Pertama, lakukan ini:

apt list --upgradable

  • Ini akan menampilkan daftar paket yang dapat ditingkatkan.

Selanjutnya, lakukan ini:

  • Mulai dari awal daftar dengan paket pertama dan ketik:

sudo apt-get install package-name-here

  • Ini akan berjalan melalui proses instalasi dan menarik / menginstal dependensi.

Setelah proses itu selesai, lakukan ini:

apt list --upgradable

  • Ini lagi akan menunjukkan paket mana yang dapat ditingkatkan. Daftar paket Anda sekarang harus berkurang. Ikuti daftar paket dan ketik apt list --upgradablesetelah setiap paket diinstal. Ini hanya perlu beberapa menit untuk selesai.

Akhirnya:

sudo apt-get autoclean

sudo apt-get update && sudo apt-get dist-upgrade

Jika solusi ini bekerja untuk Anda, jangan lupa untuk meningkatkannya sehingga solusi yang tepat tersedia untuk orang lain dan berada di bagian atas daftar jawaban.

Jika karena alasan tertentu solusi ini tidak berhasil untuk Anda, silakan lihat jawaban pengguna GAD3R di bawah ini. Ini juga solusi yang bagus.

Terima kasih.

Gregory Smitherman
sumber
1
Bagi saya paket itu ubuntu-minimal. Instruksi Anda bekerja dengan sempurna.
DeanM
Jangan gunakan solusi ini jika Anda menggunakan KDE Neon.
Gregory Smitherman
11

Apa artinya ini?

The following packages have been kept back:

Jawabannya ada di sini

Ini berarti bahwa ada versi-versi baru dari paket-paket ini yang tidak akan diinstal karena suatu alasan. Kemungkinan alasannya adalah dependensi yang terputus (paket yang bergantung padanya tidak memiliki versi untuk diunduh) atau dependensi baru (paket menjadi tergantung pada paket baru sejak versi terakhir).

Haruskah saya mengambil tindakan?

Anda perlu menggunakan dist-upgradeuntuk menginstal dependensi baru dan memutakhirkan paket:

sudo apt-get dist-upgrade

Masalahnya dapat diselesaikan dengan menjalankan dist-upgradejika tidak Anda perlu:

Perbaiki dependensi yang rusak

sudo apt-get -f install 

Hapus beberapa paket yang tidak lagi diinstal pada sistem Anda:

sudo apt-get autoclean

Tunda paket yang diinginkan:

echo "<package_name> hold" | dpkg --set-selections

Mengkonfigurasi ulang paket bernama:

dpkg-reconfigure <package_name>
GAD3R
sumber
3

Dari jawaban Unix SE ini :

Pertama seperti yang disebutkan di atas tolong JANGAN dist-upgrade sistem produksi! Sementara dist-upgrade akan "memecahkan" paket yang disimpan kembali, itu jelas bukan solusi untuk masalah ini dan kemungkinan besar akan menyebabkan Anda lebih sedih daripada baik jika Anda menjalankannya tanpa mengetahui implikasi pada sistem Anda.

Jika memutakhirkan suatu paket membutuhkan penginstalan paket tambahan, itu akan "disimpan kembali" saat berjalan sudo apt-get upgrade.

Seperti yang disebutkan di atas, Anda dapat menginstal paket-paket "disimpan" ini secara manual dengan menjalankan secara eksplisit sudo apt-get install [paste kept back packages here]tetapi ini akan menandai paket-paket ini sebagai "diinstal secara manual" yang sering kali bukan yang kita inginkan.

Untuk secara otomatis menginstal paket tambahan yang diperlukan untuk meningkatkan paket "yang disimpan" tanpa menandai paket "yang disimpan" sebagai yang diinstal secara manual, jalankan saja sudo apt-get --with-new-pkgs upgrade.

Brian Heese
sumber
Lebih lanjut tentang --with-new-pkgsdan efek samping dari alternatif lain di sini .
Pablo A
2

Saya memasukkan jawaban ini di blog saya. Jika Anda ingin melihat bahwa Anda dapat pergi ke sana dari tautan ini .

Kesalahan di atas sangat umum di terminal Ubuntu ketika Anda mencoba untuk meningkatkan ( apt-get upgrade). Ini biasanya terjadi karena dependensi dari satu paket yang Anda instal telah berubah. Untuk meningkatkan, Anda harus meningkatkannya terlebih dahulu. Jadi sangat mudah untuk menyelesaikannya. Anda akan dapat melihat paket-paket yang disimpan di bawah pesan kesalahan ini. sebagai contoh saya bisa melihat paket-paket berikut dalam daftar:

gnome-software gnome-software-common linux-generic linux-headers-generic linux-image-generic snapd ubuntu-core-launcher ubuntu-software

Jangan hanya mengetik sudo apt-get dist-upgradeIni sangat berbahaya karena menginstal semua pembaruan yang tertunda. Ini bisa membawa lingkungan kerja Anda ke kondisi yang sangat tidak stabil.

Karena itu pendapat saya adalah menggunakan terkenal

sudo apt-get install [package]

Anda dapat mengganti [package]dengan paket apa pun yang ada dalam pesan kesalahan. Anda juga dapat meletakkannya sebagaimana daftar (cukup salin dan tempel). Sebagai contoh dalam kasus saya, saya bisa masuk

sudo apt-get install gnome-software gnome-software-common linux-generic linux-headers-generic linux-image-generic snapd ubuntu-core-launcher ubuntu-software

Jika Anda ingin melakukannya

sudo apt-get dist-upgrade

untuk beberapa alasan, pastikan untuk memeriksa daftar paket dengan menggunakan opsi simulasi -s( sudo apt-get -s dist-upgrade), atau tanpa -sopsi Anda dapat menghentikan eksekusi sebelum menerima. (Anda selalu dapat memilih opsi no)

Dimuth Tharaka Menikgama
sumber
2

Baru-baru ini pembaruan keamanan Debian memperkenalkan beberapa dependensi baru. Dalam hal ini linux-imagepaket mulai memerlukan linux-firmware, di antara beberapa lainnya. Jadi mereka ditahan dan tidak dipasang oleh unattended-upgrade. Setelah beberapa pengujian dan mengkonfirmasikan saya bisa selektif menginstal hanya paket-paket, sementara tidak menyentuh update tertunda lainnya:

apt-get -yy install $(apt-get -s upgrade | sed '1,/kept back/d;/will be upgraded/,$d')

Dick Visser
sumber
1

Artikel ini dengan baik merangkum mengapa ini terjadi:

Jika dependensi telah berubah pada salah satu paket yang telah Anda instal sehingga paket baru harus diinstal untuk melakukan upgrade maka itu akan terdaftar sebagai "disimpan-kembali".

Solusi untuk ini adalah menginstalnya secara eksplisit

sudo apt install [packages]

Anda mungkin ingin menandai paket-paket ini sebagai terinstal secara otomatis, kecuali Anda peduli sendiri dan tidak hanya untuk memenuhi dependensi.

sudo apt-mark auto [packages]

Untuk mencegah hal ini terjadi, saya sarankan untuk menggunakannya

sudo apt --with-new-pkgs upgrade

untuk meningkatkan paket di masa depan, yang memungkinkan pemasangan paket baru untuk memenuhi perubahan dalam dependensi.

Karl Bartel
sumber
Dua jempol untuk --with-new-pkgs! Dan saya tekankan sekali lagi bahwa, " JANGAN dist-upgrade sistem produksi apa pun! Sementara dist-upgrade akan" menyelesaikan "paket-paket yang sudah disimpan kembali, jelas bukan solusi untuk masalah ini dan kemungkinan besar akan menyebabkan Anda lebih berduka daripada baik jika Anda jalankan tanpa mengetahui implikasinya pada sistem Anda. "
xpt