Ответы:
package-cleanup --quiet --leaves
из пакета yum-utils будут перечислены пакеты библиотеки, на которые не полагаются другие пакеты. К сожалению, это, как правило, немного переусердствовать. Например, в моей системе было предложено удалить libvirt. Добавление --exclude-bin
аргумента помогает. Если вас устраивает это предложение, то для очистки пакетов выполните:
# package-cleanup --quiet --leaves --exclude-bin | xargs yum remove -y
DNF, замена yum начиная с Fedora 22, также предоставляет autoremove
подкоманду, которая моделируется после автоматического удаления apt-get / yum.
Примеры:
# dnf autoremove
который пытается удалить все автоматически установленные и в противном случае неиспользуемые пакеты зависимостей - должен быть в значительной степени эквивалентен apt-get autoremove
.
# dnf autoremove examplepackage
который удаляет examplepackage и все его автоматически установленные (и не используемые) зависимости.
Yum имеет команду autoremove начиная с Fedora 19 и документируется начиная с Fedora 20 / RHEL 7.
Использование аналогично реализации dnf, например:
# yum autoremove
или
# yum autoremove examplepackage
Yum поддерживает опцию config для изменения поведения remove
подкоманды по умолчанию (например, через /etc/yum.conf):
clean_requirements_on_remove=yes
Когда это установлено, next yum remove
также пытается удалить автоматически установленные зависимости, если они не нужны другим пакетам.
Вы также можете временно проверить эту опцию с помощью чего-то вроде:
# yum --setopt=clean_requirements_on_remove=1 remove examplepackage
(Для версий Fedora, где подкоманда yum autoremove недоступна и / или clean_requirements_on_remove
не работает.)
Хотя во время установки пакетов установленные зависимости помечаются как таковые (кажется, это относительно новая функция rpm / yum).
Вы можете найти ненужные зависимости через:
$ package-cleanup --leaves -q --all \
| xargs repoquery --installed --qf '%{nvra} - %{yumdb_info.reason}' \
| grep -- '- dep' \
| cut -d' ' -f1 > tmp
Эта командная строка вдохновлена сценарием fenris02 .
После проверки tmp
(и, возможно, курации) вы можете удалить их через что-то вроде этого:
# xargs yum remove < tmp
adobe-release
черезyum localinstall
вам нужно установить плагин yum "remove-with-leaves":
# yum install yum-plugin-remove-with-leaves.noarch
после установки:
# yum remove --remove-leaves package
удачи!
yum-plugin-remove-with-leaves.noarch
установленный пакет для использованияpackage-cleanup
# package-cleanup --orphans >/tmp/junk
отредактируйте /tmp/junk
файл и удалите первую строку, которая является информационной, из командной строки введите следующее:
for file in `cat /tmp/junk`
do
yum remove $file
done
apt-get autoremove
делает. apt-get (8) говорит: «autoremove используется для удаления пакетов, которые были автоматически установлены для удовлетворения зависимостей для некоторых пакетов и которые больше не нужны».
ПРИМЕЧАНИЕ. Этот ответ является правильным, но он применим только к RHEL 7+ и Fedora 20+ (где автоматическое удаление было добавлено в качестве новой функции).
# yum autoremove
Просто подтвердите удаление выбранных пакетов.
Опираясь на ответ Ларри Мора :
package-cleanup --orphans | sed '1d' | sed '/^ * /d' | sed '/Loading mirror speeds from cached hostfile/d' | xargs sudo yum remove
(Если вам интересно, включает в себя пропуск для самого быстрого зеркала.)
В Fedora бесхозный пакет означает отсутствие потенциальных репозиториев для обновления!
Если вы создали сгенерированные пакеты, отключите yum.repos.d / some.conf.
yum distro-sync
В других бесхозных пакетах эта команда может быть опасной.
yum remove $(package-cleanup --orphans)
или просто используйте команду безопасности.
yum remove name-of-page
Другой способ не вызывать эти проблемы - использовать транзакции.
После настройки базовой системы, при установке с использованием yum, создаются транзакции. Когда вы намереваетесь удалить вещи, откат транзакций.
netbeans-platform
и очистки пакетов, перечислены некоторые вещи, но на самом деле нет ни одной из ранее установленныхnetbeans-platform
зависимостей (с использованием Fedora 17).