Как вы отслеживаете, какие пакеты были установлены в Fedora (Linux)?

7235
quark

(Этот вопрос очень похож на 6338. Было предложено отделить его от него, поскольку Fedora и Ubuntu / Debian достаточно различны, чтобы гарантировать разные ответы.)

Поскольку я использую любую установку Fedora, я постепенно устанавливаю несколько пакетов сверх базовой установки. Если я переустанавливаю или мне нужно установить новую машину, я обычно хочу переустановить эти конкретные пакеты и хочу сделать это быстро, чтобы вернуться к работе с минимальными хлопотами. Насколько я видел, все менеджеры пакетов ( yumи pirut) могут сказать мне, какие пакеты установлены, и у них у всех есть журналы (хотя разные для каждого инструмента, что является проблемой). Но никто из них не может сказать мне, какие пакеты у меня естьустановлен, в отличие от их зависимостей или системных обновлений. Даже журналы хитры в том, что я не совсем уверен, что мне следует извлекать из них или как их интегрировать (в случае различных инструментов семейства apt). Это означает, что каждый раз, когда я переустанавливаю или даже просто делаю резервную копию, я не уверен, как заново создать этот список.

Я не обязательно ожидаю, что какой-либо инструмент сделает это для меня, но если они этого не делают, я ищу обходные пути. Даже шаблоны для поиска, хорошие эмпирические правила или четкое представление о том, что именно регистрируется, были бы полезны. Здесь не может быть «лучшего ответа», но хорошие будут очень полезны.

11

7 ответов на вопрос

3
theotherreceive

yum list installedи yum.logпокажет, что было установлено, но я не думаю, что что-то в системе различает пакеты, которые вы выбрали для установки, и пакеты, которые были установлены как зависимости

2

Предполагая, что у вас все еще есть /root/install.logфайл из исходной установки, вы можете создать файлы rpm.orig и rpm.curr таким образом:

cd /root rpm -qa --qf '%\n' | sort -u > rpm.curr awk '($1=="Installing")' install.log | sort -u > rpm.orig 

Затем, чтобы увидеть добавленные пакеты:

comm -13 rpm.orig rpm.curr 

И те удалены:

comm -23 rpm.orig rpm.curr 

Обратите внимание, что если у вас установлена x86_64, она не скажет разницы между 32- и 64-битными пакетами.

2
Francisco

Попробуйте использовать sudo yum history packages-list \*

Он покажет, что было установлено явно, а что установлено как зависимость:

ID | Action(s) | Package  ------------------------------------------------------------------------------- 47 | Dep-Install | cairomm-1.8.0-2.1.el6.x86_64  47 | Dep-Install | glibmm24-2.22.1-1.el6.x86_64  47 | Install | gnome-system-monitor-2.28.0-11.el6.x86_64 
0
Axxmasterr

Это легко.

Просто запустите приведенную ниже команду в вашей любимой оболочке. Мануальная страница для RPM будет болезненно иллюстративной, если вам нужно глубже погрузиться в это.

об / мин

В нем перечислены все пакеты да, но он не различает те, которые я добавил, и те, которые уже были в системе. Я хочу отслеживать конкретно пакеты, которые я явно установил. quark 14 лет назад 3
Все пакеты были установлены вами. Чтобы получить значимую помощь, вам нужно быть более точным в отношении того, что вы хотите сделать. vonbrand 11 лет назад 0
0
dkaylor

Файл /root/install.log сообщит вам, какие пакеты были включены в первоначальную установку. Вот быстрый скрипт, который будет сравнивать содержимое этого файла с выводом rpm -qa:

rpm -qa | sort > /root/postinstall.list for P in `sed -n 's/Installing \(.*\)/\1/p' </root/install.log` do sed -ie "/$P/d" /root/postinstall.list done 

Файл /root/postinstall.list содержит то, что вы хотите. Обратите внимание, что пакеты, которые являются обновленной версией первоначально установленного пакета, появятся в файле. Если это не то, что вам нужно, вам понадобится более сложный шаблон в выражении sed.

0
Dejan

rpm -qa --last

из справочных страниц:

--last Orders the package listing by install time such that the latest packages are at the top. 

Образец вывода:

mdadm-3.2.2-9.el6 Mon 12 Dec 2011 10:06:17 AM EST libdrm-2.4.25-2.el6 Mon 12 Dec 2011 09:54:51 AM EST tcp_wrappers-libs-7.6-57.el6 Mon 12 Dec 2011 09:54:50 AM EST 
0
Quintesse

Assuming you always used "yum" to install everything you can do:

sudo yum history info \* | grep "^Command Line : install" 

It should show you all "yum install" commands performed on the system after installation.

Похожие вопросы