Czasami podczas instalowania różnych rzeczy pojawia się błąd:
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:
package1 : Depends: package2 (>= 1.8) but 1.7.5-1ubuntu1 is to be installed
E: Unable to correct problems, you have held broken packages.
Jak mogę to rozwiązać?
Odpowiedzi:
APT to system zarządzania pakietami dla Debiana i innych opartych na nim dystrybucji Linuksa, takich jak Ubuntu. W większości przypadków APT jest łatwy w użyciu do instalowania, usuwania i aktualizowania pakietów. W rzadkich przypadkach, często w przypadku mieszania się z zależnościami innych firm,
apt-get
może się zdarzyć, że pojawi się błąd informujący, że nie można ukończyć instalacji pakietu.Rozwiązania:
Zawsze dobrym pomysłem jest tworzenie kopii zapasowych plików konfiguracyjnych
/etc/apt/sources.list
, aby w razie potrzeby móc cofnąć zmiany.Jeśli
error
pokazuje coś takiego:<some-package>: Depends: <other-package> (= version) but this-version is to be installed
Następnie upewnij się, że repozytoria
restricted
iuniverse
są włączone. Naciśnij Alt+ F2, wpiszsoftware-properties-gtk
i naciśnij Enter.W
Ubuntu Software
zakładce włącz wszystkie repozytoria.Jedną z możliwych przyczyn niezaspokojonych zależności może być uszkodzona baza danych pakietów i / lub niektóre pakiety nie zostały poprawnie zainstalowane. Aby rozwiązać ten problem, naciśnij Alt+ Ctrl+, Taby otworzyć terminal i spróbuj uruchomić jedno z następujących poleceń:
lub,
apt-get clean
usuwa lokalne repozytorium pobranych plików pakietów (pliki .deb). Usuwa wszystko oprócz pliku blokady z / var / cache / apt / archives / i / var / cache / apt / archives / częściowo /.apt-get autoclean
usuwa lokalne repozytorium pobranych plików pakietów, ale w przeciwieństwie doapt-get clean
nich usuwa tylko pliki pakietów, których nie można już pobrać i są w dużej mierze bezużyteczne.Jedną z najbardziej podstawowych poprawek w celu rozwiązania problemów z zależnościami jest uruchomienie:
-f
Oznacza tu „naprawić zepsuty”.Apt
spróbuje naprawić zepsute zależności. Jeśli ręcznie zainstalowałeś pakiet, który miał niezaspokojone zależności,apt-get
zainstaluje te zależności, jeśli to możliwe, w przeciwnym razie może po prostu usunąć zainstalowany pakiet, aby rozwiązać problem.Następnie uruchomić:
Następnie uruchom to ponownie:
Jeśli dane wyjściowe to:
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
To znaczy, że się nie udało.
Następnym rozwiązaniem jest uruchomienie:
Jeśli pokazuje jakiekolwiek wstrzymane pakiety, najlepiej je wyeliminować. Pakiety są wstrzymywane z powodu konfliktów zależności,
apt
których nie można rozwiązać. Wypróbuj to polecenie, aby znaleźć i naprawić konflikty:Jeśli nie będzie w stanie naprawić konfliktów, zakończy działanie za pomocą:
0 upgraded, 0 newly installed, 0 to remove and 6 not upgraded.
Usuń wstrzymane pakiety jeden po drugim, uruchamiane za
dist-upgrade
każdym razem, aż nie będzie już wstrzymanych pakietów. Następnie zainstaluj ponownie wszystkie potrzebne pakiety. Skorzystaj z tej--dry-run
opcji, aby uzyskać pełną informację o konsekwencjach:Ponieważ usunięcie pakietu, który próbujesz zainstalować, może nie być idealne, możesz również spróbować znaleźć repozytorium, które zawiera pakiety potrzebne do spełnienia zależności.
Wreszcie, jeśli wszystko inne zawiedzie, możesz spróbować samodzielnie zaspokoić zależności, albo znajdując i instalując niezbędne pakiety, lub instalując je ze źródła, a następnie tworząc dla nich pakiety „ deb ”.
Wyłącz / Usuń / Wyczyść PPA:
PPA (Personal Package Archive) to repozytoria hostowane na Launchpadzie . Możesz użyć PPA do instalacji lub aktualizacji pakietów, które nie są dostępne w oficjalnych repozytoriach Ubuntu.
Jedną z najczęstszych przyczyn niezaspokojonych zależności są umowy PPA, zwłaszcza w przypadku aktualizacji istniejącego pakietu w repozytoriach Ubuntu. Aby rozwiązać problem, masz trzy opcje: wyłącz, wyczyść (przywróć oryginalny pakiet w repozytoriach Ubuntu) lub usuń PPA.
Wyłączyć:
Wyłączenie PPA oznacza, że nie będzie więcej aktualizacji pakietów zainstalowanych z tego PPA. Aby wyłączyć PPA: Otwórz
Software Center > Edit > Software Sources
lub,Naciśnij Alt+ F2i biegnij
software-properties-gtk
.Kliknij
Other Software
zakładkę, zobaczysz, że każdy PPA ma tutaj dwie linie, jedną dla skompilowanych pakietów i jedną dla źródła,Uncheck
obie linie do wyłączenia PPA. Tutaj możesz także dodawać i usuwać umowy PPA.Oczyścić:
Usunięcie PPA oznacza obniżenie pakietów wybranego PPA do wersji w oficjalnych repozytoriach Ubuntu i wyłączenie tej PPA. PPA Purge robi dokładnie to. Aby zainstalować PPA Purge, uruchom następujące polecenie:
Ale biorąc pod uwagę, że pytanie
apt
jest zepsute, powyższe polecenie nie powiedzie się. Więc użyj tego poleceniaAby użyć PPA Purge:
Jeśli polecenie „ppa-purge” z jakiegoś powodu nie powiedzie się, nie można ponownie uruchomić polecenia „ppa-purge”, chyba że ponownie włączysz PPA (Aby włączyć PPA, wykonaj te same kroki, co wyłączenie PPA i
Check
obu linii określonego PPA, aby ją włączyć).Uwaga:
PPA Purge
nie usuwa PPA ( może być w przyszłości ), więc musisz ręcznie usunąć PPA.Usunąć:
Jeśli pakiet zainstalowany z PPA nie istnieje w oficjalnych repozytoriach Ubuntu, to używanie
PPA Purge
nie jest zalecane, ponieważ nie ma nic do obniżenia iPPA Purge
nie usunęłoby go. Aby usunąć PPA i zainstalowane pakiety, uruchom następujące polecenia: (Zignoruj pierwsze polecenie, jeśli nie chcesz usuwać zainstalowanych pakietów)Alternatywnie można użyć
Y PPA Manager
do wyłączenia / usunięcia / wyczyszczenia PPA (Szczegóły na końcu odpowiedzi).Środki zapobiegawcze:
Jak więc w pierwszej kolejności uniknąć tego zjawiska?
Aktualizuj Ubuntu. Ubuntu automatycznie powiadamia o dostępności aktualizacji, możesz też sprawdzić dostępność aktualizacji, klikając
Session Indicator
w panelu Unity:Lub Hit Alt+ Ctrl+ T, aby otworzyć zacisk i uruchomić następujące polecenia:
Aktualizacja: synchronizuje listę dostępnych pakietów z serwerami w repozytoriach źródłowych. Uaktualnienie: pobiera i instaluje wszystkie nowsze wersje zainstalowanych pakietów.
Usuń zduplikowane umowy PPA.
Y PPA Manager
(instrukcja instalacji na końcu odpowiedzi) może łatwo skanować i usuwać duplikaty plików PPA.y-ppa-manager
aby otworzyć Y PPA Manager.Advanced
.Scan and remove duplicate PPAs
i kliknij OK.Otrzymywać pomoc:
Prosząc o pomoc na Askubuntu lub innym forum pomocy, w odpowiedzi na pytanie należy podać wyniki następujących poleceń:
Wynik rzeczywistego błędu:
Spowoduje to wyświetlenie źródeł.list:
Spowoduje to wyświetlenie listy umów PPA (jeśli istnieją):
Dodatkowe źródła:
Y PPA Manager : Y PPA Manager to kompleksowe centrum obsługi dla wszystkich twoich potrzeb PPA.
Oto niektóre z jego funkcji:
Aby zainstalować
Y PPA Manager
, otwórz terminal, naciskając Alt+ Ctrl+ Ti uruchom następujące polecenia:Biorąc pod uwagę pytanie,
apt
jest zepsuty, więc zamiast tego użyj tych poleceńi
32-bitowy:
64-bitowy:
źródło
Czy to naprawdę zepsute?
Spróbuj uruchomić następujące polecenie i spróbuj ponownie zainstalować oprogramowanie, które próbujesz zainstalować
Kroki przed występami
Tworzenie kopii zapasowej
Wykonaj kopię zapasową następujących plików:
/etc/apt/sources.list
/var/lib/dpkg/status
Aby to zrobić, użyj tych poleceń
i
Czyszczenie pamięci podręcznej apt-cache
apt
przechowuje pamięć podręczną ostatnio pobranych pakietów, aby zaoszczędzić przepustowość, gdy jest wymagana instalacja. W niektórych przypadkach może to przynieść efekt przeciwny do zamierzonegoTeraz, aby go wyczyścić, masz dwie opcje
Spowoduje to usunięcie wszystkich buforowanych pakietów należących do folderu,
/var/cache/apt/archives/
a/var/cache/apt/archives/partial
oprócz plików .lock. To jest zalecaneTo skanuje foldery
/var/cache/apt/archives/
i/var/cache/apt/archives/partial
sprawdza, czy pakiet nadal znajduje się w repozytoriach i usuwa te, których nie maNaprawianie zależności
Używanie trybu apt-broken
Spowoduje to, że apt będzie skanować w poszukiwaniu brakujących zależności i naprawi je z repozytoriów
Jeśli dane wyjściowe stwierdzają, że nic nowego nie zostało zainstalowane ani zaktualizowane, oznacza to, że nie powiodło się.
Sprawdzanie, czy wszystkie wymagane źródła są włączone
Wpisz,
gksu software-properties-gtk
a dostaniesz to oknoUpewnij się, że wszystkie źródła są włączone.
następnie przejdź do zakładki Inne oprogramowanie i sprawdź, czy wymagane są umowy PPA dla oprogramowania, które ma zostać zainstalowane, i czy są włączone. Spróbuj także wyłączyć niektóre PPA, które mogą mieć uszkodzone pakiety
teraz biegnij
sudo apt-get update
Spróbuj zainstalować oprogramowanie teraz
Wybór lepszego serwera do pobrania
Wpisz,
gksu software-properties-gtk
a dostaniesz to oknoKliknij Pobierz z pola rozwijanego i wybierz inne
Kliknij Wybierz najlepszy serwer
Biegać
sudo apt-get update
Spróbuj zainstalować oprogramowanie
spróbuj także użyć
sudo apt-get install -f
PPA Purge
Jest to narzędzie używane do usuwania uszkodzonych / niechcianych ppa i ich aplikacji wraz z nim
Aby go zainstalować, uruchom
Ale biorąc pod uwagę, że pytanie
apt
jest zepsute, powyższe polecenie nie powiedzie się. Więc użyj tego poleceniaTeraz użyj ppa purge
Menedżer Y-PPA
Y-PPA Manager to aplikacja GUI, która pomaga zarządzać PPA i różnymi związanymi z tym problemami
Aby go zainstalować
i
i
Biorąc pod uwagę pytanie,
apt
jest zepsuty, więc użyj tych poleceńi
32-bitowy:
64-bitowy:
Teraz wpisz
y-ppa-manager
Zostanie wyświetlone to okno
Kliknij dwukrotnie zaawansowane, a otrzymasz to okno
Wykonaj następujące zadania opisane w kolorze czarnym
Lepiej zapobiegać niż leczyć
Lepiej jest zapobiegać niż szukać tego pytania na AskUbuntu: D
Oto więc wskazówki, które zapewnią ci bezpieczeństwo
Aktualizuj swój system
zawsze uruchamiaj następujące polecenie regularnie
lub zawsze możesz użyć Menedżera aktualizacji z tym poleceniem
Używanie tylko zaufanych umów PPA
Używaj tylko PPA przeznaczonych do użytku na Ubuntu, używaj tylko PPA z zaufanymi źródłami. Rzeczywiście, pakiet może już znajdować się w repozytoriach ubuntu
Tworzenie kopii zapasowej, gdy wszystko jest w porządku, i przywracanie jej później
Do tego potrzebny jest Y-PPA-Manager. Kroki instalacji to podane powyżej.
Uruchom to polecenie, aby otworzyć Menedżera Y-PPA
Zostanie wyświetlone to okno
Kliknij dwukrotnie zaawansowane, a otrzymasz to okno
Uruchomić to:
Zostaniesz poproszony o zapisanie pliku tar.gz w oknie dialogowym podobnym do tego poniżej. Zapisz go w innej partycji lub w bezpiecznym miejscu
Później, gdy trzeba go przywrócić, wykonaj podobne kroki, a po przejściu do zaawansowanego okna dialogowego kliknij:
Zostaniesz poproszony o przywrócenie z poprzedniej kopii zapasowej, którą wcześniej zapisałeś, za pomocą okna dialogowego podobnego do tego poniżej
Wciąż nie działa?
Błędy zależności pakietu nie zawsze są ogólne i zależą od pakietu, który ma zostać zainstalowany.
Jeśli wykonanie wszystkich kroków podanych w celu naprawienia błędu nie działa, zawsze możesz zapytać w Ubuntu
Oto kilka poleceń, które musisz opublikować
i
i
(Dzięki Basharat Sial )
Są też inne pliki / polecenia, których wyjście może być specyficzne dla błędu, a użytkownicy prawdopodobnie podpowiedzą w komentarzach o opublikowaniu pliku / polecenia.
źródło
apt-get update
na górze listy. Czasami twój system dokonał aktualizacji, w której jeden nowszy pakiet został zaktualizowany zdalnie, ale ten, na którym zależy, jeszcze się nie zakończył. Lub wersja, którą masz w lokalnej pamięci podręcznej, została zaktualizowana. W takich przypadkach prostyapt-get update
aktualizuje lokalną pamięć podręczną i możesz kontynuować.apt-get install -f
go nie naprawiłem.-f
flaga oznacza siłę i zawsze unikałem jej użyciaDotychczasowe odpowiedzi koncentrują się na automatycznym rozwiązaniu takiego problemu, głównie w nadziei, że sam się rozwiąże, ale nie na zrozumieniu, jak badać zależności. Ważne jest, aby wypróbować takie rzeczy, jak upewnienie się, że listy pakietów są aktualne, ponieważ musisz się upewnić, że prosta aktualizacja lub wyczyszczenie pamięci podręcznej nie rozwiąże problemu przed głębszym kopaniem. Jeśli wszystko za kulisami działa tak, jak powinno, należy jednak przede wszystkim nauczyć się rozumieć zależności. Czasami warstwy zależności mogą wydawać się przytłaczające, ale koncepcja jest prosta i kluczem do zrozumienia, w jaki sposób oprogramowanie jest instalowane / odinstalowywane w systemie Ubuntu.
Gorąco polecam aptitude każdemu, kto używa systemu opartego na .deb, takiego jak Ubuntu. Jego struktura drzewa pozwala łatwo przeglądać zależności, w tym zalecane i sugerowane pakiety, a także wizualizować konflikty i niezaspokojone zależności. Jest to nieocenione narzędzie, gdy apt-get nie oferuje prostego rozwiązania, i ogólnie do wizualizacji zależności. ( Synaptic jest również dostępny w Ubuntu, ale nie uważam tego za intuicyjne).
Aptitude oferuje również program do rozwiązywania konfliktów, który przeprowadzi Cię przez wszystkie możliwe kombinacje zainstalowanych / usuniętych / zaktualizowanych pakietów itp., Aby spełnić wszystkie wymagania bez konfliktów i problemów. Może się to udać, nawet jeśli apt nie jest w stanie znaleźć rozwiązania. Jako użytkownik Ubuntu zwykle nie zdarzają się sytuacje, które wymagają zbadania, dlaczego ten konkretny pakiet jest instalowany, ale jest to prawie nieuniknione, gdy częściej używasz systemu.
źródło
aptitude
temat rozwiązywania konfliktów.sudo aptitude --full-resolver my_package
. To zwykle dajeThe following packages have unmet dependencies
i listę, z której7) <my_package> [Not Installed]
(7 to tylko przykład). Na każdym kroku aptitude oferuje nowe możliwości. To, co zadziałało dla mnie, to najpierw wybrać7
, a następnier 7
(co odpowiada opisowiRejecting the removal of my_package
), a następnien
(w przypadku NIE), ponieważ wcześniej nie były to wybory , których nie chciałem: ale potem nowe możliwości zaoferowały obniżenie niektórych pakietów wraz z instalacją my_package; więc na koniecY
(dla TAK)pakiet 1: Zależy: pakiet 2 (> = 1,8), ale należy zainstalować 1.7.5-1ubuntu1
Objaśnienie komunikatu:
Naprawić
Nie ma jednej właściwej odpowiedzi na to pytanie i NIE ma prostej odpowiedzi.
Istnieje wiele scenariuszy, dlaczego tak się dzieje i należy zbadać wszystkie opcje i spróbować rozwiązać warunki wstępne, które prowadzą do tego błędu.
Scenariusz A:
Wszystkie repozytoria, do których masz dostęp, nie mają pakietu2 w wersji> = 1.8, więc będziesz musiał znaleźć repozytorium, które ma. Jeśli nie możesz znaleźć repozytorium z wersjami> = 1.8, być może będziesz musiał skompilować i zainstalować pakiet 2 ze źródła. A następnie spróbuj zainstalować pakiet 1.
Jeśli chcesz wiedzieć, jak zbudować pakiet ze źródła, sprawdź inne pytania / odpowiedzi lub opublikuj nowe.
Scenariusz B:
Repozytoria zawierają pakiet2 w wersji> = 1.8, ale menedżer pakietów nadal chce zainstalować starszą wersję (1.7.5).
Powodem tego może być to, że późniejsze wersje pakietu 2 zostały zbudowane przy użyciu nowszej technologii, która nie jest obsługiwana przez inne pakiety, które zostały już zainstalowane.
W ogóle może to nie być możliwe. Możesz spróbować użyć apt lub synaptic i poszukać wszystkich wersji pakietu2, które są dostępne w repozytoriach, i spróbować zainstalować określoną wersję> = 1.8
Jeśli masz inne niekompatybilne pakiety i to zrobisz, otrzymasz listę podobnych komunikatów o błędach dla wszystkich innych pakietów, które uniemożliwiają instalację pakietu2> = 1.8.
W takim przypadku masz większy problem. Chciałeś zainstalować pakiet 1, który wymaga pakietu 2 => 1,8, ale pakiet 2 w wersji> = 1.8 wymaga pakietu 3 w wersji> = 6.7 i masz pakiet 3 w wersji 6.3
Chodzi o to, że menedżer pakietów (APT) próbuje automatycznie rozwiązać wszystkie te zależności, jeśli jest to możliwe. Kiedy powie, że nie jest to możliwe (i wyda komunikat taki jak w pytaniu), należy mu zaufać.
Jeśli zdecydujesz się nie ufać menedżerowi pakietów i masz pewność, że nie będziesz mieć problemów, możesz spróbować wymusić instalację konkretnych potrzebnych wersji wszystkich pakietów, jeden po drugim, i mam nadzieję, że wszystko będzie w porządku.
Uwaga, robienie tego dla pakietów systemowych może powodować poważne problemy. Możesz zablokować się w systemie, zablokować krytyczne usługi itp.
Scenariusz C:
Bez względu na przyczyny problemu, zawsze możesz skonfigurować ręczną kompilację i zbudować potrzebny pakiet oraz wszystkie jego zależności w dokładnie potrzebnych wersjach ze źródła. Dzięki tej opcji możesz zachować to, co zbudowałeś, w osobnym katalogu i poza ścieżką systemową, aby nie powodowało to konfliktów z systemem. Jest to prawdopodobnie najczystsze rozwiązanie, a czasem może być szybsze.
Scenariusz D:
Menedżer pakietów ma dostęp do przestarzałych informacji o pakietach i dlatego nie może znaleźć rozwiązania. Spójrz na inne odpowiedzi.
Scenariusz E:
Menedżer pakietów ma błąd w kodzie rozwiązywania zależności.
Musisz zbadać, czy tak jest naprawdę, a następnie wysłać prośbę o błąd.
...
Scenariusz Z:
Mogą istnieć inne scenariusze.
Na przykład opiekunowie pakietów mogli się mylić i nie sprawdzali, czy pakiet1 będzie działał nawet z wersją pakietu2 <1.8, aw specyfikacji ustawiali nieprawidłowe zależności.
źródło
Tych metod należy przestrzegać za każdym razem, gdy pojawi się błąd dotyczący niezaspokojonych zależności
Po wykonaniu instrukcji spróbuj zainstalować oprogramowanie. Przynajmniej jedna z tych metod powinna Ci pomóc
1 . Przed wypróbowaniem nowego polecenia lub dodaniem nowego ppa spróbuj tego
Czyszczenie pamięci podręcznej apt:
Usuwanie wszelkich nieużywanych zależności:
Aktualizowanie apt-cache
Spowoduje to usunięcie całej pamięci podręcznej i pobranie nowej pamięci podręcznej. Należy to zrobić, aby uzyskać świeże pakiety pamięci podręcznej i nowsze aktualizacje.
2 . Spróbować
sudo apt-get install -f
.Prawdopodobnie da jakieś sugestie dotyczące usuwania i instalowania pakietów, rób to, co wydaje się rozsądne.
3 . Zmień
Download Server
zSoftware Sources
Ponieważ czasami pliki na serwerze są uszkodzone.4 . Dzieje się tak również wtedy, gdy wcześniej dodałeś zewnętrzny ppa dla uszkodzonej zależności. Spróbuj usunąć to ppa przez
sudo add-apt-repository --remove ppa:someppa/ppa
a następnie ręcznie usuwając pliki / biblioteki zainstalowane w ppalub
czyszczenie ppa (usuwa to również zainstalowane pliki)
5 . Jeśli nr 4 nie jest twoim przypadkiem, przynajmniej spróbuj usunąć pakiet, który jest wyświetlany jako zepsuta zależność. Następnie spróbuj ponownie zainstalować. Zgłoszono, że działał on dla wielu osób.
6 . Zawsze dodawaj stabilną wersję repozytorium / PPA.
7 Upewnij się także, że masz włączone wszystkie oficjalne repozytoria (In
Software Sources
)Nie włączaj,
Proposed Updates
ponieważ są one przeznaczone do testowania / programistów.Jak powiedział doug:
Dodatkowo nie zauważono, że w wielu, jeśli nie w większości przypadków, „<cokolwiek> ma być zainstalowane” tak naprawdę oznacza „<cokolwiek> jest zainstalowane” i powinno się go spróbować usunąć, jeśli nic więcej nie działa (jak w punkcie 5).
Będę dodawać kolejne rzeczy, których nie mogę znaleźć
unmet dependencies
.źródło
apt-get update
ma nie aktualizuje apt cache (który składa się z pobranych.deb
plików i pliku, który przechowuje informacje o których.deb
pliki zapisane). Aktualizuje pliki indeksu pakietów (które zawierają informacje o tym, jakie pakiety są dostępne do pobrania i zainstalowania z każdego dostępnego źródła oprogramowania). Jak powiedziałem wcześniej,apt-get clean
nie usuwa tego samego, coapt-get update
aktualizacje. Zobaczman apt-get
szczegóły.W większości przypadków zainstalowanie pakietu przez
aptitude
rozwiąże niezaspokojone zależności. Domyślnyaptitude
pakiet nie został zainstalowany na komputerze. Więc najpierw zainstaluj go, uruchamiając,następnie,
Na przykład,
Instalowanie pakietu przez
aptitude
źródło
aptitude
nie należy rozwiązać problemu zależności?aptitude
bez rozwiązania problemu!aptitude
Jeśli nie wystąpił błąd z powodu uszkodzonych pakietów, możesz zainstalować aptitude.Moja odpowiedź jest podobna do powyższej odpowiedzi Ricka.
Korzystanie
apt-get clean
,apt-get autoclean
,apt-get autoremove
,apt-get upgrade
,apt-get update
,apt-get -u dist-upgrade
, itd. Wszystko nie działa dla mnie.W końcu rozwiązałem ten problem, schodząc do drzewa zależności poprzez
apt-get install
, zilustrowane poniższym przykładem. W moim przypadku chciałem zainstalowaćlibmagickwand-dev
:Mam ten błąd:
Pobiegłem
apt-get install
po jedną z wadliwych zależności:Zszedłem w dół drzewa:
z innym błędem:
Jeszcze raz w głąb drzewa:
Z jakiegoś dziwnego powodu to się udało i udało mi się zainstalować oryginalny pakiet, który chciałem
apt-get install libmagickwand-dev
:źródło
Doskonałe odpowiedzi! Ale dzisiaj moja sprawa wydaje się inna niż twoja. Oto moja rada.
Problem:
Nie udało mi się zainstalować apache2 w Ubuntu 10.10.
Rozwiązanie:
Mój sposób polega na dodaniu zależnego pakietu do listy instalacji.
Jeśli „sudo apt-get install apache2” nie powiodło się, spróbuj „ sudo apt-get install apache2 apache2.2-common ”.
Widzieć? Apache2.2-common pochodzi z dziennika błędów poprzedniego kroku.
W końcu odkryłem, że istnieje taki łańcuch zależności:
W przypadku pierwszych 3 pakietów apt-get log powiedział mi, że „nie będzie instalowany”,
ale w przypadku ostatniego pakietu pokazuje „libaprutil1-ldap: Zależy: libaprutil1 (= 1.3.9 + dfsg-3build1), ale należy zainstalować 1.3.9 + dfsg-3ubuntu0.10.10.1”
Mam inną wersję istniejącą w mojej bibliotece, więc:
Teraz jest ok.
źródło
czym są niezaspokojone zależności Błąd
Pakiety Ubuntu to podstawowy sposób, w jaki oprogramowanie jest budowane, wdrażane i instalowane. Bardzo prosto, pakiety są alternatywą dla pobierania, budowania i instalowania oprogramowania od zera. Oferują wiele zalet w zakresie instalacji, usuwania, monitorowania i obsługi interakcji między elementami oprogramowania w porównaniu ze standardowym modelem „build from source”. Ubuntu korzysta ze scentralizowanego systemu pakowania, to znaczy każdy pakiet jest zależny od niektórych innych pakietów. Kiedy instalujemy pakiet, jego zależności zostaną zainstalowane, błąd niezaspokojonych zależności występuje, gdy zależności pakietu nie są dostępne do instalacji
Możliwe przyczyny
Spróbujmy go rozwiązać
Upewnij się, że wszystkie domyślne repozytoria są włączone
-> Możesz łatwo dodać je w
Software Center
-> Edytuj-> Źródła oprogramowania-> Inne źródła-> Dodaj „-> Uruchom
Software Center
.->. W panelu przejdź do
Edit
i wybierzSoftware Sources
.-> Upewnij się, że wszystkie repozytoria są zaznaczone
Zaktualizuj katalog oprogramowania
kliknij ikonę w prawym górnym rogu i wybierz z menu wpis dostępny do aktualizacji
i naciśnij przycisk wyboru
4.typ ctrl+ alt+, taby otworzyć terminal i wpisać
sudo apt-get install -f
5. Wyczyść ostatnio dodane ppa za pomocą ppa-purge ppa-purge
Składnia
Przykład
Ponownie wpisz ctrl+ alt+, taby otworzyć terminal, wpisz
sudo apt-get install -f
i postępuj zgodnie z instrukcjami wyświetlanymi na ekranieJeśli nadal występuje błąd, możesz go zapytać w askbuntu
źródło
... nie zapomnij o `build-dep`
Oprócz powyższych odpowiedzi - muszę przyznać, że jestem zaskoczony, że nikt nie wspomniał o tym podejściu, które zawsze stosowałem jako „srebrną kulę” w dowolnym momencie, w którym napotykałem konflikty apt-get lub nierozwiązane pakiety (a nawet jeśli system jest uparty ... ha!).
EDYCJA:
sudo dpkg -r [package]
zalecane jest używanie, ponieważ ma dość potężną funkcję usuwania. Ponieważapt-get
działa obokdpkg
, co oznacza, żeapt-get
będzie posłusznydpkg
funkcji.Wywołujesz apt-get, aby usunąć nieudany pakiet, który próbujesz zainstalować w systemie, a następnie wywołujesz komendę build-dep, która apt-get pobierze i zainstaluje zależności indywidualnie należące do tego pakietu, aby w ten sposób spełnić paczka wcześniej. Następnie w końcu wywołaj apt-get install:
.... „Ugh! Obróćmy rękę, aż krzykniesz „Wujek!”
To rzadko zdarzało się podczas moich długich lat używania Linuksa, ale rzadko stosowałem to podejście i odniosłem sukces. To jest przykład ostatniej walki, którą miałem miesiąc temu z pakietami
mysql-client/mysql-server
. Po kilkunastu nieudanych próbach zresetowania hasła roota za pomocą mysql-server (nawet przez --skip-grant-tables techqiue, ale jeszcze nie powiodło się), w końcu udało mi się „skręcić ramię Linuksa, aż krzyknęło„ Wujek! ”:apt-get autoclean
jest kluczem do tego rozwiązaniaźródło
Podczas instalacji pakietów i386 w 64-bitowych systemach Ubuntu Multiarch
Jeśli próbujesz zainstalować pakiet, który zależy od wielu pakietów i386, powyższy błąd zależności może również wystąpić, jeśli nie dodasz architektury i386 przez uruchomienie
sudo dpkg --add-architecure i386
polecenia.Przykład:
źródło
vlc
) po zainstalowaniu skype i otrzymałem niezaspokojoną zależność. Wyszłam z podobnej sytuacji, dodając:amd64
na końcu nazwy pakietu, który powoduje błąd. jak wyzdrowiałeś? jakie byłoby najlepsze rozwiązanie?Po wypróbowaniu blisko każdej metody wymienionej w tym wątku (i innych) byłem bliski poddania się. Uaktualniłem mojego Debiana Lenny'ego do Squeeze i przez całe życie nie mogłem dowiedzieć się, dlaczego PHP5, Apache, MySQL itp. Nie chcą instalować. W końcu próbowałem użyć
..i działało bezbłędnie! ( Uwaga, może to zniszczyć pliki konfiguracyjne, więc wykonaj ich kopię zapasową! )
źródło
Dla mnie działało ponowne zainstalowanie zależności. Jest tak w przypadku, gdy zainstalowana wersja jest nowsza niż najnowsza (co pokazuje synaptic). W rzeczywistości jest to równoważne zezwalaniem synaptic na obniżenie pakietu zależności.
Kolejną rzeczą, która działała, jest użycie „aptitude”:
źródło
Jeśli pojawia się taki błąd:
Oznacza to, że pakiety są już zainstalowane, ale nie zainstalowało wszystkich innych pakietów, które muszą działać. Powinieneś być w stanie rozwiązać ten problem, uruchamiając to:
(To polecenie powinno automatycznie zainstalować niezaspokojone zależności).
lub coś takiego (z odpowiednimi pakietami) :
Ale jeśli dojdzie do tego rodzaju błędu:
Następnie możesz wyszukać sposoby ich zainstalowania tutaj lub tutaj .
W powyższym przykładzie powinno być możliwe znalezienie strony takiej jak ta , a następnie skorzystanie z PPA lub zainstalowanie pliku .deb dla wersji 32-bitowej lub .deb dla wersji 64-bitowej .
źródło