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

11

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

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

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

кварк
источник

Ответы:

3

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

theotherreceive
источник
2

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

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

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

comm -13 rpm.orig rpm.curr

И те удалены:

comm -23 rpm.orig rpm.curr

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


источник
2

Попробуйте использовать 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

Это легко.

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

об / мин

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

Файл /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.

dkaylor
источник
0

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

Предполагая, что вы всегда использовали «yum» для установки всего, что вы можете сделать:

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

Он должен показать вам все команды "yum install", выполненные в системе после установки.

Quintesse
источник