หมายเหตุเกี่ยวกับการทำซ้ำที่เป็นไปได้:
AFAIK นี่ไม่ใช่สิ่งซ้ำกันของฉันจะแก้ไขการพึ่งพาแบบไม่ได้หลังจากเพิ่ม PPA ได้อย่างไร มิฉะนั้นโปรดพิสูจน์ด้วยการแก้ปัญหาการทดสอบฉันพูดถึงด้านล่างโดยใช้คำตอบใด ๆ จากที่นั่น
พื้นหลัง:
ผมประสบปัญหานี้มาก่อนวิธีการติดตั้งแก้ไขไวน์บน Ubuntu 14.04.3LTS 64 บิต แก้ไขได้โดยการตรวจสอบด้วยตนเอง / โดยมนุษย์เกี่ยวกับการอ้างอิงแบบเรียกซ้ำทั้งหมดของแพ็คเกจเป้าหมาย ( wine)
สร้างปัญหาขึ้นอีกครั้ง (กรณีทดสอบ):
ลองสร้างสถานการณ์เดียวกันเงียบ ๆ ง่าย ๆ ด้วยแพ็คเกจปัญหา 1 ข้อ
- ติดตั้ง Ubuntu สด 14.04 บน VirtualBox
- เปิด
software-properties-gtkและเปิดใช้งานที่backportsเก็บข้อมูล รับรายการแพ็คเกจล่าสุด
sudo apt-get updateเรียกใช้
apt-get -s install wineเพื่อยืนยันว่าwineสามารถติดตั้งได้ติดตั้งแพคเกจที่หนักใจ
libcgmanager0จาก backport$ apt-cache policy libcgmanager0 libcgmanager0: Installed: 0.24-0ubuntu5 Candidate: 0.24-0ubuntu7.5 Version table: 0.39-2ubuntu2~ubuntu14.04.1 0 100 http://dz.archive.ubuntu.com/ubuntu/ trusty-backports/main amd64 Packages 0.24-0ubuntu7.5 0 500 http://dz.archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages 0.24-0ubuntu7.1 0 500 http://security.ubuntu.com/ubuntu/ trusty-security/main amd64 Packages *** 0.24-0ubuntu5 0 500 http://dz.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages 100 /var/lib/dpkg/statusบังคับ
aptให้ติดตั้งlibcgmanager0เวอร์ชัน0.39-2ubuntu2~ubuntu14.04.1sudo apt-get install libcgmanager0=0.39-2ubuntu2~ubuntu14.04.1
ตอนนี้เราสิ้นสุดในสถานการณ์เดียวกันของผู้ใช้จากคำถามที่กล่าวถึงในพื้นหลังการติดตั้งไวน์ล้มเหลวด้วยการพึ่งพา unmet แสดงเฉพาะแพคเกจอ้างอิงระดับแรก
apt-get -s install wineReading 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: wine : Depends: wine1.6 but it is not going to be installed E: Unable to correct problems, you have held broken packages.apt-get -s install wine1.6Reading 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: wine1.6 : Depends: wine1.6-i386 (= 1:1.6.2-0ubuntu4) E: Unable to correct problems, you have held broken packages.apt-get -s install wine1.6-i386Reading 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: wine1.6-i386:i386 : Depends: libglu1-mesa:i386 but it is not going to be installed or libglu1:i386 Depends: libgphoto2-6:i386 (>= 2.5.2) but it is not going to be installed Depends: libgphoto2-port10:i386 (>= 2.5.2) but it is not going to be installed Recommends: libsane:i386 but it is not going to be installed E: Unable to correct problems, you have held broken packages.
มันไม่สามารถนำไปใช้อ้างอิงแบบอ้างอิงapt-get installทีละตัวได้
ทางออกที่ดี:
ปัญหาจริงที่นี่
aptไม่สามารถติดตั้งlibcgmanager0:i386รุ่น0.39-2ubuntu2~ubuntu14.04.1เพราะ backports พื้นที่เก็บข้อมูลมีความสำคัญต่ำ100รุ่นแล้วน้อย0.24-0ubuntu7.5จากupdatesพื้นที่เก็บข้อมูลด้วย500aptไม่สามารถติดตั้งlibcgmanager0:i386เวอร์ชันได้0.24-0ubuntu7.5เนื่องจากlibcgmanager0:amd64ติดตั้งด้วยรุ่นอื่น0.39-2ubuntu2~ubuntu14.04.1
การแก้ไขที่เร็วที่สุดคือการบังคับให้ติดตั้ง i386 รุ่นเดียวกันจาก backport
sudo apt-get install libcgmanager0:i386=0.39-2ubuntu2~ubuntu14.04.1
หรือดาวน์เกรดมัน (amd64) เป็นรุ่นใดก็ได้จากที่เก็บปกติ
sudo apt-get install libcgmanager0=0.24-0ubuntu7.5
วิธี / เครื่องมือที่ฉันลอง:
- การปิดใช้งาน PPA ไม่มีความเกี่ยวข้องกับปัญหา
- การใช้
aptitudeในโหมดอินเทอร์แอคทีฟนำเฉพาะโซลูชันที่มีการลบจำนวนมาก ( > 200 !!! ) - ใช้
apt-get installด้วยตนเองตามแผนผังการพึ่งพา ไม่น่าปฏิบัติเนื่องจากการอ้างอิงในระดับที่หนึ่งและสองไม่ได้ส่งข้อความที่มีความหมายเกี่ยวกับความขัดแย้ง debfosterสามารถสร้างการอ้างอิงซ้ำ แต่สำหรับแพคเกจที่ติดตั้งไว้แล้วเท่านั้น อย่างไรก็ตามwineยังไม่ได้ติดตั้ง
หัวข้อ / ความสนใจของฉัน:
สมมติว่าฉันต้องการติดตั้งไวน์โดยไม่ทราบเกี่ยวกับปัญหาของ libcgmanager0แพ็คเกจ (หรือlibcgmanager0:amd64=0.39-2ubuntu2~ubuntu14.04.1ที่ติดตั้งไว้แล้ว)
ฉันกำลังมองหาวิธีการแก้ปัญหาหรือวิธีที่จะรู้ชื่อของแพคเกจที่หนักใจและเข้าใจได้อย่างรวดเร็วว่าเกิดอะไรขึ้น
วิธีแก้ปัญหาการอ้างอิงที่ไม่ได้รับการแก้ไขโดยทั่วไป
อาจมีตัวเลือกใหม่ใน
dpkg/apt/aptitudeที่ติดตามตัวแก้ไขการพึ่งพาภายใน ที่สามารถแสดงlibcgmanager0ผลได้ในหากไม่มีคำตอบที่ยอมรับในเรื่องนี้ทุกคนสามารถแสดงวิธีที่ดีกว่าในการสร้างรายการอ้างอิงแบบเรียกซ้ำหรือจำลองตัวแก้ปัญหาการพึ่งพาโดยมีรายละเอียดเพิ่มเติมซึ่งสามารถช่วยแก้ไขปัญหาได้หรือไม่
ทำไมต้องพึ่งพาทั้งหมด? เพราะฉันต้องการตรวจสอบผลลัพธ์ของคำสั่งด้านล่างสำหรับแพ็คเกจทั้งหมดในครั้งเดียว
apt-cache policy <all-dependencies>apt-get -s install <all-dependencies>
libcgmanagerแต่ด้วยการพึ่งพาหรือไม่ คุณกล่าวถึงการอ้างอิงรายการซ้ำ คุณเคยลองapt-rdependsไหม
wine(หรือแพ็คเกจอื่น ๆ ที่ได้รับผลกระทบ) ด้วย-o Debug::pkgProblemResolver=yes?
backportsรุ่น?