YUM History
Yum (Yellowdog Updater, Modified) jest otwartym narzędziem do zarządzania pakietami rpm. Zapewnia automatyczne rozwiązywanie zależności pomiędzy pakietami, a także zautomatyzowany mechanizm aktualizowania oprogramowania. Yum, poza szeroko znanymi komendami (install, remove, update, remove, provides, search), od wersji 3.2.25 posiada także opcję history. Yum history jest użytecznym narzędziem w sytuacji, gdy chcemy na przykład cofnąć niepożądane skutki […]
Yum (Yellowdog Updater, Modified) jest otwartym narzędziem do zarządzania pakietami rpm. Zapewnia automatyczne rozwiązywanie zależności pomiędzy pakietami, a także zautomatyzowany mechanizm aktualizowania oprogramowania. Yum, poza szeroko znanymi komendami (install, remove, update, remove, provides, search), od wersji 3.2.25 posiada także opcję history. Yum history jest użytecznym narzędziem w sytuacji, gdy chcemy na przykład cofnąć niepożądane skutki działania yum. W tym artykule postaram się zaprezentować podstawowe funkcjonalności wspomnianej komendy.
yum history i yum history list
Yum history pozwala na wgląd w ostatnie operacje wykonane przez narzędzie yum.
[root@yum_history ~]# yum history Loaded plugins: fastestmirror, langpacks ID | Login user | Date and time | Action(s) | Altered ------------------------------------------------------------------------------- 9 | osboxes.org <osboxes> | 2018-10-21 12:30 | Install | 4 8 | osboxes.org <osboxes> | 2018-10-21 12:10 | Install | 12 7 | osboxes.org <osboxes> | 2018-10-21 12:07 | Install | 12 6 | osboxes.org <osboxes> | 2018-10-21 12:05 | Install | 5 5 | osboxes.org <osboxes> | 2018-10-21 10:48 | Update | 5 4 | osboxes.org <osboxes> | 2018-10-21 10:33 | Update | 2 3 | osboxes.org <osboxes> | 2018-10-21 09:30 | I, U | 12 < 2 | osboxes.org <osboxes> | 2018-10-21 09:09 | Install | 1 > 1 | System <unset> | 2018-09-09 16:23 | Install | 1362 history list
Natomiast yum history list poszerza funkcjonalność yum history, umożliwiając wgląd do całej historii operacji lub tylko wybranych operacji na pakietach. Aby wylistować wszystkie operacje yum dla kernela, wykonujemy:
[root@yum_history ~]# yum history list kernel Loaded plugins: fastestmirror, langpacks ID | Login user | Date and time | Action(s) | Altered ------------------------------------------------------------------------------- 2 | osboxes.org <osboxes> | 2018-10-21 09:09 | Install | 1 1 | System <unset> | 2018-09-09 16:23 | Install | 1362
yum history list all pozwala na wylistowanie wszystkich operacji yum w systemie.
yum history info i summary
Aby zobaczyć więcej szczegółów dotyczących danego pakietu, warto użyć yum history info:
[root@yum_history ~]# yum history info httpd Loaded plugins: fastestmirror, langpacks Transaction ID : 6 Begin time : Sun Oct 21 12:05:54 2018 Begin rpmdb : 1374:ad2f30313dd7d31dddaf0766c386f71736b1e3f0 End time : 12:06:00 2018 (6 seconds) End rpmdb : 1379:0e91361104fbf27ec1de941a5d4168ffae26c9c5 User : osboxes.org <osboxes> Return-Code : Success Command Line : install httpd Transaction performed with: Installed rpm-4.11.3-32.el7.x86_64 @anaconda Installed yum-3.4.3-158.el7.centos.noarch @anaconda Installed yum-metadata-parser-1.1.4-10.el7.x86_64 @anaconda Installed yum-plugin-fastestmirror-1.1.31-45.el7.noarch @anaconda Packages Altered: Dep-Install apr-1.4.8-3.el7_4.1.x86_64 @base Dep-Install apr-util-1.5.2-6.el7.x86_64 @base Install httpd-2.4.6-80.el7.centos.1.x86_64 @updates Dep-Install httpd-tools-2.4.6-80.el7.centos.1.x86_64 @updates Dep-Install mailcap-2.1.41-2.el7.noarch @base history info
Z kolei yum history summary pozwala na uzyskanie krótkiego podsumowania dotyczącego historii pakietu:
[root@yum_history ~]# yum history summary docker Loaded plugins: fastestmirror, langpacks Login user | Time | Action(s) | Altered ------------------------------------------------------------------------------- osboxes.org <osboxes> | Last day | Install | 12 history summary
Summary oraz info pozwalają także na identyfikację transakcji na podstawie id.
[root@yum_history ~]# yum history summary 11 Loaded plugins: fastestmirror, langpacks Login user | Time | Action(s) | Altered ------------------------------------------------------------------------------- osboxes.org <osboxes> | Last day | Update | 6 history summary
Yum history redo, undo, rollback
Yum history nie ogranicza nas jednak tylko do wyświetlania informacji na temat zainstalowanych pakietów. Dzięki trzem podkomendom możemy:
- undo – cofnąć konkretną transakcję;
- redo – powtórzyć wykonane operacje;
- rollback – cofnąć wszystkie transakcje do momentu wskazanego przez użytkownika.
# yum history undo 9 # yum history redo 9
Komenda package-list pozwala zaobserwować akcje wykonane przez powyższe operacje dla pakietu php:
[root@yum_history ~]# yum history package-list php Loaded plugins: fastestmirror, langpacks ID | Action(s) | Package ------------------------------------------------------------------------------- 13 | Install | php-5.4.16-45.el7.x86_64 12 | Erase | php-5.4.16-45.el7.x86_64 9 | Install | php-5.4.16-45.el7.x86_64 history package-list
Yum history package-info daje możliwość uzyskania większej ilości szczegółów dotyczących danej transakcji. Obydwa polecenia mogą przyjmować więcej niż jeden argument.
Warto wspomnieć o tym, że yum history redo posiada dwa opcjonalne argumenty wpływające na jego działanie:
- force-install – reinstaluje wszystkie pakiety, które zostały zainstalowane w danej transakcji;
- force-remove – usuwa wszystkie pakiety zaktualizowane i zdeaktualizowane podczas danej transakcji.
Baza danych yum history
Uzyskanie informacji na temat danych yum history jest zapewnione przez kilka podkomend:
- addon-info – podaje źródła dodatkowych informacji:
[root@yum_history ~]# yum history addon-info Loaded plugins: fastestmirror, langpacks Transaction ID: 13 Available additional history information: config-main saved_tx config-repos history addon-info
- stats – jak sama nazwa wskazuje, podaje statystyki bazy danych:
[root@yum_history ~]# yum history stats Loaded plugins: fastestmirror, langpacks File : //var/lib/yum/history/history-2018-09-09.sqlite Size : 1,984,512 Transactions: 13 Begin time : Sun Sep 9 16:23:56 2018 End time : Sun Oct 21 23:37:26 2018 Counts : NEVRAC : 1,442 NEVRA : 1,442 NA : 1,426 NEVR : 1,442 rpm DB : 1,442 yum DB : 1,442 history stats
- sync – yum history sync umożliwia uaktualnienie danych rpmdb/yumdb przechowywanych dla zainstalowanych pakietów.
Aby utworzyć nowy plik historii, należy wykonać polecenie:
[root@yum_history ~]# yum history new Loaded plugins: fastestmirror, langpacks history new [root@yum_history ~]# yum history Loaded plugins: fastestmirror, langpacks No transactions No accessible history to list
Jak widać na powyższych przykładach, yum history jest bardzo przydatnym narzędziem pozwalającym nie tylko na uzyskanie informacji na temat operacji na pakietach, ale także umożliwiającym powtarzanie oraz cofanie dokonanych zmian. W powyższym artykule zostały zaprezentowane podstawowe fakty dotyczące yum history. Więcej informacji z pewnością znajdziesz w manualu yum:
# man yum