หมายเหตุเกี่ยวกับการทำซ้ำที่เป็นไปได้:
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.1
sudo apt-get install libcgmanager0=0.39-2ubuntu2~ubuntu14.04.1
ตอนนี้เราสิ้นสุดในสถานการณ์เดียวกันของผู้ใช้จากคำถามที่กล่าวถึงในพื้นหลังการติดตั้งไวน์ล้มเหลวด้วยการพึ่งพา unmet แสดงเฉพาะแพคเกจอ้างอิงระดับแรก
apt-get -s install wine
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: 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.6
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: 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-i386
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: 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
พื้นที่เก็บข้อมูลด้วย500
apt
ไม่สามารถติดตั้ง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
รุ่น?