ฉันจะแก้ไขการพึ่งพาที่ไม่ได้รับหลังจากเพิ่ม PPA ได้อย่างไร


540

บางครั้งเมื่อฉันติดตั้งสิ่งของฉันได้รับข้อผิดพลาดดังนี้:

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 package1 : Depends: package2 (>= 1.8) but 1.7.5-1ubuntu1 is to be installed
E: Unable to correct problems, you have held broken packages.

ฉันจะแก้ไขปัญหานี้ได้อย่างไร


33
ลืมชื่อแพคเกจที่แน่นอน มันไม่เกี่ยวข้องกับคำถามนี้ ฉันพยายามที่จะสร้างคำถามที่ยอมรับ ดังนั้นแพคเกจที่แน่นอนไม่เกี่ยวข้องในอินสแตนซ์เฉพาะนี้
jrg

33
จริงๆแล้ว "ชื่อแพคเกจที่แน่นอน" ในขณะที่ไม่เกี่ยวข้องในคำถามของคุณมีความเกี่ยวข้องอย่างยิ่งกับปัญหาของบุคคลใด ๆ ในเรื่องนี้ โดยปกติแล้วขั้นตอนที่ 1 ที่ดีที่สุดในการแก้ไขปัญหานี้คือการระบุแหล่งที่มาของ pkg1 & pkg2 สิ่งนี้ดูเหมือนจะถูกมองข้ามในคำตอบซึ่งส่วนใหญ่ค่อนข้างดี นอกจากนี้ยังไม่ได้สังเกตคือในหลายกรณีหากไม่ใช่ส่วนใหญ่จะต้องติดตั้ง "<สิ่งใดก็ตาม" จริงๆหมายถึง "ติดตั้งอะไรก็ตาม" นี่คือสิ่งที่มีแนวโน้มที่จะสร้างความสับสนให้ผู้ใช้หลายคนหันหน้าไปทางนี้และควรที่จะรวมอยู่ในคำตอบด้านล่าง
ดั๊ก

5
@doug เพิ่มว่าเป็นคำตอบและไม่ใช่ความคิดเห็นมันค่อนข้างดี! :)
jrg

1
@Braiam Whaaaat มีประเด็น แต่คำถามนั้นไม่เฉพาะเจาะจงสำหรับ PPA และมีคำตอบไม่มากนัก ฉันรู้ว่าคำตอบสองข้อแรกครอบงำคนอื่นเล็กน้อย แต่ฉันไม่แน่ใจว่าการเปลี่ยนลักษณะของคำถามนั้นเป็นวิธีการแก้ปัญหาที่ถูกต้องโดยเฉพาะอย่างยิ่งเมื่อคุณลบล้างคำตอบอื่น ๆ ตอนนี้ฉันจะทิ้งไว้เพราะฉันไม่มีคำตอบที่ดีกว่า แต่มันเป็นสิ่งที่ควรคำนึงถึง
เซ ธ

2
โอ้และคำถามการแก้ไขปัญหาของฉันอยู่ที่ไหน : D
Seth

คำตอบ:


561

APT เป็นระบบจัดการแพ็กเกจสำหรับ Debian และลินุกซ์อื่น ๆ ที่มีพื้นฐานมาจากมันเช่น Ubuntu ส่วนใหญ่แล้ว APT นั้นใช้งานง่ายสำหรับการติดตั้งการถอดและการอัพเดทแพ็คเกจ ในกรณีที่ไม่ค่อยเกิดขึ้นบ่อยครั้งเมื่อคุณผสมในการพึ่งพาของบุคคลที่สามมีโอกาสที่apt-getจะทำให้คุณมีข้อผิดพลาดที่บอกคุณว่าการติดตั้งแพคเกจไม่สามารถเสร็จสมบูรณ์

Solutions:

เป็นความคิดที่ดีในการสำรองไฟล์การกำหนดค่าเช่น/etc/apt/sources.listนั้นดังนั้นคุณสามารถย้อนกลับการเปลี่ยนแปลงได้หากจำเป็น

  • หากการerrorแสดงบางอย่างเช่นนี้:

    <some-package>: Depends: <other-package> (= version) but this-version is to be installed

    จากนั้นตรวจสอบให้แน่ใจว่าเปิดใช้งานrestrictedและที่universeเก็บ Hit Alt+ F2ชนิดและตีsoftware-properties-gtkEnter

    ภายใต้Ubuntu Softwareแท็บเปิดใช้งานที่เก็บทั้งหมด

  • สาเหตุหนึ่งที่เป็นไปได้ของการขึ้นต่อกันที่ไม่คาดคิดอาจเกิดความเสียหายฐานข้อมูลแพ็คเกจและ / หรือแพคเกจบางอย่างไม่ได้ติดตั้งอย่างถูกต้อง ในการแก้ไขปัญหานี้ให้กดAlt+ Ctrl+ Tเพื่อเปิดเทอร์มินัลแล้วลองเรียกใช้หนึ่งในคำสั่งต่อไปนี้:

    sudo apt-get clean

    หรือ,

    sudo apt-get autoclean

    apt-get cleanล้างที่เก็บโลคัลของไฟล์แพ็กเกจที่ดึงข้อมูล (ไฟล์. deb) มันลบทุกอย่างยกเว้นไฟล์ล็อคจาก / var / cache / apt / archives / และ / var / cache / apt / archives / partial / apt-get autocleanล้างที่เก็บโลคัลของไฟล์แพ็กเกจที่ดึงข้อมูลออก แต่ไม่เหมือนกับapt-get cleanไฟล์แพ็กเกจที่ไม่สามารถดาวน์โหลดได้อีกต่อไปและส่วนใหญ่จะไม่มีประโยชน์

  • หนึ่งในการแก้ไขพื้นฐานที่สุดในการแก้ไขปัญหาการพึ่งพาคือการเรียกใช้:

    sudo apt-get -f install

    -fนี่ย่อมาจาก“แก้ไขเสีย” Aptจะพยายามแก้ไขการอ้างอิงที่ใช้งานไม่ได้ หากคุณติดตั้งแพคเกจที่มีการพึ่งพาแบบ unmet apt-getจะทำการติดตั้งการพึ่งพาเหล่านั้นหากเป็นไปได้มิฉะนั้นอาจเป็นการลบแพ็กเกจที่คุณติดตั้งไว้เพื่อแก้ไขปัญหา

    จากนั้นเรียกใช้:

    sudo dpkg - กำหนดค่า -a

    จากนั้นเรียกใช้งานอีกครั้ง:

    sudo apt-get -f install

    หากผลลัพธ์คือ:

    0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.

    นั่นหมายความว่ามันล้มเหลว

  • ทางออกต่อไปคือการเรียกใช้:

    sudo apt-get -u dist-upgrade

    ถ้ามันแสดงแพ็คเกจใด ๆ ที่เก็บไว้มันเป็นการดีที่สุดที่จะกำจัดมัน แพคเกจจะถูกเก็บไว้เนื่องจากความขัดแย้งในการพึ่งพาที่aptไม่สามารถแก้ไขได้ ลองใช้คำสั่งนี้เพื่อค้นหาและแก้ไขข้อขัดแย้ง:

    sudo apt-get -o Debug :: pkgProblemResolver = ใช่การอัพเกรด

    หากไม่สามารถแก้ไขข้อขัดแย้งได้ก็จะออกด้วย:

    0 upgraded, 0 newly installed, 0 to remove and 6 not upgraded.

    ลบแพ็กเกจที่ถูกพักไว้ทีละตัวรันdist-upgradeในแต่ละครั้งจนกว่าจะไม่มีแพ็กเกจที่ถูกจัดเก็บเพิ่มเติม จากนั้นติดตั้งแพคเกจใด ๆ ที่จำเป็น ให้แน่ใจว่าใช้--dry-runตัวเลือกเพื่อให้คุณได้รับผลกระทบอย่างเต็มที่:

    sudo apt-get remove --dry-run แพ็คเกจชื่อ

    เนื่องจากการลบแพ็กเกจที่คุณพยายามติดตั้งอาจไม่เหมาะคุณอาจลองค้นหาที่เก็บที่มีแพ็กเกจที่คุณต้องการเพื่อตอบสนองการพึ่งพา

ในที่สุดหากทุกอย่างล้มเหลวคุณสามารถพยายามสร้างความพึงพอใจต่อตัวคุณเองโดยการค้นหาและติดตั้งแพ็คเกจที่จำเป็นหรือโดยการติดตั้งจากแหล่งที่มาแล้วสร้างแพ็คเกจ“ deb ” สำหรับพวกเขา

ปิดการใช้งาน / ลบ / ล้าง PPAs:

สัญญาซื้อขายไฟฟ้า (Personal แพคเกจ Archive) จะถูกเก็บเป็นเจ้าภาพในLaunchpad คุณสามารถใช้ PPA เพื่อติดตั้งหรืออัพเกรดแพ็คเกจที่ไม่สามารถใช้ได้ในที่เก็บ Ubuntu อย่างเป็นทางการ

หนึ่งในสาเหตุที่พบบ่อยที่สุดของการพึ่งพาแบบไม่แน่นอนคือ PPAs โดยเฉพาะเมื่อใช้เพื่ออัปเกรดแพคเกจที่มีอยู่ในที่เก็บ Ubuntu เพื่อแก้ปัญหาคุณมีสามตัวเลือก: ปิดการใช้งาน, ล้าง (ย้อนกลับไปที่แพคเกจเดิมในที่เก็บ Ubuntu) หรือลบ PPA

  • ปิดการใช้งาน:

    การปิดใช้งาน PPA หมายถึงไม่มีการอัปเดตเพิ่มเติมสำหรับแพ็คเกจที่ติดตั้งจาก PPA นั้น หากต้องการปิดใช้งาน PPA: เปิดSoftware Center > Edit > Software Sourcesหรือ

    ตีAlt+ และเรียกใช้F2software-properties-gtk

    คลิกที่Other Softwareแท็บคุณจะเห็นว่า PPA แต่ละรายการมีสองบรรทัดที่นี่หนึ่งรายการสำหรับแพคเกจที่รวบรวมและอีกหนึ่งรายการสำหรับแหล่งข้อมูลUncheckทั้งสองบรรทัดเพื่อปิดใช้งาน PPA ที่นี่คุณสามารถเพิ่มและลบ PPA ได้

  • ล้าง:

    การล้าง PPA หมายถึงการลดระดับแพ็คเกจใน PPA ที่เลือกเป็นรุ่นในที่เก็บของ Ubuntu อย่างเป็นทางการและปิดการใช้งาน PPA นั้น PPA Purgeทำอย่างนั้น ในการติดตั้ง PPA Purge ให้รันคำสั่งต่อไปนี้:

    sudo apt-get install ppa-purge

แต่เมื่อพิจารณาคำถามaptแล้วคำสั่งดังกล่าวจะล้มเหลว ดังนั้นใช้คำสั่งนี้

mkdir ppa-purge && cd ppa-purge && wget http://mirror.pnl.gov/ubuntu/pool/universe/p/ppa-purge/ppa-purge_0.2.8+bzr56_all.deb && wget http://mirror.pnl.gov/ubuntu//pool/main/a/aptitude/aptitude_0.6.6-1ubuntu1_i386.deb && sudo dpkg -i ./*.deb

วิธีใช้ PPA Purge:

sudo ppa-purge ppa: someppa / ppa

หากคำสั่ง 'ppa-purge' ล้มเหลวด้วยเหตุผลบางอย่างคุณจะไม่สามารถเรียกใช้ 'ppa-purge' ได้อีกเว้นแต่คุณจะเปิดใช้งาน PPA อีกครั้ง (หากต้องการเปิดใช้งาน PPA ให้ทำตามขั้นตอนเดียวกับการปิดใช้งาน PPA และCheckทั้งสองบรรทัด PPA เพื่อเปิดใช้งาน)

หมายเหตุ: PPA Purgeไม่ลบ PPA ( อาจเป็นในอนาคต ) ดังนั้นคุณจะต้องลบ PPA ด้วยตนเอง

  • ลบ:

    หากแพ็คเกจที่ติดตั้งจาก PPA ไม่มีอยู่ในที่เก็บ Ubuntu อย่างเป็นทางการPPA Purgeไม่แนะนำให้ใช้เพราะจะไม่มีการลดระดับแพ็คเกจและPPA Purgeจะไม่ลบอย่างใดอย่างหนึ่ง ในการลบ PPA และแพ็คเกจที่ติดตั้งให้รันคำสั่งต่อไปนี้: (ข้ามคำสั่งแรกหากคุณไม่ต้องการลบแพ็คเกจที่ติดตั้งไว้)

    sudo apt-get autoremove - ชื่อแพ็คเกจแพคเกจ
    sudo add-apt-repository - ลบ ppa: someppa / ppa
    sudo apt-get autoclean
    

หรือคุณสามารถใช้Y PPA Managerเพื่อปิด / ลบ / กำจัด PPA (รายละเอียดท้ายคำตอบ)

มาตรการป้องกัน:

ดังนั้นเราจะหลีกเลี่ยงปัญหานี้ตั้งแต่แรกได้อย่างไร

  • ปรับปรุง Ubuntu ให้ทันสมัยอยู่เสมอ Ubuntu จะแจ้งเตือนโดยอัตโนมัติเมื่อมีการอัปเดตคุณสามารถตรวจสอบการอัปเดตที่ใช้ได้โดยคลิกที่Session Indicatorในแผง Unity:

    หรือกดAlt+ Ctrl+ Tเพื่อเปิด terminal และเรียกใช้คำสั่งต่อไปนี้:

    sudo apt-get update
    sudo apt-get upgrade

    อัปเดต: ซิงโครไนซ์รายการแพ็คเกจที่มีอยู่ของคุณกับเซิร์ฟเวอร์ในแหล่งเก็บข้อมูลต้นทาง อัปเกรด: ดาวน์โหลดและติดตั้งแพ็กเกจที่ติดตั้งเวอร์ชันที่ใหม่กว่าของคุณ

  • หากคุณตัดสินใจที่จะเพิ่มที่เก็บอื่น ๆ ลงในรายการแหล่งที่มาตรวจสอบให้แน่ใจว่าที่เก็บนั้นใช้เพื่อทำงานกับ Ubuntu ที่เก็บที่ไม่ได้ออกแบบมาเพื่อทำงานกับ Ubuntu เวอร์ชันของคุณสามารถแนะนำความไม่สอดคล้องในระบบของคุณและอาจบังคับให้คุณติดตั้งใหม่อีกครั้ง นอกจากนี้ตรวจสอบให้แน่ใจว่าคุณจำเป็นต้องเพิ่มที่เก็บข้อมูลภายนอกเป็นแพคเกจซอฟต์แวร์ที่คุณกำลังมองหาซึ่งอาจถูกนำไปใช้กับที่เก็บข้อมูลอย่างเป็นทางการแล้ว! แหล่ง
  • ลบ PPA ที่ซ้ำกัน Y PPA Manager(คู่มือการติดตั้งเมื่อสิ้นสุดคำตอบ) สามารถสแกนและลบ PPA ที่ซ้ำกันได้อย่างง่ายดาย

    • กดAlt+ F2และเรียกใช้y-ppa-managerเพื่อเปิด Y PPA Manager
    • เมื่อเปิดดับเบิลคลิกหรือกดบนEnterAdvanced
    • ในหน้าต่างผลลัพธ์ให้เลือกScan and remove duplicate PPAsและคลิกตกลง

ป้อนคำอธิบายรูปภาพที่นี่

ขอความช่วยเหลือ:

เมื่อขอความช่วยเหลือในAskubuntuหรือฟอรัมช่วยเหลืออื่น ๆ คุณควรรวมเอาท์พุทของคำสั่งต่อไปนี้ไว้ในคำถามของคุณ:

  • เอาต์พุตของข้อผิดพลาดจริง:

    sudo apt-get install package-name
  • สิ่งนี้จะแสดงแหล่งที่มาของคุณรายการ:

    cat /etc/apt/sources.list
  • นี่จะแสดงรายการ PPA (ถ้ามี):

    cat /etc/apt/sources.list.d/*

แหล่งข้อมูลเพิ่มเติม:


Y PPA Manager : Y PPA Manager เป็นร้านค้าครบวงจรสำหรับทุกความต้องการ PPA ของคุณ

ผู้จัดการ ypa

นี่คือคุณสมบัติบางอย่าง:

  • แพ็คเกจการค้นหาใน PPA ของ Launchpad ทั้งหมด
  • รายการและดาวน์โหลดแพ็คเกจใน PPA
  • เพิ่ม / ลบ / ล้าง PPA
  • สำรองและกู้คืนแหล่ง PPA
  • ลบแหล่ง PPA ที่ซ้ำกัน

หากต้องการติดตั้งY PPA Managerให้เปิดเทอร์มินัลโดยกดปุ่มAlt+ Ctrl+ Tและเรียกใช้คำสั่งต่อไปนี้:

sudo add-apt-repository ppa: webupd8team / y-ppa-manager
sudo apt-get update
sudo apt-get install y-ppa-manager

พิจารณาคำถามaptใช้ไม่ได้ดังนั้นให้ใช้คำสั่งเหล่านี้แทน

sudo su

และ

32 บิต:

mkdir y-ppa-manager && cd y-ppa-manager && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/launchpad-getkeys_0.3.2-1~webupd8~oneiric_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/y-ppa-manager_0.0.8.6-1~webupd8~precise_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/yad_0.17.1.1-1~webupd8~precise_i386.deb && dpkg -i ./*.deb

64 บิต:

mkdir y-ppa-manager && cd y-ppa-manager && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/launchpad-getkeys_0.3.2-1~webupd8~oneiric_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/y-ppa-manager_0.0.8.6-1~webupd8~precise_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/yad_0.17.1.1-1~webupd8~precise_amd64.deb && dpkg -i ./*.deb

3
วิธีการติดตั้ง unmet depandancies ถ้า apt เสีย?
Tachyons

4
นี่เป็นความช่วยเหลือที่ยิ่งใหญ่สำหรับฉัน ... การติดตั้งใหม่ของ Lubuntu 12.04 และไม่สามารถติดตั้งสิ่งพื้นฐานเช่น gvim (vim-gtk) หรือ openssh-server ฉันลองใช้ตัวเลือกบรรทัดคำสั่งทุกประเภทรวมถึงการทำ diff /etc/apt/sources.list จากเครื่องนี้และตัวอื่น (ทำงานได้อย่างถูกต้องโดยใช้ Xubuntu) หลังจากทำตามคำแนะนำนี้ฉันพบว่าอย่างใดใน software-properties-gtk กล่องสำหรับ repos 'main' ไม่ได้ถูกตรวจสอบ! แก้ไขปัญหา!
memilanuk

1
บางครั้งคุณมีแพ็คเกจที่ใช้งานไม่ได้จริง ๆ ... ดังนั้นสิ่งที่ดีที่สุดคือเก็บไว้และลบทิ้ง ดูaskubuntu.com/a/363244/16395
Rmano

3
ไม่มีใครตอบวิธีติดตั้งแพ็กเกจเหล่านั้นด้วยเวอร์ชันที่ไม่พึ่งพา พระเจ้า! ฉันแค่ต้องการบังคับให้ติดตั้งแพคเกจเวอร์ชันเก่ากว่า
นาวิกโยธิน

3
สิ่งนี้ไม่ได้ผลสำหรับฉัน: S
AlvaroAV

87

หมายเหตุ: คำสั่งทั้งหมดที่ขอให้เรียกใช้ต้องทำงานในเทอร์มินัลซึ่งสามารถเปิดได้โดยCtrl+ Alt+ Tหรือค้นหาเทอร์มินัลในเส้นประ

มันแตกจริงเหรอ?

ลองเรียกใช้คำสั่งต่อไปนี้แล้วลองติดตั้งซอฟต์แวร์ที่คุณพยายามติดตั้งใหม่อีกครั้ง

sudo apt-get update

ขั้นตอนก่อนการน้ำหอม

สำรอง

สำรองข้อมูลไฟล์ต่อไปนี้:

  • /etc/apt/sources.list
  • /var/lib/dpkg/status

โดยใช้คำสั่งเหล่านี้

sudo cp /etc/apt/sources.list /etc/apt/sources.list.original

และ

sudo cp /var/lib/dpkg/status /var/lib/dpkg/status.original

การล้าง apt-cache ของคุณ

aptเก็บแคชของแพ็คเกจที่ดาวน์โหลดล่าสุดเพื่อประหยัดแบนด์วิดท์เมื่อจำเป็นต้องติดตั้ง นี่อาจเป็นประโยชน์ในบางกรณี

ตอนนี้เพื่อทำความสะอาดคุณมีสองตัวเลือก

sudo apt-get clean 

การดำเนินการนี้จะลบแพคเกจแคชทั้งหมดที่อยู่ในโฟลเดอร์/var/cache/apt/archives/และ/var/cache/apt/archives/partialยกเว้นไฟล์ .lock ขอแนะนำ

sudo apt-get autoclean

วิธีนี้จะสแกนโฟลเดอร์/var/cache/apt/archives/และ/var/cache/apt/archives/partialตรวจสอบว่าแพคเกจยังคงอยู่ในที่เก็บและลบรายการที่ไม่ได้อยู่หรือไม่


แก้ไขการอ้างอิง

ใช้โหมด fix-broken ของ apt

sudo apt-get -f install

สิ่งนี้จะทำให้ฉลาดในการสแกนหาการขึ้นต่อกันที่ขาดหายไป

หากเอาต์พุตระบุว่าไม่มีการติดตั้งหรืออัพเกรดใหม่แสดงว่าล้มเหลว


ตรวจสอบว่ามีการเปิดใช้งานแหล่งที่มาที่จำเป็นทั้งหมดหรือไม่

พิมพ์gksu software-properties-gtkแล้วคุณจะได้หน้าต่างนี้

ตรวจสอบให้แน่ใจว่าเปิดใช้งานแหล่งที่มาทั้งหมด

จากนั้นไปที่แท็บซอฟต์แวร์อื่นและตรวจสอบว่ามี PPA ที่จำเป็นสำหรับซอฟต์แวร์ที่จะติดตั้งหรือไม่และเปิดใช้งานอยู่ และลองปิดการใช้งาน PPA บางอย่างซึ่งอาจมีแพ็คเกจที่ใช้งานไม่ได้

ตอนนี้ทำงาน sudo apt-get update

ลองติดตั้งซอฟต์แวร์ทันที

การเลือกเซิร์ฟเวอร์ที่ดีกว่าให้ดาวน์โหลด

พิมพ์gksu software-properties-gtkแล้วคุณจะได้หน้าต่างนี้

คลิกที่ดาวน์โหลดจากกล่องแบบเลื่อนลงและเลือกอื่น ๆ

คลิกเลือกเซิร์ฟเวอร์ที่ดีที่สุด

วิ่ง sudo apt-get update

ลองติดตั้งซอฟต์แวร์

ลองใช้ดู sudo apt-get install -f


PPA Purge

นี่เป็นเครื่องมือที่ใช้ในการกำจัด ppa ที่เสียหาย / ไม่พึงประสงค์และแอปพลิเคชันของพวกเขาพร้อมกับมัน

หากต้องการติดตั้งให้เรียกใช้

sudo apt-get install ppa-purge

แต่การพิจารณาคำถามaptจะแตกดังนั้นคำสั่งด้านบนจะล้มเหลว ดังนั้นใช้คำสั่งนี้

mkdir ppa-purge && cd ppa-purge && wget http://mirror.pnl.gov/ubuntu/pool/universe/p/ppa-purge/ppa-purge_0.2.8+bzr56_all.deb && wget http://mirror.pnl.gov/ubuntu//pool/main/a/aptitude/aptitude_0.6.6-1ubuntu1_i386.deb && sudo dpkg -i ./*.deb

ตอนนี้ใช้ PPA ล้าง

sudo ppa-purge ppa:someppa/ppa  

ผู้จัดการ Y-PPA

Y-PPA Manager เป็นแอพ gui ที่ช่วยคุณจัดการ PPA และปัญหาต่าง ๆ ที่เกี่ยวข้องกับมัน

เพื่อทำการติดตั้ง

sudo add-apt-repository ppa:webupd8team/y-ppa-manager

และ

sudo apt-get update

และ

sudo apt-get install y-ppa-manager

เมื่อพิจารณาคำถามaptใช้งานไม่ได้ให้ใช้คำสั่งเหล่านี้แทน

sudo su

และ

32 บิต:

mkdir y-ppa-manager && cd y-ppa-manager && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/launchpad-getkeys_0.3.2-1~webupd8~oneiric_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/y-ppa-manager_0.0.8.6-1~webupd8~precise_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/yad_0.17.1.1-1~webupd8~precise_i386.deb && dpkg -i ./*.deb

64 บิต:

mkdir y-ppa-manager && cd y-ppa-manager && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/launchpad-getkeys_0.3.2-1~webupd8~oneiric_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/y-ppa-manager_0.0.8.6-1~webupd8~precise_all.deb && wget https://launchpad.net/~webupd8team/+archive/y-ppa-manager/+files/yad_0.17.1.1-1~webupd8~precise_amd64.deb && dpkg -i ./*.deb

ตอนนี้พิมพ์ y-ppa-manager

คุณจะเห็นหน้าต่างนี้

ดับเบิลคลิกที่ขั้นสูงแล้วคุณจะได้หน้าต่างนี้

ทำภารกิจต่อไปนี้โดยสรุปเป็นสีดำ


การป้องกันดีกว่ารักษา

เป็นการป้องกันที่ดีกว่าการค้นหาคำถามนี้ใน AskUbuntu: D

ดังนั้นนี่คือแนวทางที่จะทำให้คุณปลอดภัย

ปรับปรุงระบบของคุณให้ทันสมัย

รันคำสั่งต่อไปนี้เป็นประจำเสมอ

sudo apt-get update&&sudo apt-get upgrade

หรือคุณสามารถใช้ Update Manager ด้วยคำสั่งนี้ได้ตลอดเวลา

gksu update-manager

ใช้ PPA ที่เชื่อถือได้เท่านั้น

ใช้ PPA ที่ตั้งใจจะใช้กับ Ubuntu เท่านั้นและใช้ PPA กับแหล่งที่เชื่อถือได้เท่านั้น โดยปกติแพ็คเกจอาจอยู่ในที่เก็บอูบุนตูแล้ว

สำรองข้อมูลเมื่อสิ่งที่ดีและกู้คืนในภายหลัง

สำหรับสิ่งนี้คุณต้องมี Y-PPA-Manager ขั้นตอนในการติดตั้งจะได้รับด้านบน

รันคำสั่งนี้เพื่อเปิด Y-PPA-Manager

y-ppa-manager

คุณจะเห็นหน้าต่างนี้

ดับเบิลคลิกที่ขั้นสูงแล้วคุณจะได้หน้าต่างนี้

เรียกใช้สิ่งนี้:

คุณจะถูกขอให้บันทึกไฟล์ tar.gz ด้วยกล่องโต้ตอบที่คล้ายกับไฟล์ด้านล่าง บันทึกไว้ในพาร์ติชันอื่นหรือในที่ปลอดภัย

ในภายหลังเมื่อคุณต้องการกู้คืนอีกครั้งให้ทำตามขั้นตอนที่คล้ายกันและเมื่อคุณได้รับกล่องโต้ตอบขั้นสูงคลิกที่นี่:

คุณจะถูกขอให้กู้คืนจากข้อมูลสำรองก่อนหน้าซึ่งคุณบันทึกไว้ก่อนหน้านี้ด้วยข้อความโต้ตอบที่คล้ายกับข้อความด้านล่าง


ยังไม่ทำงานใช่ไหม

ข้อผิดพลาดในการขึ้นต่อกันของแพคเกจไม่ได้เป็นเรื่องทั่วไปเสมอไปและขึ้นอยู่กับแพ็คเกจที่จะติดตั้ง

หากทำตามขั้นตอนทั้งหมดที่ให้ไว้เพื่อแก้ไขข้อผิดพลาดไม่ได้ผลสำหรับคุณคุณสามารถถามได้ที่Ask Ubuntu ทุกครั้ง

นี่คือคำสั่งบางส่วนที่คุณต้องการโพสต์ผลลัพธ์

sudo apt-get install packagename

และ

cat /etc/apt/sources.list

และ

cat /etc/apt/sources.list.d/*

(ขอบคุณBasharat Sial )

นอกจากนี้ยังมีไฟล์ / คำสั่งอื่น ๆ ที่คุณต้องการผลลัพธ์ที่อาจเป็นข้อผิดพลาดเฉพาะและผู้ใช้จะแจ้งให้คุณในความคิดเห็นเพื่อโพสต์ไฟล์ / คำสั่ง


ฉันจะใส่apt-get updateใกล้ด้านบนของรายการ บางครั้งระบบของคุณทำการอัปเดตโดยที่แพ็คเกจใหม่ที่ได้รับการอัปเดตจากระยะไกล แต่แพคเกจใหม่นั้นขึ้นอยู่กับการสร้างยังไม่เสร็จ หรือเวอร์ชันที่คุณมีในแคชในเครื่องของคุณได้รับการอัปเดตแล้ว ในกรณีดังกล่าวapt-get updateจะมีการอัพเดตแคชในเครื่องของคุณและคุณสามารถดำเนินการต่อ
Hamish Downer

1
คำตอบที่ดีที่สุด! มันทำให้ฉันอยากฉลาดและหรือ dpkg มีการป้องกันที่ดีขึ้นเพื่อให้แน่ใจว่าพวกเขาไม่ได้เข้าสู่สถานะที่ไม่สมบูรณ์เหล่านี้หรือแก้ไขปัญหาได้ดีกว่า ฉันเคยมีปัญหานี้มาก่อนและค่อนข้างผิดหวังเมื่อapt-get install -fไม่ได้แก้ไข
Jeff Welling

คุณอาจต้องการรวมคำเตือนนี้: "ไม่เคยอัพเกรดระบบของคุณในขณะที่เปิดใช้งาน PPA ปิดการใช้งานพวกเขาก่อนแล้วจึงอัพเกรด" เพราะถ้าคุณอัพเกรดเป็นเวอร์ชั่น PPA แล้ว PPA นั้นจะกลายเป็นตายในที่สุดก็หมายความว่าคุณตาย . คุณไม่สามารถปรับลดรุ่นระบบทั้งหมดเป็นหมายเลขรุ่นที่ต่ำกว่าและไม่สามารถติดตั้งบางอย่างจาก repo มาตรฐานทำให้แพคเกจจาก std repo มีข้อขัดแย้งกับแพคเกจ PPA ที่ติดตั้ง
อันวาร์

2
เลือกเซิร์ฟเวอร์ที่ดีกว่าแก้ไขให้ฉัน ขอขอบคุณ!
Hoang Huynh

ฉันคิดว่า-fธงย่อมาจากแรงและหลีกเลี่ยงการใช้งานเสมอ
user907860

38

คำตอบเหล่านี้จะมุ่งเน้นไปที่วิธีการแก้ไขปัญหาดังกล่าวโดยอัตโนมัติโดยส่วนใหญ่หวังว่ามันจะแก้ปัญหาเอง แต่ไม่ได้มุ่งเน้นที่การทำความเข้าใจวิธีการตรวจสอบการพึ่งพา สิ่งสำคัญคือการลองทำสิ่งต่าง ๆ เช่นตรวจสอบให้แน่ใจว่ารายการแพคเกจของคุณเป็นรุ่นล่าสุดเพราะคุณจำเป็นต้องตรวจสอบให้แน่ใจว่าการอัปเดตหรือล้างแคชอย่างง่ายไม่สามารถแก้ไขปัญหาได้ก่อนที่จะขุดลึกลงไป หากทุกอย่างอยู่เบื้องหลังการทำงานอย่างที่ควรจะเป็นสิ่งสำคัญที่สุดคือการเรียนรู้วิธีการทำความเข้าใจการพึ่งพา บางครั้งการพึ่งพาของเลเยอร์อาจดูล้นหลาม แต่แนวคิดนั้นเรียบง่ายและเป็นกุญแจสำคัญในการทำความเข้าใจวิธีการติดตั้ง / ถอนการติดตั้งซอฟต์แวร์ในระบบ Ubuntu

ฉันขอแนะนำความถนัดให้กับทุกคนที่ใช้ระบบ. deb เช่น Ubuntu โครงสร้างต้นไม้ของมันช่วยให้คุณสามารถเรียกดูการอ้างอิงรวมถึงแพ็คเกจที่แนะนำและที่แนะนำรวมถึงภาพความขัดแย้งและการพึ่งพาแบบไม่คาดคิด มันเป็นเครื่องมือที่ทรงคุณค่าสำหรับเมื่อ apt-get ไม่ได้นำเสนอโซลูชันที่ง่ายและสำหรับการแสดงภาพการพึ่งพาโดยทั่วไป ( Synapticมีให้ใน Ubuntu แต่ฉันไม่คิดว่าใช้ง่าย)

ความถนัดยังมีตัวแก้ไขข้อขัดแย้งที่จะนำคุณไปสู่การรวมกันของแพคเกจติดตั้ง / ลบ / อัพเกรด / ฯลฯ ที่เป็นไปได้ทั้งหมดเพื่อตอบสนองความต้องการทั้งหมดโดยไม่มีข้อขัดแย้งหรือปัญหา สามารถประสบความสำเร็จได้แม้ว่าจะไม่สามารถหาวิธีแก้ปัญหาได้ ในฐานะผู้ใช้อูบุนตูสถานการณ์มักจะไม่เกิดขึ้นซึ่งคุณต้องตรวจสอบสาเหตุที่ติดตั้งแพคเกจนั้น แต่มันแทบจะหลีกเลี่ยงไม่ได้เมื่อคุณใช้ระบบมากกว่านี้


3
โหวตให้พูดถึงตัวแก้ไขความขัดแย้งของความถนัด มีบางครั้งที่จำเป็นต้องใช้เครื่องมือขั้นสูงเช่นนี้เพื่อกำหนดความเป็นไปได้และเพื่อระบุความขัดแย้งหลัก
John S Gruber

3
นี่อาจเป็นคำตอบที่ดีที่สุดในกระทู้นี้ สามารถปรับปรุงให้ดีขึ้นได้ด้วยตัวช่วยสอนการaptitudeแก้ปัญหาความขัดแย้ง
Luís de Sousa

2
ลิงค์นี้ในขณะที่มันไม่ได้อธิบายการพึ่งพาหรือแนวคิดทั่วไปของพวกเขาจะแสดงการสอนอย่างรวดเร็วของตัวจำแนกการโต้ตอบ: aptitude.alioth.debian.org/doc/en/ch02s03s03.html
overprescribed

1
+1 ความถนัดเพียงช่วยเบคอนของฉันเมื่อเผชิญกับความขัดแย้ง GTK3 apt-get ไม่มีความช่วยเหลือเลย
Chris Laplante

1
sudo aptitude --full-resolver my_packageสิ่งที่ผมชอบคือ ที่มักจะให้The following packages have unmet dependenciesและรายการที่7) <my_package> [Not Installed](7 เป็นเพียงตัวอย่าง) ในแต่ละขั้นตอนความถนัดนำเสนอทางเลือกใหม่ สิ่งที่ได้ผลสำหรับฉันคือการเลือกก่อน7จากนั้นr 7(ซึ่งตรงกับคำอธิบายRejecting the removal of my_package) และจากนั้นn (สำหรับไม่) เป็นตัวเลือกก่อนหน้านั้นไม่ใช่สิ่งที่ฉันต้องการ: แต่ หลังจาก ตัวเลือกใหม่นั้นมีการลดระดับแพ็คเกจพร้อมติดตั้ง my_package; ดังนั้นล่าสุดY(สำหรับ YES)

24

package1: ขึ้นอยู่กับ: package2 (> = 1.8) แต่ต้องติดตั้ง 1.7.5-1ubuntu1

คำอธิบายของข้อความ:

  1. เพื่อให้การติดตั้งของคุณเสร็จสมบูรณ์ package1 ต้องการ package2
  2. package2 จะต้องมีในเวอร์ชั่น> = 1.8
  3. ผู้จัดการแพ็คเกจตรวจสอบที่เก็บทั้งหมดและพบเฉพาะรุ่น 1.7.5-1ubuntu1 ที่สามารถติดตั้งได้ซึ่งมันจะไม่ทำเพราะมันคือ <1.8

แก้ไขปัญหา

ไม่มีคำตอบเดียวที่ถูกต้องสำหรับคำถามนี้และไม่มีคำตอบง่ายๆ

มีหลายสถานการณ์ว่าทำไมสิ่งนี้ถึงเกิดขึ้นได้และเราต้องตรวจสอบตัวเลือกทั้งหมดและพยายามแก้ไขเงื่อนไขที่ทำให้เกิดข้อผิดพลาดนี้

สถานการณ์ A:

ที่เก็บทั้งหมดที่คุณมีสิทธิ์เข้าถึงไม่มี package2 ในเวอร์ชัน> = 1.8 ดังนั้นคุณจะต้องค้นหาที่เก็บที่ใช้ หากคุณไม่สามารถค้นหาที่เก็บที่มีเวอร์ชัน> = 1.8 คุณอาจต้องสร้างและติดตั้ง package2 จากซอร์ส จากนั้นลองติดตั้งแพ็คเกจ 1

หากคุณต้องการทราบวิธีการสร้างแพ็คเกจจากต้นทางตรวจสอบคำถาม / คำตอบอื่น ๆ หรือโพสต์แพ็คเกจใหม่

สถานการณ์ B:

ที่เก็บมีแพ็กเกจ 2 ในเวอร์ชัน> = 1.8 แต่ผู้จัดการแพ็กเกจยังคงต้องการติดตั้งเวอร์ชันเก่ากว่า (1.7.5)

เหตุผลนี้อาจเป็นเพราะรุ่นที่ใหม่กว่าของ package2 ที่สร้างขึ้นโดยเทคโนโลยีใหม่บางอย่างที่ไม่ได้รับการสนับสนุนโดยแพคเกจอื่น ๆ ที่คุณติดตั้งไว้แล้ว

สิ่งนี้อาจไม่สามารถแก้ไขได้ทั้งหมด คุณสามารถลองใช้ apt หรือ synaptic และค้นหา package2 ทุกรุ่นที่มีอยู่ใน repositories และลองติดตั้ง version เฉพาะ> = 1.8

หากคุณมีแพ็คเกจที่เข้ากันไม่ได้อื่น ๆ และคุณทำเช่นนี้คุณจะได้รับรายการข้อความแสดงข้อผิดพลาดที่คล้ายกันสำหรับแพ็คเกจอื่น ๆ ทั้งหมดที่ป้องกันการติดตั้ง package2> = 1.8

ในกรณีนี้คุณมีปัญหาใหญ่กว่า คุณต้องการติดตั้ง package1 ซึ่งต้องการ package2 เป็น> = 1.8 แต่ package2 ในเวอร์ชัน> = 1.8 ต้องการ package3 ให้เป็นรุ่น> = 6.7 และคุณมี package3 เวอร์ชัน 6.3

สิ่งคือผู้จัดการแพคเกจ (APT) พยายามที่จะแก้ปัญหาการพึ่งพาเหล่านี้โดยอัตโนมัติหากเป็นไปได้ เมื่อมันบอกว่ามันเป็นไปไม่ได้ (และออกข้อความเหมือนในคำถาม) คุณควรเชื่อถือมัน

หากคุณตัดสินใจที่จะไม่ไว้วางใจตัวจัดการแพ็กเกจและถ้าคุณแน่ใจว่าคุณจะไม่มีปัญหาคุณสามารถลองติดตั้งแพ็คเกจทั้งหมดที่จำเป็นสำหรับแต่ละรุ่นได้ทีละตัวและหวังว่าจะใช้ได้

ระวังการทำเช่นนี้สำหรับแพ็คเกจระบบสามารถสร้างปัญหาร้ายแรงได้ คุณสามารถล็อคตัวเองออกจากระบบบล็อกบริการที่สำคัญอื่น ๆ

สถานการณ์ C:

ไม่ว่าสาเหตุของปัญหาจะเป็นอย่างไรคุณสามารถตั้งค่าสำหรับการรวบรวมด้วยตนเองและสร้างแพ็คเกจที่จำเป็นและการพึ่งพาทั้งหมดในเวอร์ชันที่ต้องการจากแหล่งที่มา ด้วยตัวเลือกนี้คุณสามารถเก็บสิ่งที่คุณสร้างไว้ในไดเรกทอรีแยกและออกจากเส้นทางของระบบเพื่อที่จะไม่สร้างความขัดแย้งกับระบบ นี่อาจเป็นวิธีที่สะอาดและบางครั้งก็สามารถทำได้เร็วกว่า

สถานการณ์ D:

ผู้จัดการแพคเกจสามารถเข้าถึงข้อมูลที่ล้าสมัยเกี่ยวกับแพ็คเกจและดังนั้นจึงไม่สามารถหาวิธีแก้ไขได้ ดูคำตอบอื่น ๆ

สถานการณ์ E:

ผู้จัดการแพ็คเกจมีข้อผิดพลาดในรหัสการแก้ปัญหาการพึ่งพา

คุณต้องตรวจสอบว่าเป็นกรณีนี้จริง ๆ แล้วออกคำขอบั๊ก

...

สถานการณ์ Z:

อาจมีสถานการณ์อื่น ๆ

ตัวอย่างเช่นผู้ดูแลแพคเกจอาจผิดและไม่ได้ตรวจสอบว่า package1 จะทำงานได้แม้กับ version ของ package2 <1.8 และในสเปคที่พวกเขาตั้งค่าการพึ่งพาที่ไม่ถูกต้อง


17

วิธีการเหล่านี้จะต้องมีการปฏิบัติตามเมื่อใดก็ตามที่คุณได้รับความผิดพลาดเกี่ยวกับ Unmet Dependencies

หลังจากทำตามคำแนะนำให้ลองติดตั้งซอฟต์แวร์ อย่างน้อยหนึ่งในวิธีการเหล่านี้ควรจะทำงานให้คุณ

1 . ก่อนที่จะลองคำสั่งใหม่หรือเพิ่ม ppa ใหม่ลองนี้

การล้างแคช apt:

sudo apt-get clean

ทำความสะอาดการอ้างอิงที่ไม่ได้ใช้:

sudo apt-get autoremove

การอัพเดต apt-cache

sudo apt-get update

วิธีนี้จะลบแคชทั้งหมดและจะดาวน์โหลดแคชใหม่ สิ่งนี้ควรทำเพื่อรับแพ็คเกจแคชใหม่และอัพเดตที่ใหม่กว่า

2 . ลองsudo apt-get install -fดู

มันอาจจะให้คำแนะนำบางอย่างเกี่ยวกับการลบและติดตั้งแพคเกจทำสิ่งที่ดูเหมือนว่าเหมาะสม

3 . เปลี่ยนDownload ServerจากSoftware Sourcesเนื่องจากบางครั้งไฟล์บนเซิร์ฟเวอร์เสียหาย

ป้อนคำอธิบายรูปภาพที่นี่
ป้อนคำอธิบายรูปภาพที่นี่
ป้อนคำอธิบายรูปภาพที่นี่

4 . สิ่งนี้จะเกิดขึ้นหากคุณก่อนเพิ่ม ppa ภายนอกสำหรับการพึ่งพาที่ไม่ทำงานลองเอา ppa นั้นด้วย

  • ทั้งพิมพ์sudo add-apt-repository --remove ppa:someppa/ppaแล้วลบไฟล์ / ไลบรารีที่ติดตั้ง ppa ด้วยตนเอง

หรือ

  • การกำจัด ppa (สิ่งนี้จะลบไฟล์ที่ติดตั้งไว้ด้วย)

    sudo apt-get install ppa-purge   #a one time install 
    sudo ppa-purge ppa:someppa/ppa  
    

5 . หากไม่มี 4 ไม่ใช่กรณีของคุณลองลบแพ็กเกจที่แสดงว่าเป็นการอ้างอิงที่ใช้งานไม่ได้จากนั้นลองติดตั้งอีกครั้งซึ่งมีรายงานว่ามีการใช้งานที่เหมาะสมสำหรับคนไม่กี่คน

6 . เพิ่ม repository / PPA เวอร์ชันเสถียรเสมอ

ป้อนคำอธิบายรูปภาพที่นี่

7ตรวจสอบให้แน่ใจว่าคุณเปิดใช้งานที่เก็บข้อมูลทั้งหมดอย่างเป็นทางการ (ในSoftware Sources)

ป้อนคำอธิบายรูปภาพที่นี่

กรุณาอย่าเปิดการใช้งานProposed Updatesตามที่มีไว้สำหรับการทดสอบ / นักพัฒนา

ป้อนคำอธิบายรูปภาพที่นี่


ตามที่บอกโดย doug:

โดยปกติขั้นตอนที่ 1 ที่ดีที่สุดเพื่อแก้ไขปัญหานี้คือการระบุแหล่งที่มาของงาน<pkg1><pkg2>

นอกจากนี้ยังไม่ได้สังเกตคือในหลายกรณีหากไม่ใช่ส่วนใหญ่จะต้องติดตั้ง "<สิ่งใด>" จริงๆหมายถึง "<สิ่งใดก็ตาม> ติดตั้ง" และควรพยายามลบออกหากไม่มีสิ่งใดทำงาน (เหมือนในจุดที่ 5)


ฉันจะเพิ่มสิ่งอื่น ๆ อีกมากที่ไม่สามารถแก้ไขunmet dependenciesได้


3
@Ashu สิ่งหนึ่งที่คุณอาจต้องการที่จะ fix-- apt-get updateไม่ได้อัปเดตแคชฉลาด (ซึ่งประกอบด้วยการดาวน์โหลด.debไฟล์และแฟ้มที่เก็บข้อมูลเกี่ยวกับที่.debไฟล์ที่คุณเก็บไว้) มันอัพเดตไฟล์ดัชนีแพ็คเกจ (ซึ่งประกอบด้วยข้อมูลเกี่ยวกับแพคเกจที่พร้อมให้ดาวน์โหลดและติดตั้งจากแหล่งซอฟต์แวร์ที่มีอยู่แต่ละแหล่ง) อย่างที่ฉันบอกไปก่อนหน้านี้apt-get cleanไม่ได้ล้างสิ่งเดียวกับที่apt-get updateอัปเดต ดูman apt-getรายละเอียดที่
Eliah Kagan

16

สำหรับกรณีส่วนใหญ่การติดตั้งแพคเกจผ่านaptitudeจะช่วยแก้ปัญหาการพึ่งพาaptitudeไม่ได้แพคเกจเริ่มต้นไม่ได้ติดตั้งบนพีซีของคุณดังนั้นก่อนติดตั้งโดยการเรียกใช้

sudo apt-get update
sudo apt-get install aptitude

แล้ว

sudo aptitude install packagename

ตัวอย่างเช่น,

    
avinash @ avinash-Lenovo-IdeaPad-Z500: ~ $ sudo apt-get install ubuntu-sdk
กำลังอ่านรายการแพ็กเกจ ... เสร็จแล้ว
อาคารต้นไม้พึ่งพา       
กำลังอ่านข้อมูลสถานะ ... เสร็จแล้ว
ไม่สามารถติดตั้งแพคเกจบางอย่าง นี่อาจหมายความว่าคุณมี
ขอสถานการณ์ที่เป็นไปไม่ได้หรือหากคุณกำลังใช้สถานการณ์ที่ไม่มั่นคง
การกระจายที่บางแพคเกจที่จำเป็นยังไม่ได้ถูกสร้างขึ้น
หรือถูกย้ายออกจาก Incoming
ข้อมูลต่อไปนี้อาจช่วยในการแก้ไขสถานการณ์:

แพ็คเกจต่อไปนี้มีการขึ้นต่อกันที่ไม่คาดคิด:
 ubuntu-sdk: ขึ้นอยู่กับ: qtcreator-plugin-ubuntu แต่จะไม่ได้รับการติดตั้ง
E: ไม่สามารถแก้ไขปัญหาได้คุณมีแพ็คเกจที่เสียหาย

ติดตั้งแพ็คเกจผ่าน aptitude

avinash @ avinash-Lenovo-IdeaPad-Z500: ~ $ sudo aptitude ติดตั้ง ubuntu-sdk
แพ็คเกจใหม่ต่อไปนี้จะได้รับการติดตั้ง:
  apparmor-easyprof {a} apparmor-easyprof-ubuntu {a} ที่ {a} build-essential {a} 
  คลิก {a} click-apparmor {a} click-dev {a} click-doc {a} cordova-ubuntu-2.8 
  Cordova-ubuntu-2.8- ตัวอย่าง {a} debhelper {a} devscripts {a} dh-apparmor {a} 
  dh-make {a} distro-info-data {a} dpkg-dev {a} dput {a} g ++ {a} g ++ - 4.8 {a} 
  geoclue-gypsy {a} libalgorithm-diff-perl {a} libalgorithm-diff-xs-perl {a} 
  libalgorithm-merge-perl {a} libboost-filesystem1.53.0 {a} 
  libboost-program-options1.53.0 {a} libboost-regex1.53.0 {a} 
  libbotan-1.10-0 {a} libdee-qt5-3 {a} libdistro-info-perl {a} 
  libexporter-lite-perl {a} libglib2.0-dev {a} 
  libgstreamer-plugins-base1.0-dev {a} libgstreamer1.0-dev {a} libgypsy0 {a} 
  libhud2 {a} libio-stringy-perl {a} libjs-jquery {a} libjs-sphinxdoc {a} 
  libjs-underscore {a} liblockdev1 {a} libmail-sendmail-perl {a} 
  libparse-debcontrol-perl {a} libpcre3-dev {a} libpcrecpp0 {a} 
  libpoppler-qt5-1 {a} libqdjango-db0 {a} libqgsttools-p1 {a} 
  libqt5clucene5 {a} libqt5contacts5 {a} libqt5declarative5 {a} 
  libqt5designer5 {a} libqt5designercomponents5 {a} libqt5feedback5 {a} 
  libqt5help5 {a} libqt5location5-plugins {a} libqt5multimedia5 {a} 
  libqt5multimedia5-plugins libqt5multimediaquick-p5 {a} 
  libqt5multimediawidgets5 {a} libqt5organizer5 {a} 
  libqt5qml-graphicaleffects {a} libqt5script5 libqt5scripttools5 {a} 
  libqt5svg5 {a} libqt5svg5-dev libqt5systeminfo5 {a} libqt5svg5-dev 
  libqt5versit5 {a} libqt5versitorganizer5 {a} libqt5webkit5-dev 
  libqt5webkit5-qmlwebkitplugin {a} libqt5wemlkitatugs5 {a} 
  libqt5xmlpatterns5-dev libstdc ++ - 4.8-dev {a} libsys-hostname-long-perl {a} 
  libthumbnailer0 {a} libu1db-qt5-3 {a} libunity-action-qt1 {a} 
  libupstart-app-launch1 {a} libusermetricsinput1 {a} libxml2-dev {a} 
  libxslt1-dev {a} po-debconf {a} python3-apparmor-click {a} python3-click {a} 
  python3-magic {a} qmlscene qt3d5-dev qtbase5-doc {a} qtcreator {a} 
  qtcreator-doc {a} qtcreator-plugin-ubuntu {a} 
  qtcreator-plugin-ubuntu-common {a} qtdeclarative5-accounts-plugin 
  qtdeclarative5-cordova-2.8-plugin {a} qtdeclarative5-dev-tools 
  qtdeclarative5-doc-html {a} qtdeclarative5-folderlistmodel-plugin 
  qtdeclarative5-friends0.2 qtdeclarative5-localstorage-plugin 
  qtdeclarative5-particles-plugin qtdeclarative5-poppler1.0 
  qtdeclarative5-qtaudioengine-plugin qtdeclarative5-qtfeedback-plugin {a} 
  qtdeclarative5-qtlocation-plugin qtdeclarative5-qtmultimedia-plugin {a} 
  qtdeclarative5-qtorganizer-plugin qtdeclarative5-qtquick2-plugin {a} 
  qtdeclarative5-qtsensors-plugin qtdeclarative5-u1db1.0 
  qtdeclarative5-อูบุนตู-UI-แถมเบราว์เซอร์ปลั๊กอิน {a} 
  qtdeclarative5-อูบุนตู-UI-แถมเบราว์เซอร์ปลั๊กอินสินทรัพย์ {a} 
  qtdeclarative5-Ubuntu-UI-เครื่องมือปลั๊กอิน {a} 
  qtdeclarative5-unity-action-plugin {a} qtdeclarative5-usermetrics0.1 
  qtdeclarative5-window-plugin {a} qtdeclarative5-xmllistmodel-plugin 
  qtgraphicaleffects5-doc {a} qtlocation5-dev {a} qtmultimedia5-dev 
  qtmultimedia5-doc {a} qtmultimedia5-doc-html {a} qtscript5-dev 
  qtscript5-doc {a} qtscript5-doc-html {a} qtsensors5-dev {a} qtsvg5-doc {a} 
  qtsvg5-doc-html {a} qttools5-dev qttools5-dev-tools qttools5-doc {a} 
  qtwebkit5-doc-html {a} schroot {a} schroot-common {a} sqlite3 {a} 
  ubuntu-html5-container ubuntu-html5-sdk {ab} ubuntu-html5-theme {a} 
  ubuntu-html5-theme-samples ubuntu-sdk ubuntu-sdk-libs 
  ubuntu-sdk-libs-dev {a} ubuntu-ui-toolkit-doc {a} 
  ubuntu-ui-toolkit-samples {a} ubuntu-ui-toolkit-theme {a} 
  unity-action-doc {a} upstart-app-launch {a} upstart-app-launch-tools {a} 
  usermetricsservice {a} wdiff {a} zlib1g-dev {a} 
แพ็คเกจต่อไปนี้จะได้รับการอัพเกรด:
  cpp-4.8 gcc-4.8 gcc-4.8-base hud libasan0 libatomic1 libgcc-4.8-dev 
  libgcc1 libglib2.0-0 libglib2.0-bin libgomp1 libitm1 libquadmath0 
  libstdc ++ 6 libtsan0 
อัปเกรด 15 แพ็คเกจ, ติดตั้งใหม่ 151, ลบ 0 และไม่อัพเกรด 293
ต้องได้รับคลังจดหมาย 108 MB / 126 MB หลังจากแกะกล่องออกจะใช้งาน 273 MB
แพ็คเกจต่อไปนี้มีการขึ้นต่อกันที่ไม่คาดคิด:
 ubuntu-html5-sdk: ขึ้นอยู่กับ: qtdeclarative5-ubuntu-webapps-api ซึ่งเป็นแพ็คเกจเสมือน
                    ขึ้นอยู่กับ: ubuntu-html5-ui-toolkit แต่จะไม่ถูกติดตั้ง
การกระทำต่อไปนี้จะแก้ไขการพึ่งพาเหล่านี้:

     เก็บแพ็คเกจต่อไปนี้เป็นเวอร์ชั่นปัจจุบัน:              
1) qtcreator-plugin-ubuntu [ไม่ได้ติดตั้ง]                          
2) ubuntu-html5-sdk [ไม่ได้ติดตั้ง]                                 
3) ubuntu-sdk [ไม่ได้ติดตั้ง]                                       

     ปล่อยให้การอ้างอิงต่อไปนี้ไม่ได้รับการแก้ไข:                       
4) libhud-client2 แนะนำฮัด (= 13.10.1 + 13.10.20131014-0ubuntu1)
5) qtcreator-plugin-ubuntu-common แนะนำให้ qtcreator-plugin-ubuntu


ยอมรับโซลูชันนี้หรือไม่ [Y / n / q /?] y
แพ็คเกจใหม่ต่อไปนี้จะได้รับการติดตั้ง:
  apparmor-easyprof {a} apparmor-easyprof-ubuntu {a} โครงสร้างที่จำเป็น {a} 
  คลิก {a} click-apparmor {a} debhelper Cordova-ubuntu-2.8 {a} dh-apparmor {a} 
  dh-make {a} dpkg-dev {a} g ++ {a} g ++ - 4.8 {a} geoclue-gypsy {a} 
  libalgorithm-diff-perl {a} libalgorithm-diff-xs-perl {a} 
  libalgorithm-merge-perl {a} libdee-qt5-3 {a} libglib2.0-dev {a} 
  libgstreamer-plugins-base1.0-dev {a} libgstreamer1.0-dev {a} libgypsy0 {a} 
  libhud2 {a} libjs-jquery {a} libmail-sendmail-perl {a} libpcre3-dev {a} 
  libpcrecpp0 {a} libpoppler-qt5-1 {a} libqdjango-db0 {a} libqgsttools-p1 {a} 
  libqt5clucene5 {a} libqt5contacts5 {a} libqt5designer5 {a} 
  libqt5designercomponents5 {a} libqt5feedback5 {a} libqt5help5 {a} 
  libqt5location5-plugins {a} libqt5multimedia5 {a} libqt5multimedia5-plugins 
  libqt5multimediaquick-p5 {a} libqt5multimediawidgets5 {a} 
  libqt5organizer5 {a} libqt5qml-graphicaleffects {a} libqt5script5 
  libqt5scripttools5 {a} libqt5svg5 {a} libqt5svg5-dev libqt5systeminfo5 {a} 
  libqt5v8-5-dev libqt5versit5 {a} libqt5versitorganizer5 {a} 
  libqt5webkit5-dev libqt5webkit5-qmlwebkitplugin {a} libqt5xmlpatterns5 {a} 
  libqt5xmlpatterns5-dev libstdc ++ - 4.8-dev {a} libsys-hostname-long-perl {a} 
  libthumbnailer0 {a} libu1db-qt5-3 {a} libunity-action-qt1 {a} 
  libupstart-app-launch1 {a} libusermetricsinput1 {a} libxml2-dev {a} 
  libxslt1-dev {a} po-debconf {a} python3-apparmor-click {a} python3-click {a} 
  qmlscene qt3d5-dev qtdeclarative5-accounts-plugin 
  qtdeclarative5-cordova-2.8-plugin {a} qtdeclarative5-dev-tools 
  qtdeclarative5-folderlistmodel-plugin qtdeclarative5-friends0.2 
  qtdeclarative5-localstorage-plugin qtdeclarative5-particles-plugin 
  qtdeclarative5-poppler1.0 qtdeclarative5-qtaudioengine-plugin 
  qtdeclarative5-qtfeedback-plugin {a} qtdeclarative5-qtlocation-plugin 
  qtdeclarative5-qtmultimedia-plugin {a} qtdeclarative5-qtorganizer-plugin 
  qtdeclarative5-qtquick2-plugin {a} qtdeclarative5-qtsensors-plugin 
  qtdeclarative5-u1db1.0 qtdeclarative5-ubuntu-ui-extras-browser-plugin {a} 
  qtdeclarative5-อูบุนตู-UI-แถมเบราว์เซอร์ปลั๊กอินสินทรัพย์ {a} 
  qtdeclarative5-Ubuntu-UI-เครื่องมือปลั๊กอิน {a} 
  qtdeclarative5-unity-action-plugin {a} qtdeclarative5-usermetrics0.1 
  qtdeclarative5-window-plugin {a} qtdeclarative5-xmllistmodel-plugin 
  qtlocation5-dev {a} qtmultimedia5-dev qtscript5-dev qtsensors5-dev {a} 
  qttools5-dev qttools5-dev-tools sqlite3 {a} ubuntu-html5-container 
  ubuntu-html5-theme {a} ubuntu-html5-theme-samples ubuntu-sdk-libs 
  ubuntu-ui-toolkit-theme {a} upstart-app-launch {a} 
  upstart-app-launch-tools {a} usermetricsservice {a} wdiff {a} zlib1g-dev {a} 
แพ็คเกจต่อไปนี้จะได้รับการอัพเกรด:
  cpp-4.8 gcc-4.8 gcc-4.8-base hud libasan0 libatomic1 libgcc-4.8-dev 
  libgcc1 libglib2.0-0 libglib2.0-bin libgomp1 libitm1 libquadmath0 
  libstdc ++ 6 libtsan0 
อัปเกรด 15 แพ็คเกจ, ติดตั้งใหม่ 108, ลบ 0 และไม่อัพเกรด 293
ต้องได้รับคลังเอกสาร 27.1 MB / 45.8 MB หลังจากเอาออก 104 MB จะถูกนำมาใช้
คุณต้องการทำต่อไปหรือไม่? [Y / n /?]

ตัวอย่างของคุณเพิ่งมีการหยุดการติดตั้งความสามารถ มันไม่ได้ติดตั้งอะไรเลย
kiri

2
@AvinashRaj, .. แต่ก่อนการติดตั้งaptitudeไม่ควรแก้ไขปัญหาการอ้างอิงได้หรือไม่
แม่นยำ

ใช่ในกรณีส่วนใหญ่จะแก้ไขการอ้างอิง
Avinash Raj

2
ฉันหมายความว่าหากระบบมีแพ็คเกจที่ใช้งานไม่ได้จะไม่อนุญาตให้ทำการติดตั้งใหม่จนกว่าจะได้รับการแก้ไข .. ดังนั้นคุณจะติดตั้งอย่างไรaptitudeโดยไม่ต้องแก้ไขปัญหาก่อน!
แม่นยำ

ในกรณีแรกเราต้องแก้ไขแพ็กเกจที่เสียหายมิฉะนั้นคุณจะไม่สามารถติดตั้งได้aptitudeหากไม่มีข้อผิดพลาดเกิดขึ้นเนื่องจากแพ็กเกจที่ใช้งานไม่ได้คุณสามารถติดตั้งความถนัดได้
Avinash Raj

11

คำตอบของฉันคล้ายกับของ rick ข้างต้น

การใช้apt-get clean, apt-get autoclean, apt-get autoremove, apt-get upgrade, apt-get update, apt-get -u dist-upgradeฯลฯ ทั้งหมดไม่ทำงานสำหรับฉัน

ในที่สุดฉันก็แก้ไขปัญหานี้ได้โดยลงไปที่แผนผังการพึ่งพาผ่านapt-get installซึ่งมีตัวอย่างด้านล่าง ในกรณีของฉันฉันต้องการติดตั้งlibmagickwand-dev:

apt-get install libmagickwand-dev

ฉันได้รับข้อผิดพลาดนี้:

The following packages have unmet dependencies:
 libmagickwand-dev : Depends: libmagickcore4-extra (= 8:6.6.9.7-5ubuntu3.2) but it is not going to be installed
                     Depends: libmagickcore-dev (= 8:6.6.9.7-5ubuntu3.2) but it is not going to be installed

ดังนั้นฉันวิ่งไปapt-get installหนึ่งในการพึ่งพาที่ล้มเหลว:

apt-get install libmagickcore-dev

The following packages have unmet dependencies:
 libmagickcore-dev : Depends: libmagickcore4-extra (= 8:6.6.9.7-5ubuntu3.2) but it is not going to be installed
                     Depends: libgraphviz-dev but it is not going to be installed

ฉันสืบเชื้อสายมาจากต้นไม้:

apt-get install libgraphviz-dev

ด้วยข้อผิดพลาดอื่น:

The following packages have unmet dependencies:
 libgraphviz-dev : Depends: libgvc5 (= 2.26.3-10ubuntu1) but it is not going to be installed

ลึกลงไปบนต้นไม้อีกครั้ง:

apt-get install libgvc5

ก่อนหน้าด้วยเหตุผลแปลก ๆ สิ่งนี้ประสบความสำเร็จและฉันสามารถติดตั้งแพ็คเกจเดิมที่ฉันต้องการด้วย apt-get install libmagickwand-dev:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  libcdt4 libgd2-xpm libgraph4 libpathplan4
Suggested packages:
  libgd-tools
The following NEW packages will be installed:
  libcdt4 libgd2-xpm libgraph4 libgvc5 libpathplan4
0 upgraded, 5 newly installed, 0 to remove and 2 not upgraded.
Need to get 808 kB of archives.
After this operation, 2,320 kB of additional disk space will be used.
Do you want to continue [Y/n]?

8

คำตอบที่ยอดเยี่ยม! แต่วันนี้คดีของฉันแตกต่างจากของคุณ นี่คือคำแนะนำของฉัน

ปัญหา:

ฉันไม่สามารถติดตั้ง apache2 ใน ubuntu 10.10 ได้

rick@wen-VirtualBox:~$ sudo apt-get install apache2

Reading package lists... Done

Building dependency tree      

Reading state information... Done

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.

The following information may help to resolve the situation:

The following packages have unmet dependencies:

 apache2 : Depends: apache2-mpm-worker (= 2.2.16-1ubuntu3) but it is not going to be installed or

                    apache2-mpm-prefork (= 2.2.16-1ubuntu3) but it is not going to be installed or

                    apache2-mpm-event (= 2.2.16-1ubuntu3) but it is not going to be installed or

                    apache2-mpm-itk (= 2.2.16-1ubuntu3) but it is not going to be installed

           Depends: apache2.2-common (= 2.2.16-1ubuntu3) but it is not going to be installed

E: Broken packages

วิธีการแก้:

วิธีของฉันคือการเพิ่มแพ็คเกจที่ขึ้นอยู่กับรายการติดตั้ง

หาก 'sudo apt-get install apache2' ล้มเหลวให้ลอง ' sudo apt-get install apache2 apache2.2-common '

ดู? apache2.2-common มาจากบันทึกข้อผิดพลาดของขั้นตอนก่อนหน้า

ในที่สุดฉันก็พบว่ามีห่วงโซ่พึ่งพาเช่นนี้

 apache2.2-common <-- apache2.2-bin <-- libaprutil1-ldap <-- libaprutil1

สำหรับ 3 แพ็คเกจแรกนั้น apt-get log บอกฉันว่า 'จะไม่ถูกติดตั้ง'

แต่สำหรับแพ็คเกจล่าสุดมันแสดง 'libaprutil1-ldap: ขึ้นอยู่กับ: libaprutil1 (= 1.3.9 + dfsg-3build1) แต่ 1.3.9 + dfsg-3ubuntu0.10.10.1 ที่จะติดตั้ง'

ฉันมีเวอร์ชันอื่นอยู่ใน lib ดังนั้น:

sudo apt-get remove libaprutil1

sudo apt-get install apache2

ตอนนี้ก็โอเค.


การอ่านคำตอบนี้ร่วมกันและคำตอบอื่น ๆ ด้านบนนี้ให้ความเข้าใจที่ดีขึ้นเกี่ยวกับปัญหาการพึ่งพา เมื่อคำตอบอื่น ๆ ที่นี่ให้โซลูชัน 'ทั่วไปสูง' นี้ให้เข้าใจ
VenkiPhy6

7

ข้อผิดพลาดในการพึ่งพาของ unmet คืออะไร

บนแพ็คเกจของ Ubuntu เป็นวิธีหลักที่ซอฟต์แวร์สร้างติดตั้งและติดตั้ง ง่ายมากแพ็คเกจเป็นอีกทางเลือกหนึ่งสำหรับการดาวน์โหลดการสร้างและการติดตั้งซอฟต์แวร์ตั้งแต่เริ่มต้น พวกเขามีข้อได้เปรียบในแง่ของการติดตั้งการกำจัดการตรวจสอบและการจัดการการโต้ตอบระหว่างชิ้นส่วนของซอฟต์แวร์ในรูปแบบ "การสร้างจากแหล่งที่มา" มาตรฐาน Ubuntu ใช้ระบบบรรจุภัณฑ์แบบรวมศูนย์คือทุกแพ็คเกจขึ้นอยู่กับแพ็คเกจอื่น ๆ เมื่อเราติดตั้งแพคเกจการติดตั้งแบบพึ่งพาจะเกิดข้อผิดพลาดในการพึ่งพาแบบ unmet เกิดขึ้นเมื่อการพึ่งพาแพ็คเกจไม่พร้อมใช้งานสำหรับการติดตั้ง

สาเหตุที่เป็นไปได้

1.Computer is not connected to the Internet
2.The repository containing the depandancy package is not enabled
3.Package catalog is not updated
4.The version of the depandancy in the current repository is old
5.Software index is broken
6.The depandancy is not available for ubuntu

ลองแก้ไขปัญหากันดีกว่า

  1. เชื่อมต่อกับอินเทอร์เน็ต: D
  2. ตรวจสอบให้แน่ใจว่ามีการเปิดใช้ที่เก็บข้อมูลเริ่มต้นทั้งหมด

    -> คุณสามารถเพิ่มได้อย่างง่ายดายในSoftware Center-> Edit-> Software Sources-> Other Sources-> Add "

    -> Software Centerเริ่มต้น

    -> ในแผงไปและเลือกEditSoftware Sources

    แก้ไขซอฟแวร์แหล่งที่มา

    -> ตรวจสอบให้แน่ใจว่าได้ตรวจสอบที่เก็บทั้งหมดแล้ว ป้อนคำอธิบายรูปภาพที่นี่

  3. อัพเดตแคตตาล็อกซอฟต์แวร์

    คลิกที่ไอคอนด้านบนขวาและเลือกรายการอัพเดทที่มีในเมนู
    ป้อนคำอธิบายรูปภาพที่นี่

และกดปุ่มตรวจสอบ ป้อนคำอธิบายรูปภาพที่นี่

4.type ctrl+ alt+ tเพื่อเปิดเทอร์มินัลแล้วพิมพ์ sudo apt-get install -f

5. Purpa ppa ที่เพิ่งเพิ่มเข้ามาโดยใช้ ppa-purge ppa-purge ติดตั้ง ppa-purge

โปรแกรมนี้ปิดการใช้งาน PPA จากแหล่งซอฟแวร์ของคุณและเปลี่ยนระบบของคุณกลับไปเป็นแพคเกจ Ubuntu อย่างเป็นทางการ คุณสามารถใช้สิ่งนี้เพื่อกลับสู่ระบบของคุณเป็นปกติหลังจากการทดสอบเวอร์ชันใหม่จาก PPA

วากยสัมพันธ์

sudo ppa-purge ppa:<repository-name>/<subdirectory>

ตัวอย่าง

sudo ppa-purge ppa:ubuntu-mozilla-daily/ppa
  1. เปิดศูนย์ซอฟต์แวร์แล้วลองติดตั้งซอฟต์แวร์ใด ๆ หากกล่องโต้ตอบต่อไปนี้ปรากฏขึ้นให้กดที่ปุ่มซ่อมแซมแล้วรอ

ป้อนคำอธิบายรูปภาพที่นี่

ประเภทอื่นctrl + alt+ tเพื่อเปิดเทอร์มินัลแล้วพิมพ์sudo apt-get install -fและทำตามคำแนะนำบนหน้าจอ

หากข้อผิดพลาดยังคงเกิดขึ้นอย่าลังเลที่จะถามมันในaskbuntu


@jrg ฉันมีคำตอบแล้ว ... ทุกคำตอบจำเป็นต้องมีสิ่งเดียวกันหรือไม่?
Ashu

2
@Ashu ฉันพยายามช่วยคนให้ทำคำตอบที่ยอมรับได้ - และฉันต้องบอกทุกคนเนื่องจากมีค่าหัว 500 ตัวแทนที่เดิมพันและฉันไม่ต้องการเล่นรายการโปรดด้วยการช่วยเหลือบางคนด้วยคำตอบ แต่ไม่สนใจคนอื่น . : s
jrg

5

... อย่าลืม "build-dep"

นอกจากคำตอบข้างต้น - ฉันต้องยอมรับว่าฉันไม่แปลกใจเลยที่ไม่มีใครพูดถึงวิธีการนี้ซึ่งเป็นสิ่งที่ฉันใช้เป็น "กระสุนเงิน" เสมอเมื่อใดก็ตามที่ฉันพบว่ามีความขัดแย้งหรือไม่ได้รับการแก้ไขแพกเกจ หากระบบกำลังดื้อรั้น .... ฮา!)

แก้ไข: sudo dpkg -r [package]สนับสนุนการใช้เนื่องจากมีฟังก์ชั่นการลบที่ทรงพลังมาก ตั้งแต่apt-getทำงานควบคู่ไปกับdpkgซึ่งหมายความว่าapt-getจะเชื่อฟังdpkgฟังก์ชั่น

  sudo dpkg -r [package]
  sudo apt-get build-dep [package]  
  ## pre-install all deps for the package

คุณเรียก apt-get เพื่อกำจัดแพ็กเกจที่ล้มเหลวที่คุณพยายามติดตั้งในระบบและจากนั้นคุณเรียกคำสั่ง build-dep ซึ่ง apt-get จะคว้าและติดตั้งการขึ้นต่อกันของแต่ละแพ็กเกจนี้ดังนั้นวิธีที่พวกเขาจะพึงพอใจ แพคเกจก่อน จากนั้นเรียกการติดตั้ง apt-get:

sudo apt-get install [package]

....'ฮึ! ลองบิดแขนจนกว่าคุณจะตะโกนว่า "ลุง!"

เรื่องนี้ไม่ค่อยเกิดขึ้นในช่วงที่ใช้ลินุกซ์มาหลายปี แต่ฉันพบว่าตัวเองใช้วิธีนี้บ่อยและประสบความสำเร็จ mysql-client/mysql-serverนี่คือตัวอย่างสำหรับการต่อสู้ที่ผ่านมาผมมีก่อนหน้านี้ในเดือนที่ผ่านมากับแพคเกจ หลังจากโหลพยายามล้มเหลวในการรีเซ็ตรหัสผ่านรูทของฉันด้วย mysql-server (แม้จะผ่าน --skip-grant-tables techqiue แต่ก็ล้มเหลว) ในที่สุดฉันก็ประสบความสำเร็จในการ 'บิดแขนของ Linux จนกว่ามันจะตะโกนว่า "ลุง!

sudo dpkg -r mysql-server mysql-client
sudo apt-get autoclean  
## this dumps any copy of existing package to prevent apt-get from "re-using" it.
sudo apt-get build-dep mysql-client   
 ## one package at a time, starting with client first
sudo apt-get install mysql-client
sudo apt-get build-dep mysql-server
sudo apt-get install mysql-server

apt-get autoclean เป็นกุญแจสำคัญในการแก้ปัญหานี้


3

ระหว่างการติดตั้งแพ็คเกจ i386 ในระบบ Multiarch Ubuntu 64 บิต

หากคุณกำลังพยายามติดตั้งแพคเกจซึ่งขึ้นอยู่กับแพคเกจ i386 จำนวนมากข้อผิดพลาดในการอ้างอิงที่ระบุไว้ข้างต้นจะเกิดขึ้นเช่นกันหากคุณไม่สามารถเพิ่มสถาปัตยกรรม i386 โดยเรียกใช้sudo dpkg --add-architecure i386คำสั่ง

ตัวอย่าง:

avinash@avinash-Lenovo-IdeaPad-Z500:~$ sudo apt-get install skype
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 skype : Depends: skype-bin but it is not installable
E: Unable to correct problems, you have held broken packages.
avinash@avinash-Lenovo-IdeaPad-Z500:~$ sudo dpkg --add-architecture i386
avinash@avinash-Lenovo-IdeaPad-Z500:~$ sudo apt-get install skype
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  gcc-4.8-base:i386 gcc-4.9-base:i386 libasound2:i386 libasound2-plugins:i386
  libasyncns0:i386 libaudio2:i386 libavahi-client3:i386
  libavahi-common-data:i386 libavahi-common3:i386 libc6:i386
  libcgmanager0:i386 libcomerr2:i386 libcups2:i386 libdbus-1-3:i386
  libdbusmenu-qt2:i386 libdrm-intel1:i386 libdrm-nouveau2:i386
  libdrm-radeon1:i386 libdrm2:i386 libelf1:i386 libexpat1:i386 libffi6:i386
  libflac8:i386 libfontconfig1:i386 libfreetype6:i386 libgcc1:i386
  libgcrypt11:i386 libgl1-mesa-dri:i386 libgl1-mesa-glx:i386
  libglapi-mesa:i386 libglib2.0-0:i386 libgnutls26:i386 libgpg-error0:i386
  libgssapi-krb5-2:i386 libgstreamer-plugins-base1.0-0:i386
  libgstreamer1.0-0:i386 libice6:i386 libjack-jackd2-0:i386 libjbig0:i386
  libjpeg-turbo8:i386 libjpeg8:i386 libjson-c2:i386 libk5crypto3:i386
  libkeyutils1:i386 libkrb5-3:i386 libkrb5support0:i386 libllvm3.4:i386
  liblzma5:i386 libmysqlclient18:i386 libnih-dbus1:i386 libnih1:i386
  libogg0:i386 liborc-0.4-0:i386 libp11-kit0:i386 libpciaccess0:i386
  libpcre3:i386 libpng12-0:i386 libpulse0:i386 libqt4-dbus:i386
  libqt4-declarative:i386 libqt4-network:i386 libqt4-opengl:i386
  libqt4-script:i386 libqt4-sql:i386 libqt4-sql-mysql:i386 libqt4-xml:i386
  libqt4-xmlpatterns:i386 libqtcore4:i386 libqtdbus4:i386 libqtgui4:i386
  libqtwebkit4:i386 libsamplerate0:i386 libselinux1:i386 libsm6:i386
  libsndfile1:i386 libspeexdsp1:i386 libsqlite3-0:i386 libssl1.0.0:i386
  libstdc++6:i386 libtasn1-6:i386 libtiff5:i386 libtinfo5:i386
  libtxc-dxtn-s2tc0:i386 libudev1:i386 libuuid1:i386 libvorbis0a:i386
  libvorbisenc2:i386 libwrap0:i386 libx11-6:i386 libx11-xcb1:i386 libxau6:i386
  libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386
  libxcb-sync1:i386 libxcb1:i386 libxdamage1:i386 libxdmcp6:i386 libxext6:i386
  libxfixes3:i386 libxi6:i386 libxml2:i386 libxrender1:i386 libxshmfence1:i386
  libxslt1.1:i386 libxss1:i386 libxt6:i386 libxv1:i386 libxxf86vm1:i386
  mysql-common skype-bin:i386 sni-qt:i386 zlib1g:i386
Suggested packages:
  nas:i386 glibc-doc:i386 locales:i386 rng-tools:i386 libglide3:i386
  gnutls-bin:i386 krb5-doc:i386 krb5-user:i386 libvisual-0.4-plugins:i386
  gstreamer-codec-install:i386 gnome-codec-install:i386
  gstreamer1.0-tools:i386 gstreamer1.0-plugins-base:i386 jackd2:i386
  pulseaudio:i386 libqt4-declarative-folderlistmodel:i386
  libqt4-declarative-gestures:i386 libqt4-declarative-particles:i386
  libqt4-declarative-shaders:i386 qt4-qmlviewer:i386 libqt4-dev:i386
  libicu48:i386 libthai0:i386 qt4-qtconfig:i386
Recommended packages:
  xml-core:i386
The following NEW packages will be installed:
  gcc-4.8-base:i386 gcc-4.9-base:i386 libasound2:i386 libasound2-plugins:i386
  libasyncns0:i386 libaudio2:i386 libavahi-client3:i386
  libavahi-common-data:i386 libavahi-common3:i386 libc6:i386
  libcgmanager0:i386 libcomerr2:i386 libcups2:i386 libdbus-1-3:i386
  libdbusmenu-qt2:i386 libdrm-intel1:i386 libdrm-nouveau2:i386
  libdrm-radeon1:i386 libdrm2:i386 libelf1:i386 libexpat1:i386 libffi6:i386
  libflac8:i386 libfontconfig1:i386 libfreetype6:i386 libgcc1:i386
  libgcrypt11:i386 libgl1-mesa-dri:i386 libgl1-mesa-glx:i386
  libglapi-mesa:i386 libglib2.0-0:i386 libgnutls26:i386 libgpg-error0:i386
  libgssapi-krb5-2:i386 libgstreamer-plugins-base1.0-0:i386
  libgstreamer1.0-0:i386 libice6:i386 libjack-jackd2-0:i386 libjbig0:i386
  libjpeg-turbo8:i386 libjpeg8:i386 libjson-c2:i386 libk5crypto3:i386
  libkeyutils1:i386 libkrb5-3:i386 libkrb5support0:i386 libllvm3.4:i386
  liblzma5:i386 libmysqlclient18:i386 libnih-dbus1:i386 libnih1:i386
  libogg0:i386 liborc-0.4-0:i386 libp11-kit0:i386 libpciaccess0:i386
  libpcre3:i386 libpng12-0:i386 libpulse0:i386 libqt4-dbus:i386
  libqt4-declarative:i386 libqt4-network:i386 libqt4-opengl:i386
  libqt4-script:i386 libqt4-sql:i386 libqt4-sql-mysql:i386 libqt4-xml:i386
  libqt4-xmlpatterns:i386 libqtcore4:i386 libqtdbus4:i386 libqtgui4:i386
  libqtwebkit4:i386 libsamplerate0:i386 libselinux1:i386 libsm6:i386
  libsndfile1:i386 libspeexdsp1:i386 libsqlite3-0:i386 libssl1.0.0:i386
  libstdc++6:i386 libtasn1-6:i386 libtiff5:i386 libtinfo5:i386
  libtxc-dxtn-s2tc0:i386 libudev1:i386 libuuid1:i386 libvorbis0a:i386
  libvorbisenc2:i386 libwrap0:i386 libx11-6:i386 libx11-xcb1:i386 libxau6:i386
  libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386
  libxcb-sync1:i386 libxcb1:i386 libxdamage1:i386 libxdmcp6:i386 libxext6:i386
  libxfixes3:i386 libxi6:i386 libxml2:i386 libxrender1:i386 libxshmfence1:i386
  libxslt1.1:i386 libxss1:i386 libxt6:i386 libxv1:i386 libxxf86vm1:i386
  mysql-common skype skype-bin:i386 sni-qt:i386 zlib1g:i386
0 upgraded, 115 newly installed, 0 to remove and 7 not upgraded.
Need to get 63.7 MB of archives.
After this operation, 225 MB of additional disk space will be used.
Do you want to continue? [Y/n] 

ฉันยอมรับว่าอาจเป็นหนึ่งในสาเหตุที่เป็นไปได้ เมื่อฉันพยายามติดตั้งแพคเกจอื่น ๆ (ตัวอย่างvlc) หลังจากติดตั้ง skype และฉันได้รับการพึ่งพา ฉันออกจากสถานการณ์ที่คล้ายกันโดยการเพิ่ม:amd64ที่ส่วนท้ายของชื่อแพ็คเกจที่ทำให้เกิดข้อผิดพลาด คุณกู้คืนมาได้อย่างไร? อะไรจะเป็นการแก้ปัญหาที่ดีที่สุด?
souravc

ไม่แน่ใจว่าทำไมสิ่งนี้จึงถูกลดระดับลง มันเป็นสิ่งที่ฉันต้องการในการติดตั้งไวน์ 32 บิต BTW คุณมีการพิมพ์ผิดใน - เพิ่มสถาปัตยกรรมและคุณควรเพิ่มตัวเตือนเพื่อเรียกใช้การอัพเกรด apt-get หลังจาก --add-architecture
Matt Chambers

1

หลังจากพยายามใกล้เคียงกับทุกวิธีที่กล่าวถึงในหัวข้อนี้ (และอื่น ๆ ) ฉันใกล้จะยอมแพ้ ฉันปรับรุ่น Debian Lenny เป็น Squeeze และฉันทำไม่ได้สำหรับชีวิตของฉันว่าทำไม PHP5, Apache, MySQL และอื่น ๆ ไม่ต้องการติดตั้ง ในที่สุดฉันก็พยายามใช้

sudo apt-get purge apache2
sudo apt-get purge php5
sudo apt-get purge mysql-server
sudo apt-get clean
sudo apt-get autoremove
sudo apt-get install apache2 php5 mysql-server

.. และมันก็ทำงานได้อย่างไร้ที่ติ! ( ระวังมันอาจทำลายไฟล์ปรับแต่งของคุณดังนั้นสำรองไฟล์ไว้! )


นี่ไม่ได้แก้ปัญหาหากคุณไม่ได้ติดตั้งแพ็คเกจที่กล่าวถึง
Braiam

1

สิ่งที่ใช้ได้ผลสำหรับฉันคือการติดตั้งการพึ่งพาอีกครั้ง เป็นกรณีที่รุ่นที่ติดตั้งล่าสุดกว่ารุ่นล่าสุด (สิ่งที่แสดงให้เห็น synaptic) เป็นจริงเทียบเท่าเพื่อให้ synaptic เพื่อลดระดับการพึ่งพาแพคเกจ

อีกสิ่งที่ใช้งานได้คือ "ความถนัด":

root@arau:~# aptitude install libgfortran3
The following NEW packages will be installed:
  libgfortran3{b} 
0 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 250 kB of archives. After unpacking 1 230 kB will be used.
The following packages have unmet dependencies:
 libgfortran3 : Depends: gcc-4.8-base (= 4.8.2-19ubuntu1) but 4.8.4-2ubuntu1~14.04 is installed.
Internal error: found 2 (choice -> promotion) mappings for a single choice.
The following actions will resolve these dependencies:

     Keep the following packages at their current version:
1)     libgfortran3 [Not Installed]                       



Accept this solution? [Y/n/q/?] n
Internal error: found 2 (choice -> promotion) mappings for a single choice.
Internal error: found 2 (choice -> promotion) mappings for a single choice.
The following actions will resolve these dependencies:

      Downgrade the following packages:                                        
1)      cpp-4.8 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]       
2)      gcc-4.8 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]       
3)      gcc-4.8-base [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]  
4)      libasan0 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]      
5)      libatomic1 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]    
6)      libgcc-4.8-dev [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]
7)      libgomp1 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]      
8)      libitm1 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]       
9)      libquadmath0 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]  
10)     libstdc++6 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]    
11)     libtsan0 [4.8.4-2ubuntu1~14.04 (now) -> 4.8.2-19ubuntu1 (trusty)]      

Accept this solution? [Y/n/q/?] y

มันไม่มีอะไรใหม่โดยทั่วไปเหมือนกับสิ่งที่คุณสามารถถอนออกจากคำตอบที่ติดอันดับยอดนิยมที่นี่และอีกอันที่ตามมา ...
JoKeR

1
ใช่ แต่มีวิธีแก้ปัญหาอยู่มากมายฉันแค่พูดถึงสิ่งที่ใช้ได้ผลสำหรับฉัน
Bob Yoplait

0

หากคุณได้รับข้อผิดพลาดเช่นนี้:
ป้อนคำอธิบายรูปภาพที่นี่

นี่เป็นการบอกคุณว่าแพคเกจได้รับการติดตั้งแล้ว แต่ยังไม่ได้ติดตั้งแพ็กเกจอื่นทั้งหมดที่จำเป็นต้องใช้ คุณควรจะสามารถแก้ปัญหานี้ได้ด้วยการทำสิ่งนี้:

sudo apt-get -f install

(คำสั่งนี้ควรติดตั้งการพึ่งพาแบบ unmet โดยอัตโนมัติ)

หรืออะไรทำนองนี้(พร้อมแพ็คเกจที่เกี่ยวข้อง) :

sudo apt-get install click curl dpkg-dev python-lzma python-requests imagemagick ubuntu-dev-tools

แต่ถ้าคุณจบลงด้วยข้อผิดพลาดประเภทนี้: ไม่สามารถติดตั้งแพ็คเกจ / แพ็คเกจไม่พร้อมใช้งาน / ไม่มีตัวเลือกการติดตั้ง ฯลฯ

จากนั้นคุณสามารถค้นหาวิธีการที่จะติดตั้งได้ที่นี่หรือที่นี่
จากตัวอย่างข้างต้นคุณควรจะสามารถที่จะหาหน้าเช่นนี้และจากนั้นใช้PPAหรือติดตั้ง.deb สำหรับ 32bitหรือ.deb สำหรับ 64 บิต

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