Як ви відстежуєте, які пакунки були встановлені у Fedora (Linux)?


11

(Це запитання дуже схоже на 6338. Було запропоновано розділити з нього, оскільки Fedora та Ubuntu / Debian досить різні, щоб вимагати різних відповідей.)

Оскільки я використовую будь-які установки Fedora, я поступово встановлюю ряд пакетів вище та вище базової установки. Якщо я перевстановлюю або якщо мені потрібно встановити нову машину, зазвичай я хочу перевстановити ці конкретні пакети, і я хочу це зробити швидко, щоб повернутися до роботи з мінімальними клопотами. Наскільки я бачив, всі менеджери пакетів ( yumі pirut) можуть мені сказати, які пакунки встановлені, і всі вони мають журнали (хоча різні для кожного інструменту, що є клопотом). Але жоден з них не може сказати мені, які пакунки у мене євстановлено, на відміну від їх залежностей або оновлень системи. Навіть журнали складні в тому, що я не зовсім впевнений, що мені слід витягти з них, або як їх інтегрувати (у випадку різних інструментів сімейства сімейства). Це означає, що кожного разу, коли я перевстановлюю або навіть просто резервну копію, я не впевнений, як створити цей список.

Я не обов'язково очікую, що будь-який інструмент зробити це для мене, але якщо вони не є, я шукаю обхідні шляхи. Навіть шаблони, з якими потрібно гребувати, хороші правила чи чітке уявлення про те, що саме реєструється, були б корисні. Тут може не бути "найкращої відповіді", але хороші будуть дуже корисні.

Відповіді:


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

Це легке.

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

об / хв -ква


3
У цьому списку перелічено всі пакунки так, але він не розрізняє додані ними та ті, які вже були в системі. Я хочу відслідковувати спеціально встановлені пакети, явно встановлені.
— кварк

Усі пакунки були явно встановлені вами. Вам потрібно буде бути більш конкретним щодо того, що ви хочете зробити, щоб отримати значущу допомогу.
— фонбранд

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

зі сторінок man:

--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", які виконуються в системі після встановлення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.