"Paket-paket berikut telah disimpan kembali:" mengapa dan bagaimana cara mengatasinya?

Saya baru saja menambahkan repositori PPA untuk versi pengembangan GIMP, tetapi saya mendapatkan kesalahan ini:

$ apt-get update && apt-get upgrade...The following packages have been kept back:  gimp gimp-data libgegl-0.0-0 libgimp2.0

Mengapa dan bagaimana saya bisa menyelesaikannya sehingga saya dapat menggunakan versi terbaru daripada yang saya miliki sekarang?

Menurut artikel tentang debian-administration.org,

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

Solusi hati-hati 1:

Per Jawaban Pablo, Anda dapat menjalankan sudo apt-get --with-new-pkgs upgrade, dan itu akan menginstal paket yang disimpan kembali.

Ini memiliki manfaat karena tidak menandai paket yang disimpan kembali sebagai "diinstal secara manual," yang dapat memaksa lebih banyak intervensi pengguna di telepon (Lihat komentar).

Jika solusi Pablo bekerja untuk anda, silakan upvote itu. Jika tidak, silakan komentar apa yang salah.

Solusi hati-hati 2:

Solusi hati-hati adalah untuk menjalankan sudo apt-get install <list of packages kept back>. Dalam kebanyakan kasus ini akan memberikan paket terus-kembali apa yang mereka butuhkan untuk berhasil meng-upgrade.

Solusi agresif:

Solusi yang lebih agresif adalah menjalankan sudo apt-get dist-upgrade, yang akan memaksa pemasangan dependensi baru tersebut.

Tapi dist-upgrade bisa sangat berbahaya. Tidak seperti upgrade ini mungkin Hapus paket untuk menyelesaikan situasi ketergantungan yang kompleks. Tidak seperti Anda, APT tidak selalu cukup pintar untuk mengetahui apakah penambahan dan penghapusan ini dapat mendatangkan malapetaka.

Jadi jika Anda menemukan diri Anda di tempat di mana" solusi hati-hati " tidak berhasil, dist-upgrade Mei kerja... tetapi Anda mungkin lebih baik belajar lebih banyak tentang APT dan menyelesaikan masalah ketergantungan "dengan tangan" dengan menginstal dan menghapus paket berdasarkan kasus per kasus.

Anggap saja seperti memperbaiki mobil... jika Anda punya waktu dan berguna dengan kunci inggris, anda akan mendapatkan ketenangan pikiran dengan membaca dan melakukan perbaikan sendiri. Jika Anda merasa beruntung, Anda dapat menurunkan mobil Anda dengan sepupu Anda dist-upgrade dan berharap dia tahu barang-barangnya.

Setiap kali Anda menerima dari perintah apt-get upgrade pesan

The following packages have been kept back:

kemudian untuk meningkatkan satu atau semua paket yang disimpan kembali, tanpa melakukan peningkatan distribusi (inilah yang dist-upgrade apakah, jika saya ingat dengan benar) adalah untuk mengeluarkan perintah:

apt-get install <list of packages kept back>

ini akan menyelesaikan masalah yang disimpan kembali dan akan meminta untuk menginstal paket tambahan, dll. seperti yang dijelaskan oleh jawaban lain.

Lihat juga: Mengapa menggunakan apt-get upgrade daripada apt-get dist-upgrade?

Coba jawaban Unix SE ini:

sudo apt-get --with-new-pkgs upgrade

Ini memungkinkan paket baru untuk diinstal. Ini akan memberi tahu Anda paket apa yang akan diinstal dan meminta Anda sebelum benar-benar melakukan instalasi.

apt perintah (alternatif ramah untuk apt-get) Bagikan opsi ini.

Menggunakan apt install <pkg> sebaliknya akan menandai pkg sebagai"diinstal secara manual"!! Untuk menandainya lagi sebagai" otomatis diinstal " gunakan apt-mark auto <pkg> (lihat juga sub-perintah showmanual). Info lebih lanjut pada jawaban ini.

apt-get dist-upgrade berbahaya bagi lingkungan yang stabil,

  1. sumber yang salah.pengaturan daftar dan Anda berakhir dengan ubuntu yang rusak.
  2. Anda mungkin mendapatkan seluruh aplikasi upgrade ke versi Anda tidak ingin.

Use case: kernel upgrade terus kembali, Anda hanya ingin meng-upgrade kernel, tidak ingin meng-upgrade seluruh distribusi.

Cara yang lebih baik untuk menangani terus kembali paket:

sudo aptitude

Jika Anda telah terus kembali paket Anda akan melihat paket Upgradable di atas daftar.

  • Hit + pada daftar itu
  • Hit g dua kali
  • Jawaban debconf barang jika diminta
  • Tekan kembali untuk melanjutkan
  • Tekan Q
  • Tekan Ya

Anda terus kembali paket diinstal.

Biasanya ada dua alasan Anda dapat melihat pesan ini.

Jika upgrade program (melalui sudo apt-get upgrade) akan menyebabkan paket ditambahkan atau dihapus, maka program akan ditahan. Anda dapat menggunakan sudo apt-get dist-upgrade dalam hal ini, yang kemudian akan menawarkan untuk menambah atau menghapus program tambahan.

Ini cukup umum dan biasanya tidak menjadi masalah. Kadang-kadang (terutama selama Ubuntu alpha) a dist-upgrade akan menawarkan untuk menghapus banyak program lain, dalam hal ini Anda mungkin ingin membatalkannya.

Jika program tergantung pada paket atau versi yang tidak tersedia, maka program akan ditahan. Anda benar-benar tidak dapat melakukan apa pun selain menunggu dalam keadaan ini, karena paket pada dasarnya dapat dihapus instalasinya. Ini dapat terjadi ketika paket ditambahkan ke repositori rusak, ketika paket diganti namanya, atau ketika paket berhenti menyediakan paket virtual.

Anda juga dapat mencoba:

sudo aptitude safe-upgrade

Lebih aman dari full-upgrade (awalnya bernama dist-upgrade) karena "paket tidak akan dihapus kecuali tidak digunakan".

Dari man aptitude:

aman-upgrade

Upgrade paket yang diinstal ke versi terbaru mereka. Paket yang diinstal tidak akan dihapus kecuali tidak digunakan/.../ Packages yang saat ini tidak diinstal dapat diinstal untuk menyelesaikan dependensi kecuali opsi baris perintah --no-new-installs disediakan.

Kemungkinan besar paket-paket ini ditahan karena instalasi mereka akan menciptakan inkonsistensi ketergantungan. Ini dapat terjadi karena Anda menggunakan arsip di bawah pengembangan aktif, AKP, atau karena cermin yang Anda gunakan tidak sepenuhnya diperbarui.

Dalam kasus terakhir, tunggu saja, ketika dependensi diselesaikan, itu akan diinstal di lain waktu.

Edit:

Ada kemungkinan lain, paket mungkin diadakan kembali jika ada menempatkan terus pada mereka, atau jika mereka disematkan.

Ini bekerja untuk saya

sudo aptitude full-upgrade

Ini biasanya karena paket telah menambahkan ketergantungan, dan upgrade tidak ingin menambahkannya untuk anda tanpa izin.

Jika Anda menjalankan:

sudo apt-get install gimp gimp-data libgegl-0.0-0 libgimp2.0

Kemudian versi baru harus diinstal bersama dengan ketergantungan baru mereka.

Ubuntu 18.04, 20.04 (dan yang lebih baru) menyediakan sintaks yang disederhanakan via apt full-upgrade yang berfungsi seperti sudo apt-get dist-upgrade.

sudo apt full-upgrade

sudo apt upgrade digunakan untuk menginstal upgrade yang tersedia dari semua paket yang saat ini diinstal pada sistem dari sumber yang dikonfigurasi melalui sumber.daftar(5). Paket baru akan diinstal jika diperlukan untuk memenuhi dependensi, tetapi paket yang ada tidak akan pernah dihapus. Jika upgrade untuk paket memerlukan menghapus paket diinstal upgrade untuk paket ini tidak dilakukan.

sudo apt full-upgrade melakukan fungsi upgrade tetapi akan Hapus paket yang saat ini diinstal jika ini diperlukan untuk meningkatkan sistem secara keseluruhan.

Catatan: full-upgrade tetap pada distribusi saat ini.

Lihat: apt halaman manual: 18.04, 20.04

Apa pesan sampah. Mengapa OS tidak bisa melakukan yang diperlukan?