Któregoś dnia poszedłem zainstalować bsnes i bez względu na przyczynę instalacja nie powiodła się. Nie mogę teraz aktualizować, instalować nowych pakietów ani w zasadzie wykonywać żadnych poleceń apt-get, ponieważ wszystkie one próbują przetworzyć ten uszkodzony pakiet i kończą się niepowodzeniem. Próba zainstalowania nowego pakietu również skazuje go na ten sam los. Występuje błąd:
Setting up google-chrome-stable (33.0.1750.152-1) ...
/var/lib/dpkg/info/google-chrome-stable.postinst: 124: /var/lib/dpkg/info/google-chrome-stable.postinst: update-alternatives: not found
dpkg: error processing google-chrome-stable (--configure):
subprocess installed post-installation script returned error exit status 127
Setting up bsnes (0.088-7) ...
/var/lib/dpkg/info/bsnes.postinst: 5: /var/lib/dpkg/info/bsnes.postinst: update-alternatives: not found
dpkg: error processing bsnes (--configure):
subprocess installed post-installation script returned error exit status 127
Errors were encountered while processing:
google-chrome-stable
bsnes
E: Sub-process /usr/bin/dpkg returned an error code (1)
Szukałem w Google i tutaj w Ask Ubuntu, ale nie znalazłem działającego rozwiązania. Często sugerowaną poprawką jest uruchomienie następujących czynności:
sudo apt-get clean && sudo apt-get autoremove
sudo apt-get -f install
sudo dpkg --configure -a
To jednak nie działa. Wszystkie polecenia apt-get kończą się tym samym błędem co powyżej, a polecenie dpkg po prostu nie pomaga. Inną rzeczą, którą często sugerują, aby wyczyścić go za pomocą Synaptic lub wiersza poleceń, co również kończy się niepowodzeniem.
Dzięki za pomoc
źródło
dpkg
nie zawsze pomaga./var/lib/dpkg/info/[package_name].prerm
ale twój post dał mi właściwy kierunek. Zdecydowanie dla zaawansowanych użytkowników jest to jednak ryzykowne !.prerm
i.postrm
pliki rozwiązują problem.Oprócz tych, które już opublikowałeś, istnieje kilka innych poleceń, które mogą być pomocne.
Autoclean usuwa lokalne repozytorium pobranych plików pakietów.
Wymuś instalację / usunięcie pakietów. ☠ Używaj ostrożnie
i
Jak zawsze możesz używać
dpkg
do instalowania, usuwania i czyszczenia pakietów.zainstalować
Usunąć
Oczyścić
źródło
bsnes
.Have ty?dpkg -l |grep bsnes
Więc po kolejnym googlowaniu i naprawdę uważnym przeczytaniu komunikatów o błędach wydaje się, że
dpkg
trzeba go ponownie zainstalować.To, co wskazało, że to był problem (jeśli ktoś to przeszuka i zobaczy),
update-alternatives: not found
to komunikat o błędzie. Gdy tylko dpkg został ponownie zainstalowany, pozostałe pakiety kontynuowały instalację normalnie automatycznie.źródło
Możesz usunąć plik pakietu w tej
/var/lib/dpkg/info/
ścieżce i zaktualizować źródło.Następnie zainstaluj ponownie pakiet
sudo apt-get install [package_name]
Dok
źródło
sudo rm /var/lib/dpkg/info/[pakege_name].*
. W przeciwnym razie usuniesz również pakiety, które zaczynają się od tej samej nazwy. Tak czy inaczej, dzięki za to było to jedyne rozwiązanie, które dla mnieJeśli wszystko inne zawiedzie. Po raz pierwszy zmieniłem katalog na:
następnie usunąłem wszystko za pomocą
.postinst
:następnie zaktualizuj repozytorium
potem wszystko wróciło do normy, kiedy to zrobiłem:
źródło
Jeśli wszystko inne zawiedzie, możesz ręcznie usunąć pakiet
dpkg
. Bieganiesudo dpkg -P bsnes
powinno się oczyścićbsnes
.źródło
dpkg: error processing package libcuda1-340 (--purge): package is in a very bad inconsistent state; you should reinstall it before attempting a removal
W moim przypadku
apt-get install -f
działało. Instalowałem mysql-workbench-communityWcześniej próbowałem
apt autoclean
Widziałem ten błąd dpkg z powodu niektórych brakujących zależności, które można poprawić, instalując w trybie wymuszonym (instalowanie zależności)
źródło
Po uruchomieniu powyżej możesz zainstalować / uaktualnić / usunąć / wyczyścić jak zwykle dla dowolnych pakietów.
źródło