Przypadkowo usunąłem wszystkie pakiety zaczynające się na jpeg
:
sudo apt-get remove jpeg*
Spieprzyło to wiele rzeczy, usunęło Unity, Firefox, Flash Player itp.
Jakoś udało mi się odzyskać pulpit i jedność, ale wiele rzeczy wciąż jest wadliwych. Na przykład .rpm
pliki i .tag.gz
po prostu w ogóle się nie otwierają.
To, czego chcę, to sposób na naprawienie wszystkiego, co jest nie tak. Coś, co jest odpowiednikiem „instalacji naprawczej” z dyskiem Windows.
Wszelkie wskazówki, ktoś?
Odpowiedzi:
Możesz zainstalować
ubuntu-desktop
zadanie:Spowoduje to zainstalowanie wszystkich usuniętych pakietów standardowego pulpitu Ubuntu. Nie przywróci zainstalowanych pakietów, które nie są częścią standardowego pulpitu (tj. Przeinstaluje Unity i Firefox, ale nie Flash Player).
Aby zainstalować te pakiety, możesz zajrzeć
/var/log/apt/history.log
i zobaczyć dokładnie to, co zostało usunięte.Uwaga: instalacja
ubuntu-desktop^
zadania nie jest tym samym, co instalacjaubuntu-desktop
pakietu . Pierwszy da APT kilka wskazówek, jak rozwiązać zależności między pakietami wirtualnymi, drugi da APT swobodę wyboru pakietów (i zakończy się instalowaniem bezużytecznych rzeczy, takich jakubiquity
).Dlaczego wystąpił problem?
apt-get remove jpeg*
będzie nie usunąć wszystkie pakiety zaczynającjpeg
. Zamiast tego usunie wszystkie pakiety zawierającejpe
ich nazwy. Dzieje się tak, ponieważ apt-get działa z wyrażeniami regularnymi, więc jpeg * oznacza: wszystko zawierające jpe, po którym następuje zero lub więcej g .źródło
tasksel
do usuwania zadania - patrz nieprzyjemny błąd wNajlepszym sposobem na rozwiązanie tego problemu może być ponowna instalacja systemu Ubuntu. (Najpierw wykonaj kopię zapasową dokumentów, nawet jeśli planujesz ponowną instalację bez ponownego formatowania).
Jeśli chcesz spróbować naprawić system na miejscu, spójrz na pliki dziennika menedżera pakietów, aby zobaczyć, które pakiety zostały usunięte, i zainstaluj je ponownie:
/var/log/dpkg.log
(pełne informacje, ale trudne do odczytania)/var/log/apt/history.log
(w skrócie oznacza, że każdy pakiet został usunięty lub w inny sposób zmodyfikowany - prawdopodobnie najlepszy zakład)/var/log/apt/term.log
(jeśli usunąłeś pakietyapt-get
w terminalu, powinno to pokazać to, co wtedy zobaczyłeś, w tym listy pakietów, które chcesz usunąć - więc może to być najlepszy sposób)Ponowna instalacja tylko pakietów, których nazwy zaczynają się od
jpeg
, nie zadziała, ponieważ wiele (prawie na pewno większość) usuniętych pakietów zostało usuniętych, ponieważ polegały na tych pakietach.W przyszłości zalecam uważne sprawdzenie konsekwencji odinstalowania pakietu. Jeśli pracujesz z wiersza polecenia, zawsze będziesz powiadamiany. (O ile nie skorzystasz z tej
-y
opcji, w takim przypadku zazwyczaj nie. Odradzam korzystanie z tej opcji, chyba że wiesz, co robisz, zwłaszcza w przypadku usuwania).Jednym ze sposobów sprawdzenia konsekwencji operacji zarządzania pakietami przeprowadzonej z użyciem
apt-get
, bez ryzyka ichapt-get -s
wystąpienia , jest uruchomienie zamiastsudo apt-get
. To tylko symuluje określone działanie i informuje, na jakie pakiety wpłynie to w rezultacie i jak.źródło
Pracuję
sudo apt-get purge wine*
na Ubuntu 15.10, więc nie ma interfejsu graficznego przy opcji logowania tylko do terminala rozruchowego.Jak zasugerował Eliah Kagan, użyłem informacji z
/var/log/apt/history.log
uruchomienia nano na history.log i stworzyłem prosty skrypt, który zawierałsudo apt-get install
wszystkie wyczyszczone pakiety, które znalazłem w linii:Ale najpierw musiałem ręcznie usunąć tekst między wszystkimi: a także:,
na tym etapie nowy skrypt byłby pomocny, ponieważ paczki były setkami. po tym uruchamiam skrypt i usunąłem kilka
Unable to locate packages
(które ręcznie zainstalowałem). uruchom skrypt ponownie i to wszystko. Wszystko działa dobrze ... na szczęścieźródło
Zainstaluj pakiet ubuntu-desktop
Zainstaluje niezbędne pakiety dla twojego systemu.
źródło
Przypadkowo usunąłem
libssl1.0.0
i moja maszyna została uszkodzona. Aby przywrócić, zrobiłem:cp /var/log/apt/term.log ~/libssl.term.log
vi ~/libssl.term.log
ping google.com
), uruchom ponownie komputer w trybie odzyskiwania i włącz siećcat ~/libssl.term.log | grep ^Removing | sed -e 's/^Removing //g;s/ (.*$//g;/diversion of/d;/dangling symlinks/d' | xargs sudo apt-get -y install
źródło
Oto mały skrypt Pythona, w którym możesz napisać (nieużywalny) ciąg pakietu z uruchomionej deinstalacji masowej
/var/log/apt/history.log
. Wyświetli ciąg, który możesz skopiować wklej do polecenia apt-get install, aby łatwo zainstalować wszystkie usunięte pakiety.źródło