Czy w przypadku konkretnego pakietu mogę dowiedzieć się, dlaczego został zainstalowany?
Czy mogę zobaczyć, czy jest instalowany ręcznie, czy też jest instalowany jako zależność od innego pakietu? A może jest zainstalowany jako część dystrybucji?
Czy w przypadku konkretnego pakietu mogę dowiedzieć się, dlaczego został zainstalowany?
Czy mogę zobaczyć, czy jest instalowany ręcznie, czy też jest instalowany jako zależność od innego pakietu? A może jest zainstalowany jako część dystrybucji?
Odpowiedzi:
Szybkim rozwiązaniem jest wprowadzenie następującego polecenia w terminalu:
aptitude why $package
lub jeśli interesuje Cię tylko ostateczna przyczyna:
aptitude why $package --show-summary
Zamień pakiet $ na nazwę pakietu i może być konieczne wcześniejsze zainstalowanie aptitudepakietu.
Oto wyjście, które możesz uzyskać aptitude why aspell --show-summary
Packages requiring aspell:
inkscape
Aby uzyskać więcej szczegółów, uruchomiłbyś aptitude why aspell. Przykładowy wynik możesz przeczytać w następujący sposób: „Zainstalowałeś ręcznie inkscape, co wymaga libgtkspell, co wymaga libenchantic2a, co wymaga aspell”. ( iznaczniki wskazują zainstalowane pakiety; Aznaczniki wskazują automatycznie zainstalowane pakiety).
i inkscape Depends libgtkspell0 (>= 2.0.10)
i A libgtkspell0 Depends libenchant1c2a (>= 1.6.0)
i A libenchant1c2a Depends aspell-en | myspell-dictionary | aspell-dictionary | ispell-dictionary | hunspell-dictionary
i A aspell-en Depends aspell (>= 0.60.3-2)
Wreszcie następujące polecenie
apt-cache rdepends --installed $package
wyświetla listę innych pakietów zainstalowanych na twoim komputerze, które zależą bezpośrednio od pakietu $ . Możesz dodać --recurseopcję, aby wyświetlić listę wszystkich pakietów, które zależą bezpośrednio lub pośrednio od niego.
apt-cache rdepends --recurse $packageprawdopodobnie daje zbyt wiele pakietów. Dodałbym --installedopcję ograniczenia do zainstalowanych pakietów. -iopcja ogranicza się do pakietów poprzedzających i powiązanych. Ale pakiet może zostać zainstalowany, ponieważ jest zalecany przez inny pakiet. Uwzględnienie takich pakietów związanych z rekomendacjami, przypuszczam, że dałoby to właściwe:apt-cache rdepends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances --installed --recurse $package
apt-cache rdepends --no-{suggests,conflicts,breaks,replaces,enhances} --installed --recurse $package
Szybkie i krótkie uzasadnienie, dlaczego dany pakiet został zainstalowany, można znaleźć, wpisując następujące polecenie w terminalu ( Applications -> Accessories -> Terminal):
aptitude why <package-name>
Zastąpić nazwą pakietu jesteś zainteresowany Na przykład, wpisując. aptitude why libgoo-canvas-perlWyprowadza następujące:
i shutter Suggests libgoo-canvas-perl
Zasadniczo oznacza to, że pakiet shutterw tym przypadku sugeruje libgoo-canvas-perlinstalację. Pisząc aptitude why shutter, mogę przejść do łańcucha zależności.
Istnieje jednak zastrzeżenie. Często zauważam, że uzdolnienia znajdują najbardziej prawdopodobne wytłumaczenie dla sytuacji, która może nie być rzeczywistą sprawą, ale mimo to da ci wskazówkę, by szukać dalej.
W moim przypadku shuttersugeruje libgoo-canvas-perl- jednak sugerowane pakiety nie są domyślnie instalowane automatycznie. Niemniej jednak, wspomina to „doświadczenie”, ponieważ nie mogę edytować zrzutów ekranu, dzięki shutterktórym ręcznie instalowałemligbgoo-canvas-perl
Na koniec możesz dowiedzieć się, czy pakiet został zainstalowany automatycznie (co oznacza, że system zarządzania pakietami decyduje o tym, że jest to obowiązkowe, biorąc pod uwagę zależności i rekomendacje innych pakietów, których zainstalowanie poprosiłeś), uruchamiając następującą komendę.
aptitude show <package-name>
Spowoduje to wyświetlenie wiersza jak poniżej (3. wiersz wyniku):
Automatically installed: no
Aby uzyskać więcej informacji, uruchom info aptitude(w terminalu) lub odwiedź stronę wiki Aptitude
Aby dowiedzieć się, kiedy konkretny pakiet został zainstalowany, istnieją 2 opcje:
Install(uwaga na przypadek), aby wyświetlić wszystkie wpisy dotyczące instalacji. Jednak pokaże to tylko pakiety zainstalowane przy użyciu SynapticUruchom następujące polecenie w terminalu. Spowoduje to przeszukanie dzienników dpkg w poszukiwaniu wpisów historii instalacji. Istnieje jednak maksymalny limit ilości przechowywanych dzienników, więc jeśli pakiet, którego szukasz, został zainstalowany dawno temu, możesz go nie znaleźć. Więcej informacji tutaj
zcat -f /var/log/dpkg.log* | grep "\ install\ " | grep -i <package-name>
zcat -f /var/log/dpkg.log* | grep -i PackageName | egrep “\ install\ |\ upgrade\ “
Tak, możesz i jest to dość oczywiste polecenie. Zakładając, że masz zainstalowane aptitude, możesz otworzyć typ reklamy okna terminala:
aptitude why package
To powinno dać listę pakietów, które zależą od tego konkretnego pakietu. Jeśli jest to ręcznie zainstalowany pakiet, powie coś w stylu „Nie można znaleźć powodu, aby zainstalować pakiet”.
Oto prosty sposób, na którym nie można polegać aptitude, który 10.10 nie jest już domyślnie wysyłany.
Otwórz Synaptic i spróbuj go usunąć.
Jeśli pojawi się okno dialogowe z prośbą o usunięcie innych pakietów, są to pakiety, które (rekurencyjnie) zależą od niego.
apt-get remove package_name_goes_here -s
Ponownie, pakiety, które zostałyby usunięte, to wszystkie te, które (rekurencyjnie) zależą od tego. ( -sParametr mówi, apt-getaby nie usuwać pakietu.)
y/Nżądanie potwierdzenia, jeśli literówka -s. Dodałem jednak ostrzeżenie.