วิธีแก้ไขแพ็กเกจที่ใช้งานไม่ได้?


21

พยายามติดตั้ง libssl-dev บน 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.

ฉันจะลบแพ็กเกจที่ถูกพักไว้และติดตั้งที่ถูกต้องได้อย่างไร?


คุณวิ่งsudo apt updateและ / หรือครั้งสุดท้ายเมื่อsudo apt upgradeใด
DopeGhoti

สวัสดีฉันทำทั้งสองขั้นตอนแล้ว
Sam Healey

คำตอบ:


18

ก่อนอื่นให้ลองป้อนสิ่งนี้: sudo dpkg --configure -a

วิธีนี้จะช่วยแก้ไขการอ้างอิงที่ใช้งานไม่ได้ หากยังไม่พอให้ลอง: sudo apt-get install -f

จากนั้นทำความสะอาดและอัปเดต: sudo apt-get clean && sudo apt-get update

จากนั้นอัปเกรด: sudo apt-get upgrade (พูด 'y' เพื่ออัปเกรด)

หากคุณได้รับข้อความแจ้งว่าแพคเกจบางอย่าง "ถูกระงับ" ให้ทำดังนี้:

sudo apt-get dist-upgrade

ตอนนี้ทำสองคำสั่ง:

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

จากนั้นดูว่าเกิดอะไรขึ้นเมื่อคุณป้อน: sudo apt-get install libssl-dev

หากยังใช้งานไม่ได้ให้ลองสิ่งนี้:

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

หากยังใช้งานไม่ได้ให้เปิดSynaptic Package Manager (ควรอยู่ในตัวเรียกใช้งานของคุณหากคุณหาไม่พบให้ป้อนที่ Terminal synaptic-pkexec)

zlib1g-devค้นหา หากกล่องที่อยู่ถัดจาก zlib1g-dev ไม่ใช่สีเขียวให้คลิกที่มันและเลือก "ทำเครื่องหมายเพื่อการติดตั้ง" 1:1.2.8.dfsg-1ubuntu1ถ้าคุณเห็นมากกว่าหนึ่งรุ่นให้เลือก libssl-devแล้วค้นหา หากกล่องที่อยู่ถัดจาก libssl-dev ไม่ใช่สีเขียวให้คลิกที่มันและเลือก "ทำเครื่องหมายสำหรับการติดตั้ง"

จากนั้นเลือก "นำไปใช้"


สวัสดีขอบคุณสำหรับการตอบกลับ ฉันทำทุกอย่างด้านบนและได้รับข้อผิดพลาดเช่นเดียวกับในโพสต์ต้นฉบับของฉัน เมื่อฉันอัพเกรดฉันได้รับข้อความต่อไปนี้ แพ็กเกจต่อไปนี้ถูกเก็บไว้กลับ: linux-generic-lts-utopic linux-headers-generic-lts-utopic linux-image-generic-lts-utopic 0 อัพเกรดแล้ว, ติดตั้งใหม่ 0, ลบ 0 และ 3 ไม่ได้อัพเกรด
Sam Healey

จะให้อะไรapt-cache policy zlib1g-devและgrep -P '^[ \t]*[^#[ \t]+' /etc/apt/sources.list /etc/apt/sources.list.d/*.list

@Bahamut คุณแน่ใจหรือว่าคุณหมายถึง "-P" สำหรับฉันฉันได้รับE: Command line option 'P' [from -P] is not known.
สง่างาม 1

@ SamHealey ฉันแก้ไขคำตอบบ้าง ลองสิ่งที่ฉันแนะนำที่นั่นและแจ้งให้เราทราบว่ามันไปอย่างไร
สง่างามที่

1
@Bahamut ทำไมไม่ sudo ด้วยโปรแกรมกราฟิก?
gracious11

2

คุณต้องมองหาไฟล์ทั้งหมดที่เกี่ยวข้องกับแพคเกจของคุณและกำจัดพวกเขาแล้วติดตั้ง

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

ทำซ้ำคำสั่งที่สองกับทุกไฟล์แล้วติดตั้งใหม่


0
sudo aptitude install lib_name_depending

ทำงานสำหรับฉันเมื่อฉันต้องการติดตั้งlibcurl4-openssl-devบน Ubuntu 14.04LTS ของฉัน

ไม่ได้ติดตั้ง libs แล้วแต่จำนวนมากบนเครื่องของฉันและด้วยการใช้เครื่องมือความถนัดฉันจึงจัดการติดตั้ง / ปรับลด libs / แพ็คเกจที่จำเป็นแบบโต้ตอบเพื่อให้สามารถติดตั้งlibcurl4-openssl-devได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.