Dla każdego zainstalowanego pakietu chciałbym wiedzieć, które pakiety zostaną zainstalowane, jeśli go odinstaluję. Przykładem danych wyjściowych, których potrzebuję, jest ( package: list of deps
):
abc: foo bar
bcd: baz abc
bdd: baz fuubar
Dodać
Jeśli sprawdzę, co naprawdę zostanie usunięte, jeśli usunę pakiet ppp
za pomocą apt-get
:
$ echo $(apt-get --dry-run remove ppp | grep '^Remv ' | cut -d' ' -f2)
gnome-ppp mint-meta-xfce network-manager-pptp-gnome network-manager-pptp wvdial pppoeconf pppoe pptp-linux pppconfig ppp
Widzę, że różni się od tego, co apt-cache
daje mi program (który moim zdaniem nie obejmuje zależności rekurencyjnych):
$ apt-cache show ppp | grep '^Breaks: '
Breaks: network-manager (<= 0.8.0.999-1), network-manager-pptp (<= 0.8.0.999-1), pppdcapiplugin (<= 1:3.9.20060704+dfsg.1-1)
Dołącz 2
Czy dpkg --get-selections | cut -f1
to niezawodny sposób na uzyskanie listy zainstalowanych pakietów do iteracji?
apt-get --dry-run remove
wygląda w zasadzie poprawnie. Może brakować niektórych automatycznie zainstalowanych pakietów, które są potrzebne tylko w przypadku automatycznie zainstalowanych pakietów, które są potrzebne tylko dla usuniętego pakietu. Czy dlatego nie uważasz, że to odpowiednia odpowiedź?Odpowiedzi:
Zadałeś tutaj kilka różnych pytań, mam nadzieję, że mogę przynajmniej pomóc w jednym lub dwóch.
Aby wyświetlić listę wszystkich zainstalowanych pakietów, użyj,
dpkg
aby wyprowadzić listę rozdzieloną polamiAby uzyskać listę pakietów, bez dodatkowych pól, aby można było przesłać ją gdzie indziej.
Na przykład, jeśli chcę usunąć stare jądro,
Najłatwiejszym sposobem przejścia przez wszystkie niepotrzebne zależności jest użycie
debfoster
. Działa interaktywnie i przechodzi przez to, co chcesz, ich zależności i może usunąć lub wymienić, co nie jest zależnością rekurencyjną.Aby wyświetlić wszystkie rekurencyjne zależności określonego pakietu,
Po wykonaniu
debfoster
możesz również sprawdzić wszystkie zależności, które posiada pakiet,Naprawdę świetny sposób na wyświetlenie listy „osieroconych” pakietów
deborphan
. Uruchomdeborphan
bez opcji, a wyświetli się lista wszystkich „osieroconych” pakietów. „Osierocony” to pakiet, od którego nic nie zależy, a nie został on wyraźnie zainstalowany.Lubię też czyścić wszelkie „osierocone” pakiety po nowej instalacji. Po usunięciu określonych pakietów możesz uzyskać wszystko, czego brakuje
apt-get autoremove --purge
,W końcu czasem tego nie robisz
--purge
i kończysz na „resztkach” pakietu, nowsze wersjeapt-get
mogą je automatycznie usunąć. Aby usunąć wszystkie „resztki” z odinstalowanych pakietów, uruchom:Jeśli nie masz nowej wersji
apt-get
, zawsze możesz je usunąć za pomocą tych poleceń. Występują błędy, jeśli nie istnieją żadne „resztkowe” pliki, wygląda na to, że autoclean może czasami pomijać niektóre pliki.źródło
wyświetli (między innymi) listę tych zależności (środowiska wykonawczego). Zazwyczaj jest to wystarczające, chyba że podajesz je do maszyny w celu dalszego przetwarzania. Jeśli chcesz mieć dokładnie taki format, jaki podałeś, prawdopodobnie będziesz musiał napisać skrypt.
źródło
apt-get remove -s packagename
. Lista wszystkich zainstalowanych pakietów jest po prostudpkg -l
.apt-get remove -s packagename
!Myślę, że musisz kontynuować i stworzyć pętlę dla tego samego:
Oczywiście usuń nagłówki.
źródło
apt-cache depends --recurse libtext