Як ви відстежуєте, які пакунки були встановлені у 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.