Відповіді:
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
який видаляє примірник упаковки та всі автоматично встановлені (інакше невикористані) залежності.
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
Коли це встановлено, наступний 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" з "листям":
# 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).