Список установленных пакетов верхнего уровня в Fedora

9

Я использовал yum для вывода списка всех установленных пакетов:

yum list installed

Теперь мне нужно перечислить только пакеты верхнего уровня, т. Е. Если пакет является зависимостью от другого, он не должен отображаться. ГномаУстановка и удаление программного обеспечения может сделать это, но мне нужен вывод в терминале.

Я проверил yum manual, но не смог найти переключатель для этого.

mmonem
источник

Ответы:

11

Вы можете использовать утилиту package-cleanup, которая является частью yum-utils. Помимо поиска пакетов, которые недоступны в текущих репозиториях yum, поиска пакетов с нарушенными зависимостями, удаления старых ядер и поиска дублированных пакетов, он также может найти пакеты, от которых не зависят другие пакеты. Это так называемые листья. Делать

yum install yum-utils

чтобы получить пакет очистки и

package-cleanup --leaves --all

чтобы получить список всех листьев.

fschmitt
источник
Терминология Debian / Ubuntu для этого - сироты .
Чепанг
2
@ Чепанг, это не правильно - не все листья не используются. И не все сиротские пакеты обязательно оставляют. Под "потерянными" пакетами в терминологии Debian подразумевается: ранее как зависимые (включая транзитивные зависимости) установленные пакеты, которые теперь не нужны, поскольку установленные пакеты с явно заданными именами теперь удаляются.
maxschlepzig
2

Вы можете использовать команду repoquery(часть пакета yum-utils), чтобы получить эту информацию:

$ repoquery --installed --qf '%{n} - %{yumdb_info.reason}' --all \
    | grep 'user$' | cut -f1 -d' '

В нем перечислены только те пакеты, которые вы установили самостоятельно, а не те, которые являются частью базовой установки. В зависимости от вашего варианта использования это то, что вы хотите или нет.

maxschlepzig
источник
Этот выглядит очень полезным. Спасибо! Важно отметить, что пакеты перечислены без версий и .i686 или .noarch или чего-либо подобного, поэтому перед установкой yum не требуется подгонка или модификация.
gaoithe