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?
apt
package-management
jfoucher
sumber
sumber
Jawaban:
Menurut sebuah artikel di debian-administration.org ,
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 bermanfaat untuk tidak menandai paket yang disimpan sebagai "diinstal secara manual," yang dapat memaksa lebih banyak intervensi pengguna di telepon (lihat komentar).
Jika solusi Pablo cocok untuk Anda, harap perbarui. Jika tidak, beri komentar apa yang salah.
Solusi hati-hati 2:
Solusi yang berhati-hati adalah berjalan
sudo apt-get install <list of packages kept back>
. Dalam kebanyakan kasus ini akan memberikan paket yang disimpan kembali apa yang mereka butuhkan untuk berhasil ditingkatkan.Solusi agresif:
Solusi yang lebih agresif adalah menjalankan
sudo apt-get dist-upgrade
, yang akan memaksa pemasangan dependensi baru tersebut.Tetapi
dist-upgrade
bisa sangat berbahaya . Tidak seperti peningkatan, ini dapat menghapus paket untuk menyelesaikan situasi ketergantungan yang kompleks. Tidak seperti Anda, APT tidak selalu cukup pintar untuk mengetahui apakah penambahan dan pemindahan ini dapat mendatangkan malapetaka.Jadi jika Anda menemukan diri Anda di tempat di mana "solusi hati-hati" tidak berfungsi,
dist-upgrade
mungkin berhasil ... tetapi Anda mungkin lebih baik belajar sedikit 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 pas, Anda akan mendapatkan ketenangan pikiran dengan membaca dan melakukan perbaikan sendiri. Jika Anda merasa beruntung, Anda dapat mengantar mobil Anda dengan sepupu Anda
dist-upgrade
dan berharap dia tahu barang-barangnya.sumber
dist-upgrade
pada sistem yang stabil seperti yang ditunjukkan oleh banyak jawaban lain di bawah ini. Secara pribadi saya pikir ada jawaban yang lebih sederhana / lebih aman yang perlu dipromosikan: apt-get install <list of pkgs>sudo apt-get dist-upgrade
juga dapat menghapus paket. Konsekuensinya, yang terbaik adalah selalu memeriksa daftar perubahan yang akan dibuat sebelum menyetujui mereka, ketika berjalansudo apt-get dist-upgrade
.apt-get upgrade
dapat menghapus paket? Itu akan selalu melakukan itu ketika akan ada konflik versi sebaliknya. Pikirkanllvm3.6
vs.llvm3.6v5
(dengan arti "v5" yang dikompilasigcc 5
). Keduanya tidak dapat hidup berdampingan , hanya keduanya yang dapat disimpan dalam sistem. Jadi yadist-upgrade
mungkin menghapus beberapa paket juga, tetapi bukan hanyadist-upgrade
itu yang akan melakukan ini; dalam keadaan tertentu,upgrade
akan, juga.Setiap kali Anda menerima
apt-get upgrade
pesan dari perintahkemudian untuk memutakhirkan satu atau semua paket yang disimpan, tanpa melakukan pemutakhiran distribusi (ini yang
dist-upgrade
dilakukan, jika saya ingat dengan benar) adalah dengan mengeluarkan perintah:ini akan menyelesaikan masalah yang disimpan dan akan meminta untuk menginstal paket tambahan, dll. seperti yang dijelaskan oleh jawaban lain.
sumber
apt-get upgrade <list of packages>
, jika saya ulangapt-get upgrade
, itu akan mencantumkan paket yang dimaksud sebagai tidak lagi diperlukan dan yang dapat saya gunakanapt autoremove
untuk menghapusnya, yang saya lakukan, dan yang terakhirapt-get upgrade
dan mereka tidak lagi terdaftar sebagai terus kembali ... Sangat aneh. Adakah pikiran?apt-get install
juga menghapus paket ketika diperlukan untuk menyelesaikan situasi ketergantungan degil, atau apakah Anda harus menjalankanapt-get remove
perintah terpisah untuk menyelesaikan bagian proses upgrade?apt autoremove
kemudian menghapus dependensi yang tidak digunakan ini.sudo apt-get --with-new-pkgs upgrade
yang tidakapt-get dist-upgrade
berbahaya bagi lingkungan yang stabil,Gunakan case: peningkatan kernel terus, Anda hanya ingin meng-upgrade kernel, tidak ingin meng-upgrade seluruh distribusi.
Cara yang lebih baik untuk menangani paket yang disimpan kembali:
Jika Anda telah menyimpan kembali paket Anda harus melihat Paket yang Dapat Di-upgrade di bagian atas daftar.
Paket yang disimpan Anda terinstal.
sumber
apt-get dist-upgrade
hanya berbahaya jika Anda memiliki repositori buruk di/etc/apt/sources.list*
. Adalah baik untuk menyadari bahwadist-upgrade
meningkatkan semua paket, tetapi dengan repositori default, itu akan baik-baik saja. Tidak menggunakandist-upgrade
bisa berbahaya, karena Anda mungkin kehilangan pembaruan keamanan.apt-get dist-upgrade
dapat menghapus dan menambahkan paket, tetapi itu tidak benar-benar berbahaya. Setiap perintah instalasi paket dapat menyebabkan kerusakan serius jika Anda memiliki masalah dalamsources.list
file Anda !apt-get upgrade
Perintah reguler akan menginstal paket apa pun dari sumber perangkat lunak apa pun yang diaktifkan;dist-upgrade
tidak unik dengan cara ini. Selain itu, menggunakanaptitude
untuk melakukan operasi apa pun, setidaknya pada amd64, jauh lebih berbahaya daripada berjalanapt-get dist-upgrade
, dalam rilis di mana bug 831768 tidak diperbaiki.sudo aptitude safe-upgrade
Mengapa Anda tidak mencoba jawaban Unix SE ini :
apt
command ( alternatif ramah untukapt-get
) berbagi opsi ini.apt install <pkg>
Sebaliknya menggunakan pkg akan ditandai sebagai "terpasang secara manual" !! Untuk menandainya lagi sebagai "terinstal secara otomatis" gunakanapt-mark auto <pkg>
(lihat juga subperintahshowmanual
). Info lebih lanjut tentang jawaban ini .sumber
apt-mark auto <pkg>
seharusnya hanya perlu menandai suatu paket sebagai yang diinstal secara otomatis (di sini halaman manual ).sudo apt-get --with-new-pkgs upgrade
masih menunjukkan paket-paket sebagai "disimpan kembali". Tidak ada pesan kesalahan.Biasanya ada dua alasan Anda dapat melihat pesan ini.
Jika memutakhirkan program (melalui
sudo apt-get upgrade
) akan menyebabkan paket ditambahkan atau dihapus, maka program akan ditahan. Anda dapat menggunakansudo apt-get dist-upgrade
dalam hal ini, yang kemudian akan menawarkan untuk menambah atau menghapus program tambahan.Ini cukup umum dan biasanya bukan masalah. Kadang-kadang (terutama selama alfa Ubuntu)
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 tersebut akan ditahan. Anda benar-benar tidak dapat melakukan apa pun kecuali menunggu dalam keadaan ini, karena paket ini pada dasarnya dapat dihapus. Ini bisa terjadi ketika paket ditambahkan ke repositori rusak, ketika sebuah paket diganti namanya, atau ketika sebuah paket berhenti menyediakan paket virtual.
sumber
apt-get dist-upgrade
menolak untuk menginstalnya. Memeriksa paket dengan bakat menunjukkan bahwa itu tergantung pada paket yang tidak tersedia. Saya kira saya harus menunggu.Anda juga dapat mencoba:
sudo aptitude safe-upgrade
.Ini lebih aman daripada
full-upgrade
(awalnya bernama dist-upgrade) karena "paket tidak akan dihapus kecuali mereka tidak digunakan".Dari
man aptitude
:sumber
Kemungkinan besar paket-paket ini ditahan karena instalasi mereka akan menciptakan inkonsistensi ketergantungan. Ini bisa terjadi karena Anda menggunakan arsip dalam pengembangan aktif, ppas, atau karena cermin yang Anda gunakan tidak sepenuhnya diperbarui.
Dalam kasus terakhir, tunggu saja, ketika dependensi diselesaikan itu akan diinstal pada waktu berikutnya.
Sunting:
Ada kemungkinan lain, paket mungkin ditahan jika ada yang menahannya, atau jika mereka disematkan.
sumber
dist-upgrade
sama sekali. Jika Anda masih ingindist-upgrade
, lihat paket BARU yang akan diinstal dan paket yang akan dihapus sebelum melanjutkan.apt-get install --reinstall <packages>
.Ini biasanya karena paket telah menambahkan ketergantungan, dan peningkatan tidak ingin menambahkannya untuk Anda tanpa izin.
Jika Anda menjalankan:
Kemudian versi baru harus diinstal bersama dengan ketergantungan baru mereka.
sumber
Ini berhasil untuk saya
sumber
aptitude upgrade
bekerja untukku.Ubuntu 14.04
dan saya tidak memilikiaptitude
baris perintahapt-get dist-upgrade
memberi saya pesan yang sama, tetapi ini menyelesaikannya untuk saya. Saya memiliki paket yang melanggar pemutakhiran paket lain. Saya tidak membutuhkan yang saya instal, jadiaptitude full-upgrade
beri saya pilihan untuk menghapusnya sehingga dapat meningkatkan segalanya.Saya telah menemukan bahwa aptitude melakukan pekerjaan yang lebih baik dalam meningkatkan paket jika versinya sedikit berbeda. Saya memiliki situasi seperti ini:
Ini membuat apt-get menahan pembaruan, tetapi aptitude memperbaruinya dengan baik. Saya tidak yakin algoritma mana yang digunakan untuk menentukan apakah suatu paket harus diperbarui atau tidak. Saya kira keduanya memiliki versi yang sama, hanya 'kualifikasi' yang berbeda. Tetapi bagaimanapun juga, apt-get tidak akan memperbaruinya, tetapi aptitude akan melakukannya.
sumber
Dalam kasus saya, paket yang ditahan adalah yang terkait dengan linux-header dan kernel. Saya sampai pada hal ini dengan mencoba menyelesaikan masalah dengan memiliki tanda seru merah di area notifikasi dan tidak dapat memperbarui paket.
Untuk mengatasinya, saya tidak perlu menggunakan dist-upgrade atau manual apt-get install xxx .
Apa yang saya lakukan dan telah bantu sederhana dan bersih :
Saya harus secara manual mengonfirmasi pembaruan Grub dan konfigurasinya.
Kemudian saya hanya bekerja dengan komputer untuk sementara waktu dan kemudian dialog pembaruan standar telah muncul lagi akhirnya termasuk bagian "basis Ubuntu" dengan kernel dan terkait. Pembaruan dilakukan tanpa masalah dan saya tidak melihat paket yang ditahan lagi.
Juga, sangat penting untuk diingat bahwa pembaruan * buntu tersebut termasuk pembaruan kernel peka terhadap hibernasi - Saya mengalami masalah ini beberapa kali dan saya selalu menyelesaikannya dengan menyalakan kembali mesin dan melakukan langkah-langkah di atas.
Jadi mungkin ini cukup?
(situasi yang dijelaskan di sini terkait dengan Xubuntu 15.10 saya pada akhir Desember 2015)
sumber
Saya mengalami masalah ini ketika kernel baru dirilis. (Mungkin karena saya mengaktifkan pembaruan yang tidak stabil.) Saya menemukan cara paling sederhana untuk melakukan instalasi adalah melalui installer grafis Ubuntu (
update-manager
).sumber
Saya mengalami masalah ini menggunakan synaptic karena tampaknya hang, dan untuk mencoba dan memperbaikinya saya boot ulang dan mencoba lagi.
Kemudian saya menemukan pesan informatif sebagai bagian dari paket dengan beberapa instruksi pasca pemasangan untuk saya.
Saya harus menekan " perincian ", dan kemudian ' q ' untuk berhenti setelah membaca pesan, dan kemudian semuanya berjalan normal.
sumber
Ini seperti cara yang benar untuk menginstal ulang paket yang disimpan kembali:
apt-get install --reinstall libjpeg-progs
Setidaknya ini bekerja untuk saya ketika
libjpeg-progs
macet setelah memutakhirkan dari Ubuntu 14.04 ke 16.04. Saya yakin Anda dapat melakukan hal yang sama dengan aplikasi yang disimpan lainnya, misalnyagimp
.Sumber: https://ubuntuforums.org/showthread.php?t=2321702&p=13476183#post13476183
sumber
--reinstall
juga.Pada kenyataannya, switch yang Anda butuhkan adalah
dselect-upgrade
yang menginstal / menghapus dependensi untuk paket tertentu yang terlibat.sumber
Saya telah membaca semua posting dan menemukan bahwa ada banyak penjelasan yang menarik. Saya sudah mencoba semuanya tetapi belum mendapatkan hasil sepenuhnya. Saya memiliki masalah dengan utilitas mysql yang tidak dapat saya tingkatkan. Pembaruan diusulkan oleh sistem. Jadi, saya ingin menunjukkan beberapa langkah untuk melakukannya. Tentu saja, saya akan mengulangi dalam beberapa saat semua posting yang disebutkan di atas. Ini kesalahan saya, ya saya menemukannya dengan posting yang sudah ada, tetapi apa yang harus saya lakukan selanjutnya?
Langkah selanjutnya adalah:
Hasilnya bisa kita lihat pada gambar di bawah ini. Saya menghapus paket dan memeriksa ini dengan perintah:
Hasil - Baik! Kemudian saya menginstal paket versi baru ini dengan benar.
Dengan cara ini, saya pikir dapat membantu lebih banyak orang baru karena memiliki paket lain kita dapat melakukan langkah yang sama.
Sekali, saya minta maaf, ketika saya mengulangi di beberapa tempat posting lain.
sumber
{}
tombol di editor untuk memformatnya dengan benar.Ubuntu 18.04 menyediakan sintaksis yang lebih baru dan efisien
apt
yang dapat digunakan alih-alihapt-get
.sumber