Uwaga na temat możliwego duplikatu:
AFAIK, To nie jest duplikat Jak rozwiązać niezaspokojone zależności po dodaniu PPA? w przeciwnym razie proszę to udowodnić, rozwiązując problem testowy, o którym wspomniałem poniżej, używając jakiejkolwiek odpowiedzi z tego miejsca.
Tło:
Napotkałem ten problem przed Jak naprawić wino instalacyjne na 64-bitowym Ubuntu 14.04.3LTS . Zostało to rozwiązane przez ręczny / ludzki przegląd wszystkich rekurencyjnych zależności pakietu docelowego ( wine).
Odtwórz problem (przypadek testowy):
Stwórzmy tę samą sytuację cichą uproszczoną za pomocą tylko 1 pakietu problemów.
- Zainstaluj świeży Ubuntu 14.04 na VirtualBox.
- Otwórz
software-properties-gtki włączbackportsrepozytorium. Pobierz listę ostatnich paczek
sudo apt-get updateUruchom,
apt-get -s install wineaby potwierdzić, żewinemożna zainstalować.Zainstaluj problematyczny pakiet
libcgmanager0z backportów$ 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/statusWymuś
aptzainstalowanielibcgmanager0wersji0.39-2ubuntu2~ubuntu14.04.1sudo apt-get install libcgmanager0=0.39-2ubuntu2~ubuntu14.04.1
Teraz w tle znajduje się taka sama sytuacja użytkownika, jak w przypadku wspomnianego pytania: instalacja wina kończy się niepowodzeniem z niespełnioną zależnością, pokazując tylko pakiety zależności pierwszego poziomu.
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.
Nie jest praktyczne śledzenie zależności apt-get installjedna po drugiej.
Idealne rozwiązanie:
Prawdziwy problem tutaj
aptnie można zainstalowaćlibcgmanager0:i386wersji,0.39-2ubuntu2~ubuntu14.04.1ponieważ repozytorium backportów ma niższy priorytet100niż wersja0.24-0ubuntu7.5zupdatesrepozytorium z500aptnie można zainstalowaćlibcgmanager0:i386wersji,0.24-0ubuntu7.5ponieważlibcgmanager0:amd64jest instalowany z inną wersją0.39-2ubuntu2~ubuntu14.04.1
Najszybszą poprawką jest wymuszenie instalacji tej samej wersji i386 z backportów
sudo apt-get install libcgmanager0:i386=0.39-2ubuntu2~ubuntu14.04.1
lub obniż go (amd64) do dowolnej wersji ze zwykłych repozytoriów
sudo apt-get install libcgmanager0=0.24-0ubuntu7.5
Sposoby / narzędzia, które wypróbowałem:
- Wyłączenie PPA nie ma związku z problemem.
- Używanie
aptitudew trybie interaktywnym przynosi tylko rozwiązania z wieloma usunięciami ( > 200 !!! ). - Użyj
apt-get installręcznie, postępując zgodnie z drzewem zależności. Niepraktyczne, ponieważ zależności pierwszego i drugiego poziomu nie wywołały znaczącego komunikatu o konflikcie. debfostermoże generować zależności rekurencyjne, ale tylko dla już zainstalowanego pakietu. Jednakwinenie jest jeszcze zainstalowany.
Temat / Moje zainteresowania:
Powiedzmy, że chcę zainstalować wino, nie wiedząc o problemie z libcgmanager0pakietem (lub dokładnie libcgmanager0:amd64=0.39-2ubuntu2~ubuntu14.04.1tym , który już został zainstalowany).
Szukam metody debugowania lub sposobu, aby poznać nazwę pakietu powodującego problemy i szybko zrozumieć, co się dzieje.
Jak ogólnie debugować problemy z niezaspokojonymi zależnościami?
Mogą znajdować się nowe opcje w
dpkg/apt/,aptitudektóre śledzą wewnętrzny mechanizm rozwiązywania zależności. To może pokazaćlibcgmanager0w swoich wynikach.Jeśli nie ma kanonicznej odpowiedzi na to pytanie, czy ktoś mógłby mi pokazać lepszy sposób na wygenerowanie listy rekurencyjnych zależności lub zasymulować przelicznik zależności z większą ilością szczegółów, które mogą pomóc rozwiązać problem?
Dlaczego wszystkie zależności? Ponieważ chcę sprawdzić dane wyjściowe poniższych poleceń dla wszystkich pakietów jednocześnie.
apt-cache policy <all-dependencies>apt-get -s install <all-dependencies>
libcgmanager, ale o zależność? Wspomniałeś rekurencyjnie wymieniając zależności. Próbowałeś apt-rdepends?
wine(lub inny pakiet, którego dotyczy problem) -o Debug::pkgProblemResolver=yes?
backportswersji?