Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Tutorial Automatyzacja ponownej instalacji "nieopatrznie" usuniętych pakietów
#1
1
Better response on post Automatyzacja ponownej instalacji "nieopatrznie" usuniętych pakietówMoże się zdarzyć, że przy okazji odinstalowywania jakiegoś programu, czy pakietu usunięte zostaną także takie pakiety, które są niezbędne do prawidłowego działania systemu.

Ostatnio usuwane pakiety mogliśmy sprawdzić wg przepisu podanego tu: https://forum.linuxmint.pl/showthread.php?tid=337, ale instalować po kolei pakiety... pakiet po pakiecie... komu by się chciało, czytać nie ma komu, a co dopiero żmudnie klepać w terminalu Wink

Oto przepis na ułatwienie sobie w takim przypadku życia.

Jest sobie taka oto komenda:
Kod:
awk '$3 == "remove" { print $1, $2, $4 }' /var/log/dpkg.log | tee list-mod
która wyciąga usunięte w tym przypadku paczki z logu /var/log/dpkg.log, tworzy z nich listę i zapisuje w pliku o nazwie "list-mod", który zapisuje w katalogu domowym użytkownika. Ścieżka do pliku wygląda zatem tak:
~/list-mod.

U mnie, jako że kilka dni temu testowałem przyspieszenie sprzętowe w Chromium plik wygląda następująco:
Cytat:$ awk '$3 == "remove" { print $1, $2, $4 }' /var/log/dpkg.log | tee list-mod
2019-06-04 18:14:48 mint-meta-codecs:all
2019-06-04 18:14:48 mint-meta-codecs-core:all
2019-06-04 18:14:48 chromium-codecs-ffmpeg-extra:amd64
2019-06-04 18:30:40 chromium-codecs-ffmpeg:amd64
2019-06-05 18:04:20 chromium-chromedriver:amd64
2019-06-05 18:04:20 chromium-browser-l10n:all
2019-06-05 18:04:20 unity-chromium-extension:amd64
2019-06-05 18:04:20 vdpau-va-driver:amd64
2019-06-05 18:04:20 chromium-browser:amd64
2019-06-05 18:04:21 chromium-codecs-ffmpeg-extra:amd64

Pik można podejrzeć zwykłym edytorem tekstu (bez uprawnień roota - plik jest zapisany w katalogu użytkownika):
[Obrazek: l3uVnSCl.png]
i co istotne, można go edytować, gdyby okazało się, że niekoniecznie wszystko było źle Smile

Najciekawsze jest to, że plik ten możemy wykorzystać do automatycznego zainstalowania ponownie usuniętych pakietów. Oczywiście zmieniając odpowiednio treść polecenia, możemy także odinstalować to, co zostało zainstalowane. Odrobina pomyślunku wskazanaSmile

Ale wróćmy do pakietów usuniętych.

Kod:
sudo apt-get --simulate install $(awk '{ print $3 }' list-mod)

Powyższą komendą możemy sprawdzić czy ponowna instalacja usuniętych pakietów przebiegnie bezproblemowo. Odpowiada za to parametr --simulate.

W moim przypadku sypnęło błędami:
Cytat:$ sudo apt-get --simulate install $(awk '{ print $3 }' list-mod)
[sudo] hasło użytkownika jw:
Czytanie list pakietów... Gotowe
Budowanie drzewa zależności      
Odczyt informacji o stanie... Gotowe
Nie udało się zainstalować niektórych pakietów. Może to oznaczać,
że zażądano niemożliwej sytuacji lub użyto dystrybucji niestabilnej,
w której niektóre pakiety nie zostały jeszcze utworzone lub przeniesione
z katalogu Incoming ("Przychodzące").
Następujące informacje mogą pomóc rozwiązać sytuację:

Następujące pakiety mają niespełnione zależności:
chromium-codecs-ffmpeg : W konflikcie z: chromium-codecs-ffmpeg-extra ale 74.0.3729.169-0ubuntu0.16.04.1 ma zostać zainstalowany
chromium-codecs-ffmpeg-extra : W konflikcie z: chromium-codecs-ffmpeg ale 74.0.3729.169-0ubuntu0.16.04.1 ma zostać zainstalowany
E: Nie udało się naprawić problemów, zatrzymano uszkodzone pakiety.

ale dzięki temu mamy dodatkową informację, co może pójść nie tak (w tym przypadku usunąłem repozytorium, z którego instalowałem pakiety Smile

Samej instalacji (jeśli test przeszedł poprawnie) można dokonać wykonując komendę:
Kod:
sudo apt-get install $(awk '{ print $3 }' list-mod)

Słowniczek:
AWK - język interpretowany, którego główną funkcją jest przetwarzanie danych. Nazwa pochodzi od nazwisk jego twórców Alfreda V. Aho, Petera Weinbergera i Briana Kernighana. Wykonywanie tego skryptu polega na przetwarzaniu danych tekstowych linia po linii i stosowaniu do nich określonych akcji.

$1, 2, 3..., itd. - pola w poszczególnych liniach pliku tekstowego, na podstawie którego AWK przetwarza dane.
Mint 18.3 Cinnamon, kern. 4.10; 64-bit na: Lenovo G500S z CPU Pent. 2020M 2.4 GHz*2; 6 GB RAM; GPU Intel+GeForce 720M; LU#586742


Skocz do:




Użytkownicy przeglądający ten wątek: 1 gości