Odpowiedzi:
package-cleanup --quiet --leaves
z pakietu yum-utils wyświetli listę bibliotek, na które inne pakiety nie korzystają. Niestety bywa nieco przesadzona. Na przykład w moim systemie zasugerowałem usunięcie libvirt. Dodanie --exclude-bin
argumentu pomaga. Jeśli jesteś zadowolony z tej sugestii, to aby posprzątać paczki, wykonaj:
# package-cleanup --quiet --leaves --exclude-bin | xargs yum remove -y
DNF, yum zastępujący od Fedory 22, zapewnia także autoremove
podkomendę, która jest wzorowana na apt-get / yum autorove.
Przykłady:
# dnf autoremove
który próbuje usunąć wszystkie automatycznie zainstalowane i w przeciwnym razie nieużywane pakiety zależności - powinien być prawie równoważny z apt-get autoremove
.
# dnf autoremove examplepackage
który usuwa examplepackage i wszystkie jego automatycznie zainstalowane (i poza tym nieużywane) zależności.
Yum ma polecenie autorove od Fedory 19 i jest udokumentowane od Fedory 20 / RHEL 7.
Użycie jest analogiczne do implementacji dnf, np .:
# yum autoremove
lub
# yum autoremove examplepackage
Yum obsługuje opcję konfiguracji zmieniającą domyślne zachowanie remove
podkomendy (np. Przez /etc/yum.conf):
clean_requirements_on_remove=yes
Po ustawieniu tej opcji następna yum remove
próba usunięcia automatycznie zainstalowanych zależności, jeśli nie są one potrzebne innym pakietom.
Możesz także tymczasowo przetestować tę opcję za pomocą:
# yum --setopt=clean_requirements_on_remove=1 remove examplepackage
(Dla wersji Fedory, w której podkomenda autora nie jest dostępna i / lub clean_requirements_on_remove
nie działa.)
Chociaż podczas instalacji pakietów zainstalowane są zależności jako takie (wydaje się, że jest to stosunkowo nowa funkcja rpm / yum).
Możesz znaleźć niepotrzebne zależności poprzez:
$ package-cleanup --leaves -q --all \
| xargs repoquery --installed --qf '%{nvra} - %{yumdb_info.reason}' \
| grep -- '- dep' \
| cut -d' ' -f1 > tmp
Ta linia poleceń jest inspirowana skryptem fenris02 .
Po sprawdzeniu tmp
(i być może kuracji) możesz je usunąć poprzez coś takiego:
# xargs yum remove < tmp
adobe-release
przezyum localinstall
musisz zainstalować wtyczkę yum „remove-with-leaves”:
# yum install yum-plugin-remove-with-leaves.noarch
po zainstalowaniu:
# yum remove --remove-leaves package
powodzenia!
yum-plugin-remove-with-leaves.noarch
zainstalowanego pakietu do użyciapackage-cleanup
# package-cleanup --orphans >/tmp/junk
edytuj /tmp/junk
plik i usuń pierwszy wiersz informacyjny z wiersza poleceń, wprowadź:
for file in `cat /tmp/junk`
do
yum remove $file
done
apt-get autoremove
robi. apt-get (8) mówi: „autorove służy do usuwania pakietów, które zostały automatycznie zainstalowane, aby spełnić zależności dla niektórych pakietów i które nie są już potrzebne”.
UWAGA: Ta odpowiedź jest poprawna, ale dotyczy tylko RHEL 7+ i Fedory 20+ (gdzie autorove został dodany jako nowa funkcja).
# yum autoremove
Potwierdź, aby usunąć wybrane pakiety.
Opierając się na odpowiedzi Larry'ego Mohra :
package-cleanup --orphans | sed '1d' | sed '/^ * /d' | sed '/Loading mirror speeds from cached hostfile/d' | xargs sudo yum remove
(Jeśli zastanawiasz się, obejmuje pomijanie w celu uzyskania najszybszego kopii lustrzanej).
W Fedorze pakiet osierocony oznacza brak repozytoriów kandydatów do jego aktualizacji!
Jeśli pakiety osierocone zostały wygenerowane przez ciebie, wyłącz yum.repos.d / some.conf.
yum distro-sync
W przypadku innych pakietów osieroconych polecenie może być niebezpieczne.
yum remove $(package-cleanup --orphans)
lub po prostu użyj polecenia bezpieczeństwa.
yum remove name-of-page
Innym sposobem, aby nie powodować tych problemów, jest korzystanie z transakcji.
Po skonfigurowaniu systemu podstawowego, podczas instalacji za pomocą yum, tworzy transakcje. Kiedy zamierzasz usunąć rzeczy, wycofaj transakcje.
netbeans-platform
a czyszczenie pakietów zawiera listę niektórych rzeczy, ale w rzeczywistości nie ma wcześniej zainstalowanychnetbeans-platform
zależności (używając Fedory 17).