Jak śledzić, które pakiety zostały zainstalowane w Fedorze (Linux)?

11

(To pytanie jest bardzo podobne do 6338. Sugerowano, aby go oddzielić, ponieważ Fedora i Ubuntu / Debian są wystarczająco różne, aby uzasadnić różne odpowiedzi.)

Kiedy korzystam z dowolnej konfiguracji Fedory, stopniowo instaluję wiele pakietów ponad instalacją podstawową. Jeśli ponownie instaluję lub potrzebuję zainstalować nową maszynę, zwykle chcę ponownie zainstalować te konkretne pakiety i chcę to zrobić szybko, aby wrócić do pracy przy minimalnym wysiłku. O ile widziałem, wszyscy menedżerowie pakietów ( yumi pirut) mogą powiedzieć mi, które pakiety są zainstalowane, i wszystkie mają dzienniki (choć różne dla każdego narzędzia, co jest kłopotliwe). Ale żaden z nich nie może mi powiedzieć, które pakiety mamzainstalowane, w przeciwieństwie do ich zależności lub aktualizacji systemu. Nawet dzienniki są trudne, ponieważ nie jestem do końca pewien, co powinienem z nich wyciągać lub jak je zintegrować (w przypadku różnych narzędzi rodziny apt). Oznacza to, że za każdym razem, gdy ponownie instaluję, a nawet wykonuję kopię zapasową, nie jestem pewien, jak ponownie utworzyć tę listę.

Niekoniecznie oczekuję, że którekolwiek z narzędzi to dla mnie zrobi, ale jeśli nie, szukam obejścia. Przydałyby się nawet wzorce, za którymi należy się posługiwać, dobre ogólne zasady lub jasne wyobrażenie o tym, co dokładnie jest rejestrowane. Być może nie ma tutaj „najlepszej odpowiedzi”, ale dobre byłyby bardzo pomocne.

twaróg
źródło

Odpowiedzi:

3

yum list installedi yum.logpokaże, co zostało zainstalowane, ale nie sądzę, żeby cokolwiek w systemie rozróżniało pakiety, które zdecydowałeś się zainstalować, i te, które zostały zainstalowane jako zależności

inne
źródło
2

Zakładając, że nadal masz /root/install.logplik z oryginalnej instalacji, możesz utworzyć pliki rpm.orig i rpm.curr w ten sposób:

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

Następnie, aby zobaczyć dodane pakiety:

comm -13 rpm.orig rpm.curr

I te usunięte:

comm -23 rpm.orig rpm.curr

Zauważ, że jeśli masz instalację x86_64 , nie będzie odróżniać pakietów 32- i 64-bitowych.


źródło
2

Spróbuj użyć sudo yum history packages-list \*

Pokaże to, co zostało zainstalowane jawnie, a co zostało zainstalowane jako zależność:

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
Francisco
źródło
0

To jest proste.

Po prostu uruchom poniższe polecenie w swojej ulubionej powłoce. Strona podręcznika RPM będzie boleśnie ilustrująca, jeśli zajmiesz się tym głębiej.

rpm -qa

Axxmasterr
źródło
3
Zawiera listę wszystkich pakietów tak, ale nie rozróżnia tych, które dodałem i tych, które były już w systemie. Chcę śledzić konkretnie pakiety, które wyraźnie zainstalowałem.
kwark
Wszystkie pakiety zostały przez Ciebie wyraźnie zainstalowane. Aby uzyskać znaczącą pomoc, musisz bardziej szczegółowo określić, co chcesz zrobić.
vonbrand,
0

Plik /root/install.log powie ci, które pakiety zostały zawarte w początkowej instalacji. Oto szybki skrypt, który porówna zawartość tego pliku z danymi wyjściowymi 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

Plik /root/postinstall.list zawiera to, czego chcesz. Pamiętaj, że pakiety, które są uaktualnioną wersją oryginalnie zainstalowanego pakietu, pojawią się w pliku. Jeśli nie tego chcesz, będziesz potrzebować bardziej wyrafinowanego wzoru w instrukcji sed.

dkaylor
źródło
0

rpm -qa --last

ze stron podręcznika:

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

Przykładowe dane wyjściowe:

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
Dejan
źródło
0

Zakładając, że zawsze używałeś „mniam”, aby zainstalować wszystko, co możesz zrobić:

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

Powinien pokazywać wszystkie polecenia „yum install” wykonane w systemie po instalacji.

Quintesse
źródło