Po aktualizacji z 10.04 do 12.04 próbuję zainstalować różne pakiety. Na przykład ia32-libs i skype (4.0).
Podczas próby ich zainstalowania pojawia się komunikat o błędzie „Nie można rozwiązać problemów, wstrzymałeś uszkodzone pakiety”.
Wyjście poleceń:
sudo apt-get install -f
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Po uruchomieniu tego:
sudo dpkg --configure -a
foo@foo:~$ sudo apt-get install -f
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
sudo apt-get install ia32-libs
), Oraz wynik działania tego polecenia. Czysudo apt-get dist-upgrade
pokazuje także dostępne aktualizacje?Odpowiedzi:
Ten konkretny komunikat o błędzie może wskazywać, że trzymałeś paczki, ale może także oznaczać inny problem.
Możesz uzyskać listę faktycznie przechowywanych pakietów za pomocą:
Jeśli nie ma żadnych lub żaden nie wygląda na związany, to prawdopodobnie jest to coś innego. Sprawdź dokładnie dane wyjściowe polecenia, które próbujesz uzyskać po otrzymaniu komunikatu o błędzie, ponieważ mogą być inne wskazówki w pełnym wyniku tego polecenia, oprócz komunikatu o błędzie.
Inną metodą rozwiązywania problemów może być użycie aptitude zamiast apt-get, aby spróbować zainstalować pakiet:
Aptitude rzuci się łatwiej i spróbuje znaleźć rozwiązania, które mogą wymagać modyfikacji innych pakietów. Może dać ci więcej wyjaśnień problemu i możliwości jego rozwiązania.
Czasami aptitude będzie zbyt chętny do usuwania lub obniżania liczby dużych pakietów, aby spełnić twoje żądanie, w takim przypadku ponowna próba
-f
zmiany priorytetów i pomoc w znalezieniu rozwiązań obejmujących usunięcie / obniżenie liczby mniejszych pakietów, nawet jeśli oznacza to, że nie wszystkie zmiany, o które prosiłeś można śmiało:źródło
To też mi się przydarzyło. Wszystko, co zrobiłem,
sudo apt-get update
to naprawiło mój problem. Powodzenia.źródło
Natrafiłem na podobny scenariusz dotyczący brakujących zależności. W moim przypadku próbowałem zainstalować curl na pyskaty salamandrze ubuntu 13.10 ...
Błąd stwierdził, że zależność wymagała wcześniejszej wersji biblioteki curl3.
Udało mi się zdegradować do wcześniejszej wersji, próbując zainstalować curl przy użyciu aptitude.
Kiedy zauważył brakującą zależność i przyczynę (wymagała wcześniejszej wersji pliku biblioteki), dał mi kilka opcji, jak odpowiedzieć ... y// n/q
Yprzerwałoby instalację, Nszukałoby innej opcji, Qpo prostu zamknęło się i nic więcej nie robiło, pozostawiając zepsuty pakiet.
Wybrałem Ni dało mi to opcję zmiany pliku biblioteki na wcześniejszą wersję. Tak właśnie zrobiłem i curl zakończył instalację bez żadnych błędów.
źródło
Miałem podobny scenariusz w nowej instalacji 14.04, bez plików wymienionych
dpkg --get-selections | grep hold
i bez radości późniejsudo apt-get update
.To, co to naprawiło, było dla mnie proste
Kiedy próbowałem ponownie zainstalować wadliwy pakiet, działało dobrze. Tak!
źródło
Miałem ten sam problem, uruchomiłem polecenie sprawdzania pakietu z drugiej odpowiedzi (
dpkg --get-selections | grep hold
) i zobaczyłemwięc użyłem „
apt-get remove tomcat7-common
”Następnie mógłbym zainstalować Tomcat 6 (usuwałem Tomcat 7 i instalowałem Tomcat 6 tak jak ty).
źródło
Są to szybkie i łatwe sposoby naprawienia
you have held broken packages
błędu.Otwórz plik sources.list
/etc/apt/sources.list
i sprawdź, czy nie ma żadnych źródeł oprogramowania dla innej wersji Ubuntu niż wersja Ubuntu, której obecnie używasz. Jeśli znajdziesz niepoprawne wiersze wydania w sources.list, otwórz plik sources.list za pomocąsudoedit /etc/apt/sources.list
, skomentuj nieprawidłowe wiersze w sources.list poprzedzając je#
znakiem, zapisz plik sources.list i uruchom,sudo apt update
aby zaktualizować listę dostępne pakiety oprogramowania.Wybierz opcję Napraw uszkodzone pakiety w menedżerze pakietów Synaptic. Uruchom następujące polecenia, aby zainstalować Synaptic.
Otwórz Synaptic iw Synaptic wybierz Edycja -> Napraw uszkodzone pakiety, a następnie powtórz Edycja -> Napraw uszkodzone pakiety po raz drugi.
W Synaptic w lewym okienku kliknij przycisk Filtry niestandardowe , który jest zaznaczony kursorem myszy na poniższym zrzucie ekranu. Z listy w lewym górnym rogu wybierz Broken . W środkowym okienku pojawi się lista uszkodzonych pakietów, które nadal wymagają naprawy.
Wybierz uszkodzone pakiety pojedynczo. Wybierz uszkodzony pakiet, a następnie otwórz terminal i uruchom . Wyniki tego polecenia pokażą, czy ten uszkodzony pakiet został zainstalowany z domyślnych repozytoriów Ubuntu, czy z innego źródła. Jeśli uszkodzony pakiet został zainstalowany z innego źródła, być może ten pakiet może zostać usunięty wraz ze źródłem oprogramowania i zastąpiony inną wersją tego samego pakietu niż domyślne repozytoria Ubuntu. Zwykle oznacza to naprawienie uszkodzonego pakietu przez obniżenie tego pakietu do starszej wersji.
apt policy <package-name>
Jeśli pojawi się ten komunikat o błędzie:
Uruchom następujące polecenia:
Ręcznie usuń zepsuty pakiet.
Znajdź swój pakiet w
/var/lib/dpkg/info
Przenieś folder pakietu w inne miejsce.
Uruchom następujące polecenie:
Jeśli wszystkie te metody nie działają, możliwe, że uszkodzone pakiety są spowodowane przez coś, co jest tak głęboko osadzone w systemie operacyjnym, że żadna z tych metod nie ma na to żadnego wpływu. Pierwszym oczywistym miejscem do poszukiwania tego głęboko osadzonego „czegoś” są źródła oprogramowania
/etc/apt/sources.list
. Sprawdź plik sources.list, aby zobaczyć, czy zawiera on niestandardowe linie, które mogą powodować błąd zepsutych pakietów. Standardowy plik sources.list Ubuntu wygląda jak pliki sources.list w tej odpowiedzi .Prawidłowym sposobem na usunięcie podejrzanej linii ze źródeł.list jest skomentowanie jej poprzedzeniem
#
znakiem. Następnie uruchom,sudo apt update
aby odświeżyć listę dostępnego oprogramowania.źródło
Dla mnie żadne z powyższych nie działało, ponieważ mój system nie został zaktualizowany. Zrobiłem
Home Key > Software Updater > Install
i zaktualizowałem mój system; potem mógłbym normalnie zainstalować pakiet
apt
.źródło
Miałem ten sam problem z ponowną instalacją
xsane
po nieudanejppa
instalacji. Tak jak stało się z Yochannah: „nie ma żadnych plików na liściedpkg --get-selections | grep hold
i nie ma później radościsudo apt-get update
”.Wskazówka, która
apt-get
mi dała, toxsane : Depends: libsane (>= 1.0.24) but it is not going to be installed
Z powodu odpowiedzi Yochannah miałem wrażenie, że muszę usunąć niektóre wcześniej zainstalowane pakiety. I tak było, musiałem ręcznie usunąć wszystkie powiązane pakiety
sane
, między innymi,xsane-common
ilibsane
które nadal były instalowane jakoppa
wersja.Dlatego uważaj na to, co już zainstalowałeś i posprzątaj!
źródło