Bagaimana cara memperbaiki paket yang rusak?

21

Mencoba menginstal libssl-dev di ubuntu 14.04.2

$ make
fatal error: openssl/sha.h: No such file or directory
compilation terminated.

$ sudo apt-get install libssl-dev
The following packages have unmet dependencies:
 libssl-dev : Depends: zlib1g-dev but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

$ sudo apt-get install zlib1g-dev
The following packages have unmet dependencies:
 zlib1g-dev : Depends: zlib1g (= 1:1.2.3.4.dfsg-3ubuntu4) but 1:1.2.8.dfsg-1ubuntu1 is to be installed
E: Unable to correct problems, you have held broken packages.

Bagaimana saya bisa menghapus paket yang ditahan dan menginstal yang benar?

Sam Healey
sumber
Kapan terakhir kali Anda berlari sudo apt updatedan / atau sudo apt upgrade?
DopeGhoti
Hai, saya telah melakukan keduanya di antara setiap langkah.
Sam Healey

Jawaban:

18

Pertama, coba masukkan ini: sudo dpkg --configure -a

Ini akan sangat membantu memperbaiki ketergantungan yang rusak. Jika itu tidak cukup, coba: sudo apt-get install -f

Kemudian bersihkan dan perbarui: sudo apt-get clean && sudo apt-get update

Kemudian tingkatkan: sudo apt-get upgrade (katakan 'y' ke peningkatan)

Jika Anda mendapatkan pesan yang mengatakan beberapa paket "ditahan", lakukan ini:

sudo apt-get dist-upgrade

Sekarang lakukan dua perintah ini:

sudo apt-get purge zlib1g-dev
sudo apt-get autoremove

Lalu lihat apa yang terjadi ketika Anda masuk: sudo apt-get install libssl-dev

Jika masih tidak berhasil, coba ini:

sudo aptitude install libssl-dev zliblg-dev=1:1.2.8.dfsg-1ubuntu1

Jika masih tidak berhasil, buka Synaptic Package Manager (Seharusnya ada di Launcher Anda. Jika Anda tidak dapat menemukannya, maka di Terminal masukkan synaptic-pkexec).

Cari zlib1g-dev. Jika kotak di sebelah zlib1g-dev tidak berwarna hijau, klik dan pilih "Tandai untuk instalasi". Jika Anda melihat lebih dari satu versi, pilih 1:1.2.8.dfsg-1ubuntu1. Kemudian cari libssl-dev. Jika kotak di sebelah libssl-dev tidak berwarna hijau, klik dan pilih "Tandai untuk instalasi".

Kemudian pilih "Terapkan".

anggun1
sumber
Hai, terima kasih telah membalas. Saya melakukan semuanya di atas dan mendapatkan kesalahan yang sama seperti pada posting asli saya. Ketika saya menjalankan peningkatan, saya mendapat pesan berikut. Paket-paket berikut telah disimpan: linux-generic-lts-utopic linux-header-generic-lts-utopic linux-image-generic-lts-utopic 0 ditingkatkan, 0 baru dipasang, 0 untuk dihapus dan 3 tidak ditingkatkan.
Sam Healey
apa yang memberi apt-cache policy zlib1g-devdangrep -P '^[ \t]*[^#[ \t]+' /etc/apt/sources.list /etc/apt/sources.list.d/*.list
@ Bahahamut Apakah Anda yakin maksud Anda "-P"? Bagi saya, saya dapatE: Command line option 'P' [from -P] is not known.
gracious1
@ SamHealey saya sedikit mengubah jawaban saya. Coba apa yang saya sarankan di sana, dan beri tahu kami bagaimana hasilnya.
gracious1
1
@ Bahama Mengapa tidak ada sudo dengan program grafis?
gracious1
2

Anda harus mencari semua file yang terkait dengan paket Anda dan membersihkannya, lalu instal ulang.

sudo dpkg --list
sudo apt-get purge "file-name"

ulangi perintah kedua dengan setiap file lalu instal ulang.

Alex
sumber
0
sudo aptitude install lib_name_depending

bekerja untuk saya ketika saya ingin menginstal libcurl4-openssl-devUbuntu 14.04LTS saya.

Beberapa lib bergantung tidak diinstal pada mesin saya, dan dengan menggunakan alat aptitude, saya berhasil menginstal / menurunkan versi lib / paket yang diperlukan untuk dapat menginstal libcurl4-openssl-dev.

Danijel Hodzic
sumber