Setelah meningkatkan dari 10,04 ke 12,04 saya mencoba menginstal paket yang berbeda. Misalnya ia32-libs dan skype (4.0).
Ketika mencoba menginstal ini, saya mendapatkan pesan kesalahan 'Tidak dapat memperbaiki masalah, Anda telah menahan paket yang rusak'.
Output dari perintah:
sudo apt-get install -f
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Setelah menjalankan ini:
sudo dpkg --configure -a
foo@foo:~$ sudo apt-get install -f
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
sudo apt-get install ia32-libs
) dan output dari perintah itu. Juga, apakahsudo apt-get dist-upgrade
ada pembaruan yang tersedia?Jawaban:
Pesan kesalahan tertentu itu mungkin menunjukkan bahwa Anda telah menyimpan paket, tetapi mungkin juga menunjukkan masalah yang berbeda.
Anda bisa mendapatkan daftar yang sebenarnya diadakan paket dengan:
Jika tidak ada, atau tidak ada yang terlihat terkait, maka itu mungkin sesuatu yang lain. Periksa dengan cermat output dari perintah yang Anda coba ketika Anda mendapatkan pesan kesalahan, karena mungkin ada petunjuk lain dalam output penuh dari perintah itu, selain dari pesan kesalahan.
Metode pemecahan masalah lain mungkin menggunakan aptitude daripada apt-get untuk mencoba menginstal paket Anda:
Aptitude akan menyerah dengan lebih mudah, dan akan berusaha mencari solusi yang mungkin melibatkan memodifikasi paket lain. Mungkin memberi Anda lebih banyak penjelasan tentang masalah dan opsi untuk memperbaikinya.
Terkadang aptitude akan terlalu bersemangat untuk menghapus atau menurunkan paket dalam jumlah besar untuk memenuhi permintaan Anda, dalam hal ini mencoba kembali dengan
-f
perubahan prioritasnya dan membantunya menemukan solusi yang melibatkan menghapus / menurunkan paket lebih sedikit bahkan jika itu berarti tidak semua perubahan yang Anda minta dapat melanjutkan:sumber
Itu juga terjadi pada saya. Yang saya lakukan adalah
sudo apt-get update
dan itu memperbaiki masalah saya. Semoga berhasil.sumber
Saya mengalami skenario serupa tentang dependensi yang hilang. Dalam kasus saya, saya mencoba menginstal curl di ubuntu saucy salamander 13.10 ...
Kesalahan menyatakan bahwa dependensi memerlukan versi sebelumnya dari curl3 library.
Saya dapat menurunkan ke versi sebelumnya dengan mencoba menginstal curl menggunakan aptitude.
Ketika ia mencatat ketergantungan yang hilang, dan alasannya (diperlukan versi file perpustakaan sebelumnya), itu memberi saya beberapa opsi dalam cara merespons ... y// n/q
Yakan membatalkan instalasi, Nakan mencari opsi lain, dan Qhanya akan berhenti dan tidak melakukan apa-apa lagi, meninggalkan paket yang rusak.
Saya memilih N, dan itu memberi saya opsi untuk menurunkan versi file perpustakaan ke versi sebelumnya. Jadi itulah yang saya lakukan, dan ikal selesai menginstal tanpa kesalahan lagi.
sumber
Saya memiliki skenario yang sama dalam pemasangan baru 14,04, tanpa ada file yang terdaftar
dpkg --get-selections | grep hold
, dan tidak ada sukacita setelahsudo apt-get update
.Apa yang lakukan memperbaikinya bagi saya adalah sederhana
Ketika saya mencoba menginstal ulang paket gagal itu berfungsi dengan baik. Yay!
sumber
Punya masalah yang sama, saya menjalankan perintah cek paket dari jawaban lain (
dpkg --get-selections | grep hold
) dan melihatjadi saya menggunakan "
apt-get remove tomcat7-common
"Kemudian saya dapat menginstal Tomcat 6 (saya menghapus Tomcat 7 dan menginstal Tomcat 6 seperti yang Anda lakukan).
sumber
Ini adalah beberapa cara cepat dan mudah untuk memperbaiki
you have held broken packages
kesalahan.Buka file sources.list Anda
/etc/apt/sources.list
dan periksa bahwa tidak ada sumber perangkat lunak untuk rilis Ubuntu yang berbeda dari rilis Ubuntu yang saat ini Anda gunakan. Jika Anda menemukan baris rilis yang salah di sources.list, buka file sources.list dengansudoedit /etc/apt/sources.list
, beri komentar pada baris yang salah di sources.list dengan mendahului mereka dengan#
karakter, simpan file sources.list, dan jalankansudo apt update
untuk memperbarui daftar paket perangkat lunak yang tersedia.Pilih opsi Perbaiki Paket yang Rusak di pengelola paket Synaptic. Jalankan perintah berikut untuk menginstal Synaptic.
Buka Synaptic dan di Synaptic pilih Edit -> Perbaiki Paket Rusak dan kemudian ulangi Edit -> Perbaiki Paket Rusak untuk kedua kalinya.
Dalam Synaptic di panel kiri klik tombol Filter Kustom yang ditandai oleh kursor mouse di screenshot di bawah ini. Dari daftar di sudut kiri atas pilih Patah . Di panel tengah akan terdaftar paket yang rusak yang masih perlu diperbaiki.
Pilih paket yang rusak satu per satu. Pilih paket yang rusak, lalu buka terminal dan jalankan . Hasil dari perintah ini akan memberi tahu Anda apakah paket yang rusak itu diinstal dari repositori default Ubuntu atau dari beberapa sumber lain. Jika paket rusak diinstal dari beberapa sumber lain, mungkin paket itu dapat dihapus bersama dengan sumber perangkat lunaknya dan diganti dengan versi berbeda dari paket yang sama dari repositori default Ubuntu. Biasanya ini berarti memperbaiki paket yang rusak dengan menurunkan versi paket itu ke versi yang lebih lama.
apt policy <package-name>
Jika Anda mendapatkan pesan kesalahan ini:
Jalankan perintah berikut:
Hapus secara manual paket yang rusak.
Temukan paket Anda di
/var/lib/dpkg/info
Pindahkan folder paket ke lokasi lain.
Jalankan perintah berikut:
Jika semua metode ini tidak berfungsi, ada kemungkinan bahwa paket yang rusak disebabkan oleh sesuatu yang tertanam begitu dalam di sistem operasi sehingga tidak ada metode ini yang memiliki efek di dalamnya. Tempat pertama yang jelas untuk mencari "sesuatu" yang tertanam dalam ini ada di sumber perangkat lunak di
/etc/apt/sources.list
. Periksa file sources.list untuk melihat apakah mengandung baris non-standar yang mungkin menyebabkan kesalahan paket. File standar Ubuntu sources.list terlihat seperti file sources.list dalam jawaban ini .Cara yang benar untuk menghapus baris yang mencurigakan dari sources.list adalah berkomentar dengan mendahului
#
karakter. Kemudian jalankansudo apt update
untuk menyegarkan daftar perangkat lunak yang tersedia.sumber
Bagi saya, tidak ada yang di atas berfungsi karena sistem saya tidak diperbarui. aku melakukannya
Home Key > Software Updater > Install
dan memperbarui sistem saya; setelah itu, saya bisa menginstal paket saya dengan normal
apt
.sumber
Saya memiliki masalah yang sama menginstal ulang
xsane
setelahppa
instalasi gagal . Seperti yang terjadi pada yochannah, "tidak ada file yang terdaftardpkg --get-selections | grep hold
, dan tidak ada sukacita setelahsudo apt-get update
".Petunjuk yang
apt-get
memberi saya adalahxsane : Depends: libsane (>= 1.0.24) but it is not going to be installed
Karena jawaban yochannah, saya merasa harus menghapus beberapa paket yang diinstal sebelumnya. Dan memang begitu, saya harus menghapus secara manual semua paket yang terkait
sane
, antara lainxsane-common
danlibsane
, yang masih diinstal sebagaippa
versi.Karena itu, perhatikan apa yang sudah Anda pasang sebelumnya dan rapikan!
sumber