11

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

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

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

7 ответов7

3

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

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

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

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

Это легко.

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

об / мин

0

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .