Jak cofnąć apt-get remove?


18

Wiem, że to zabawna sytuacja, ale usunąłem python ze wszystkimi powiązanymi programami z Ubuntu, używając sudo apt-get remove python? Oczywiście mogę ponownie zainstalować Pythona, ale zajmie mi dużo czasu, aby zainstalować wszystkie programy, które usunąłem. Może jest jakieś rozwiązanie?

Dzięki


Dołącz wysiłki badawcze w celu usunięcia głosu z głosowania.
Colyn1337,

Łał! 3-letnie pytanie, które pomaga przywrócić mój komputer. Tak się cieszę, że to było tutaj i znaleziono w google. Dzięki!
Michael Cole

Odpowiedzi:


26

Nie jest to łatwy sposób, ale jeśli spojrzysz na /var/log/apt/history.log, możesz zobaczyć, co zostało usunięte. Po prostu zainstaluj ponownie każdy usunięty pakiet.


2
Właśnie uratowało mi życie!
Sanket Sahu

3
Zarejestrowałem się w usłudze serverfault tylko po to, aby głosować za tym, dzięki.
Phil,

20

Właśnie popełniłem ten błąd, możesz uruchomić poniższe polecenia, aby cofnąć usunięcie pakietów Spowoduje to wyodrębnienie informacji o usuniętych pakietach z pliku dziennika i ich ponowną instalację

echo '#!/bin/bash' > restore
echo sudo apt-get install `grep Remove /var/log/apt/history.log | tail -1 | sed -e 's|Remove: ||g' -e 's|([^)]*)||g' -e 's|:[^ ]* ||g' -e 's|,||g'` >> restore
chmod +x restore 
./restore

ratownik ... powinienem zdać sobie sprawę, że apt remove libboost*to zły pomysł
Wytrwałość

2
Dzięki, uratowałeś mi życie !! Przypomnienie: NIGDY NIE

2
Nie uruchamiaj sudo apt remove python3haha
ThaJay

Cóż, użyłem apt purgewięc zgrać mnie, dobrze, że to była nowa instalacja. Byłoby miło wiedzieć, że kluczowe (dla większości osób) systemy operacyjne, takie jak netplan, wymagają tego. Na pewno odwołuje się do niego na liście usuwania, zanim zapytasz, czy jesteś pewien, ale kto ma czas, aby spojrzeć i upewnić się, kiedy łatwiej jest po prostu uderzyć yklucz i returnsystem w zapomnienie ...
DeeJayh

5

Znalazłem fajną sztuczkę na forach Ubuntu .

Możliwe jest uruchomienie następujących poleceń w terminalu:

awk '!/^Start|^Commandl|^End|^Upgrade:|^Error:/ { gsub( /\([^()]*\)/ ,"" );gsub(/ ,/," ");sub(/^Install:/,""); print}' /var/log/apt/history.log

Spójrz na wynik, a następnie użyj

sudo apt-get install [packages]

i zamień [pakiety] na ostatnią linię pakietów, która została zwrócona (pamiętaj, że może się ona zawijać).


Uratowałeś mi dzień. To naprawdę mi pomogło.
Khamidulla,

1

Wyszukaj wszystkie pakiety, które zostały odinstalowane. Jest przechowywany w /var/log/apt/history.log . Możesz napisać program powłoki, aby zainstalować każdy usunięty pakiet. Napisz w dowolnym edytorze tekstu GNU Emacs, vi, GNU Nano. Wykonaj to przez terminal. Wszystkie programy, które zostały odinstalowane, zostaną ponownie zainstalowane samodzielnie.


0

Aby dodać do odpowiedzi ablackhat, możesz skopiować i wkleić wszystko po ostatnim poleceniu remove /var/log/apt/history.logdo nowego edytora programistów. REGEX zastępuje :.*?,się (ciąg pusty) oraz kopiowanie wszystkich otrzymanych pakietów przestrzeń oddzielona. Następnie uruchomić$ sudo apt-get install <paste>


0

Aktualizacja przywraca większość z nich, resztę .. możesz użyć technik pokazanych powyżej. Aby dokonać aktualizacji wystarczy wpisać „sudo apt-get upgrade”


dlaczego apt-get upgradeponownie instalować pakiety, które zostały celowo usunięte?
Gerald Schneider

Właściwie nie jest to aż tak dalekie od doskonałej odpowiedzi na OP: poczekaj trzy lata i zróbapt-get dist-upgrade
quadruplebucky

-1

Jeśli ty

 apt-get install python

Python zostanie ponownie zainstalowany ze wszystkimi wymaganiami wstępnymi. Zakładam, że wszystkie powiązane programy, o których mówisz?


Zainstalowałem już Python, ale programy, które były od niego zależne, takie jak Zim, GImp i wiele innych, nie zostały przywrócone ((nawet Gedit nie działa
IgorDiy

-1. Nie rozwiązuje pytania OP, ponieważ wszystko, co potrzebuje Pythona, również zostało usunięte.
Magellan
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.