Ubuntu i Debian używają pakietów, aby dodać do możliwości systemu, pozwalając użytkownikom zrobić więcej ze swoimi maszynami. Jednakże, tak wspaniały jak ten system pakietów jest, rzeczy wciąż mogą się popsuć. Czy to zła instalacja, zła konfiguracja, czy też coś z zewnątrz zmodyfikowało pliki po instalacji, pakiety mogą czasami pójść źle i przestać działać, co czyni je „uszkodzonymi”. Może to również wpłynąć na apt-get, wbudowany menedżer pakietów, co może doprowadzić do tego, że nie będziemy w stanie zainstalować żadnych dodatkowych pakietów, zaktualizować ich lub nawet całkowicie usunąć.
W tym poradniku omówimy kilka metod naprawy uszkodzonych pakietów zarówno w Ubuntu 16.04, jak i w Debianie 9. Ponieważ problem ten może wystąpić z kilku powodów, istnieje kilka rozwiązań, z których niektóre mogą lub nie mogą działać na twoim komputerze. Dlatego najlepiej jest sprawdzić, który konkretnie pakiet się zepsuł i dlaczego, co pomoże ci zdecydować, którą metodę zastosować najpierw.
Table of Contents
Metoda 1: Użycie apt-get
Więcej niż nie, zepsuty pakiet, który zepsuł się po zainstalowaniu może być stosunkowo łatwy do naprawienia, dzięki wbudowanemu narzędziu wewnątrz apt-get. Wykonanie następujących poleceń spróbuje naprawić wszystkie uszkodzone pakiety zainstalowane w systemie:
sudo apt-get update --fix-missing
sudo apt-get install -f
(opcja -f jest skrótem od fix-broken.)
Spróbuj i zobacz, czy pierwsza komenda rozwiąże twój problem, zanim wykonasz drugą. Daj mu kilka chwil, aby spróbował naprawić wszelkie błędy, które może znaleźć. Jeśli to zadziała, spróbuj użyć pakietu, który był uszkodzony – prawdopodobnie będzie już naprawiony. W przypadku, gdy nadal nie jest naprawiony, przejdź do następnego rozwiązania poniżej.
Metoda 2: Korzystanie z dpkg i apt-get
To rozwiązanie pomoże, jeśli pakiet oprogramowania złamał podczas instalacji. Możesz spróbować użyć poprzedniej metody przed kontynuowaniem, ponieważ może to pomóc. Po pierwsze, wyczyścimy apt-get i spróbujemy użyć dpkg do skonfigurowania pakietów, które tego potrzebują:
sudo dpkg --configure -asudo apt-get cleansudo apt-get update
Po tym, zobacz, czy pakiet został naprawiony. Jeśli nie, być może trzeba będzie usunąć pliki blokady. Pliki blokady są używane do utrzymywania zasobów dostępnych dla niektórych programów – pomaga to zapobiec dostępowi innych programów do plików w tym samym czasie. Można to zrobić, po prostu usuwając listę lockfile:
sudo rm /var/lib/apt/lists/lock
Po tym, spróbuj uruchomić powyższe polecenia jeszcze raz. Stamtąd, spróbuj ponownie zainstalować pakiet, aby sprawdzić, czy można go teraz pomyślnie zainstalować.
Metoda 3: Korzystanie z dpkg do siłowego usuwania
Czasami, w rzadkich przypadkach, powyższe polecenia nie będą działać, a uszkodzony pakiet nie będzie można naprawić. W tym przypadku, będziesz musiał usunąć pakiet ręcznie i z użyciem siły. Ta metoda wymaga, abyś już wiedział, który pakiet jest uszkodzony.
Możesz najpierw spróbować usunąć problematyczny pakiet normalnie przez apt-get wpisując następującą komendę:
sudo apt-get remove
Prawdopodobnie się nie uda, ale warto spróbować przed usunięciem go na siłę.
Zależnie od błędów, które otrzymasz podczas próby usunięcia pakietu normalnie, możesz być w stanie zidentyfikować uszkodzony pakiet używając dpkg i grep:
dpkg -l | grep ^..r
Ta komenda wylistuje wszystkie pakiety, następnie grep wylistuje wszystkie wyniki zawierające flagę 'r’ w trzecim polu, co oznacza „reinst-required” (wymagana reinstalacja). Jeśli pojawi się uszkodzony pakiet, będziesz mógł go usunąć.
Wykonaj następującą komendę, aby siłą usunąć pakiet z twojego komputera. Nie zapomnij wpisać swojego hasła, aby autoryzować usunięcie. Zastąp je nazwą uszkodzonego pakietu.
sudo dpkg --remove --force-remove-reinstreq
Gdy to zrobisz, wyczyść i zaktualizuj apt-get:
sudo apt-get cleansudo apt-get update
Po tym, spróbuj zainstalować pakiet od nowa. Powinien teraz zainstalować się normalnie.
Inne rozwiązania
Te metody są najlepszymi sposobami na naprawienie lub usunięcie uszkodzonego pakietu z twojego systemu – ale, to czasami nie wystarczy. W rzadkich przypadkach, system nie będzie widział uszkodzonego pakietu w ogóle, ale nadal będzie uniemożliwiał apt-get od normalnego funkcjonowania. W takich przypadkach, ręczne przejście i usunięcie plików jest zazwyczaj najlepszym rozwiązaniem. Jednakże, proces usuwania tych plików różni się w zależności od pakietu i może być ryzykowny. Dlatego spróbuj tych rozwiązań najpierw przed próbą usunięcia plików z systemu.
Mając nadzieję, że stosując się do tych metod, będziesz miał pomyślnie naprawione lub usunięte wszelkie uszkodzone pakiety znalezione w systemie. Oczywiście, nie musisz naprawiać uszkodzonych pakietów samodzielnie jeśli korzystasz z jednej z naszych usług Managed Linux VPS, w tym przypadku możesz po prostu poprosić naszych ekspertów Linux adminów aby zrobili to za ciebie. Są oni dostępni 24/7, i pomogą ci naprawić uszkodzone pakiety natychmiast.