Lưu ý về khả năng trùng lặp:
AFAIK, Đây không phải là bản sao của Làm cách nào để giải quyết các phụ thuộc chưa được đáp ứng sau khi thêm PPA? mặt khác, vui lòng chứng minh bằng cách giải quyết vấn đề kiểm tra mà tôi đề cập dưới đây bằng bất kỳ câu trả lời nào từ đó.
Lý lịch:
Tôi đã gặp vấn đề này trước khi sửa lỗi cài đặt rượu vang trên Ubuntu 14.04.3LTS 64 bit . Nó đã được giải quyết bằng cách xem xét thủ công / con người về tất cả các phụ thuộc đệ quy của gói mục tiêu (wine
).
Tái tạo vấn đề (Test Case):
Hãy tạo ra tình huống yên tĩnh đơn giản hóa chỉ với 1 gói rắc rối.
- Cài đặt Ubuntu 14.04 mới trên VirtualBox.
- Mở
software-properties-gtk
và kích hoạtbackports
kho lưu trữ. Nhận danh sách các gói cuối cùng
sudo apt-get update
Chạy
apt-get -s install wine
để xác nhận rằngwine
có thể được cài đặt.Cài đặt gói rắc rối
libcgmanager0
từ 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
Buộc
apt
cài đặtlibcgmanager0
phiên bản0.39-2ubuntu2~ubuntu14.04.1
sudo apt-get install libcgmanager0=0.39-2ubuntu2~ubuntu14.04.1
Bây giờ chúng tôi kết thúc trong tình huống tương tự của người dùng từ câu hỏi được đề cập trong nền, cài đặt rượu không thành công với sự phụ thuộc chưa được đáp ứng, chỉ hiển thị các gói phụ thuộc cấp đầu tiên.
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.
Nó không thực tế để làm theo phụ thuộc với apt-get install
từng người một.
Giải pháp lý tưởng:
Vấn đề thực sự ở đây
apt
không thể cài đặtlibcgmanager0:i386
phiên bản0.39-2ubuntu2~ubuntu14.04.1
vì kho lưu trữ backports có mức độ ưu tiên100
thấp hơn phiên bản0.24-0ubuntu7.5
từupdates
kho lưu trữ với500
apt
không thể cài đặtlibcgmanager0:i386
phiên bản0.24-0ubuntu7.5
vìlibcgmanager0:amd64
được cài đặt với một phiên bản khác0.39-2ubuntu2~ubuntu14.04.1
Cách khắc phục nhanh nhất là, buộc cài đặt cùng phiên bản i386 từ backport
sudo apt-get install libcgmanager0:i386=0.39-2ubuntu2~ubuntu14.04.1
hoặc hạ cấp nó (amd64) xuống bất kỳ phiên bản nào từ kho thông thường
sudo apt-get install libcgmanager0=0.24-0ubuntu7.5
Những cách / công cụ tôi đã thử:
- Vô hiệu hóa PPA không liên quan đến vấn đề.
- Sử dụng
aptitude
trong chế độ tương tác, chỉ mang lại giải pháp với nhiều lần xóa ( > 200 !!! ). - Sử dụng
apt-get install
thủ công theo cây phụ thuộc. Không thực tế, vì sự phụ thuộc cấp một & cấp hai đã không đưa ra thông điệp có ý nghĩa về cuộc xung đột. debfoster
có thể tạo các phụ thuộc đệ quy nhưng chỉ cho gói đã được cài đặt. Tuy nhiênwine
vẫn chưa được cài đặt.
Chủ đề / Sở thích của tôi:
Giả sử tôi muốn cài đặt rượu vang mà không biết về vấn đề của libcgmanager0
gói (hoặc chính xác libcgmanager0:amd64=0.39-2ubuntu2~ubuntu14.04.1
là đã cài đặt).
Tôi đang tìm kiếm một phương pháp gỡ lỗi hoặc một cách để biết tên của gói rắc rối và để hiểu nhanh những gì đang diễn ra.
Làm thế nào để gỡ lỗi các vấn đề phụ thuộc chưa được đáp ứng nói chung?
Có thể có một số tùy chọn mới trong
dpkg
/apt
/aptitude
theo dõi trình giải quyết phụ thuộc nội bộ. Điều đó có thể hiển thịlibcgmanager0
trong đầu ra của nó.Nếu không có câu trả lời chính tắc cho vấn đề này, ai đó có thể chỉ cho tôi cách tốt hơn để tạo danh sách phụ thuộc đệ quy hoặc mô phỏng trình giải quyết phụ thuộc với nhiều chi tiết có thể giúp khắc phục vấn đề không?
Tại sao tất cả phụ thuộc? Bởi vì tôi muốn kiểm tra đầu ra của các lệnh dưới đây cho tất cả các gói cùng một lúc.
apt-cache policy <all-dependencies>
apt-get -s install <all-dependencies>
libcgmanager
, nhưng với một phụ thuộc? Bạn đã đề cập đệ quy liệt kê phụ thuộc. Bạn đã thử apt-rdepends
chưa
wine
(hoặc gói bị ảnh hưởng khác) với -o Debug::pkgProblemResolver=yes
?
backports
phiên bản?