Jestem w sytuacji, w której lista osieroconych pakietów, które należy usunąć, apt-get autoremove
zawiera pakiet, który chcę zachować. Najwyraźniej przypadkowo usunąłem pakiet, który był od niego zależny. Jak mogę teraz oznaczyć pakiet jako wyraźnie pożądany, aby go apt-get autoremove
nie usunąć?
apt
package-management
bluenote10
źródło
źródło
Odpowiedzi:
Posługiwać się
apt-mark
Więc
Teraz
autoremove
go nie usunie.Cofnąć
Teraz
autoremove
usunie pakiet, jeśli nie jest zależny od żadnego innego pakietu.źródło
Kilka kolejnych prób Google'a przyniosło rozwiązanie :
Można albo po prostu zainstalować jawnie:
lub oznaczenie jako instalowane ręcznie przez
apt
nie zostanie ponownie zainstalowany, dane wyjściowe będą wyglądać następująco:źródło
Odpowiedź jest już dobrze udzielona, ale znalazłem sytuację, w której nie chciałem „zaznaczać” wielu paczek (a następnie je odznaczać po
autoremove
).Gdy lista pakietów Państwo chcą do autoremove łatwo zdefiniowane, to można rura /
sed
/xargs
je.Nie mam złożonego przykładu wielu pakietów, ale jeśli mam następujący scenariusz:
i chcę usunąć tylko
linux*
pakiety, mogę to zrobić:Odtąd łatwo jest przekazać je
xargs
jako argumenty wiersza poleceń do prostejapt-get remove -y
:Zwykle podczas używania
xargs
chroniłbym przed spacjami w argumentach (np.find ... -print0 | xargs -0 ...
), Ale ponieważ w nazwach pakietów nie ma spacji, wygodnie jest używać argumentów rozdzielanych znakiem nowej linii.(Pomyślałbym, że w innych sytuacjach, bardziej odpowiednie byłoby „zaznaczenie” wstrzymania, wycofanie pakietów. Można to również zrobić za pomocą wyrażeń regularnych i
xargs
, ale prawdopodobnie jest to nadmierna inżynieria sytuacji).źródło