Когато в предишното си писание споменах за проблемите покрай PackageKit, за които се шумеше при излизането на Fedora 12, много хора се питаха как никой от хората ползвали Rawhide не е забелязал такава промяна. Отговорът е прост. Никой (в това число и аз) не ползва графични инструменти от подобен род, когато имаш yum.
Някъде някой беше казал (за съжаление не си спомням, къде съм го прочел), че всяка себеуважаваща се съвременна дистрибуция трябва да има добър пакетен мениджър. За Redhat дериватите това е yum. Няма да се спирам на историята на проекта, но не мога да не спомена, че е изминат дълъг път от началото, и че постоянно става все по-добър. Разбира се, има и някои минуси (за мен лично, основно свързани с бързината), но след като в миналата версия бе представен yum-presto (delta rpms), то във Fedora 12 и съответната нова версия на yum (3.2.25), вече имаме yum history. Нещо, което предполагам доста администратори а и потребители безспорно ще оценят, и нещо, от което мисля, че наистина имаше нужда.
Какво се получаваше преди yum history? Инсталираме даден пакет, който има дадени зависимости, които също се инсталират покрай него. По някаква причина решаваме, че нямаме нужда от въпросната програма и я премахваме. Не всички dependencies инсталирани заедно с нея, винаги се премахват обаче. Какво ни дава history?
Дава ни възможността да се върнем една стъпка назад (undo) и да инсталираме или премахнем, това, което сме инсталирали или премахнали преди това. Получи се малка тафтология, но мисля, че с примерите по-долу нещата ще се изяснят. Възможните опции са: yum history info|list|summary|undo|redo|new
Ето ги и примерите:
[root@Pegasus ~]# yum history Loaded plugins: allowdowngrade, fastestmirror, presto, protectbase, refresh-packagekit, security ID | Login user | Date and time | Action(s) | Altered ------------------------------------------------------------------------------- 6 | Nick | 2009-12-13 00:52 | Install | 1 5 | Nick | 2009-12-13 00:48 | Install | 4 4 | Nick | 2009-12-12 12:02 | Install | 2 3 | Nick | 2009-12-12 11:43 | Install | 8 2 | Nick | 2009-12-12 11:29 | Install | 2 1 | Nick | 2009-12-12 11:20 | E, I, U | 77
Ако искаме да видим точно определена транзакция, то изпълняваме yum history info ID:
[root@Pegasus ~]# yum history info 2 Loaded plugins: allowdowngrade, fastestmirror, presto, protectbase, refresh-packagekit, security Transaction ID : 2 Begin time : Sat Dec 12 11:29:54 2009 Begin rpmdb : 1968:ab76e09445bc9332ee617c5c7bf34a9859e04ade End time : 11:30:01 2009 (7 seconds) End rpmdb : 1970:c33229c535f6633f7b1ee91e1461fb56c9784e64 User : Return-Code : Success Transaction performed with: Installed rpm-4.7.1-6.fc12.x86_64 Installed yum-3.2.25-1.fc12.noarch Installed yum-plugin-fastestmirror-1.1.24-2.fc12.noarch Packages Altered: Install kmod-nvidia-190.42-1.fc12.8.x86_64 Dep-Install kmod-nvidia-2.6.31.6-166.fc12.x86_64-190.42-1.fc12.8.x86_64
Ако искаме да премахнем промените направени от въпросната транзакция, то изпълняваме yum history undo ID:
[root@Pegasus ~]# yum history undo 2 Loaded plugins: allowdowngrade, fastestmirror, presto, protectbase, refresh-packagekit, security Determining fastest mirrors * fedora: fedora.linuxman.biz * rpmfusion-free: ftp.upjs.sk * rpmfusion-free-updates: ftp.upjs.sk * rpmfusion-nonfree: ftp.upjs.sk * rpmfusion-nonfree-updates: ftp.upjs.sk rpmfusion-free-updates | 3.3 kB 00:00 rpmfusion-nonfree-updates | 3.3 kB 00:00 updates | 4.4 kB 00:00 0 packages excluded due to repository protections Undoing transaction 2, from Sat Dec 12 11:29:54 2009 Install kmod-nvidia-190.42-1.fc12.8.x86_64 Dep-Install kmod-nvidia-2.6.31.6-166.fc12.x86_64-190.42-1.fc12.8.x86_64 Resolving Dependencies --> Running transaction check ---> Package kmod-nvidia.x86_64 0:190.42-1.fc12.8 set to be erased ---> Package kmod-nvidia-2.6.31.6-166.fc12.x86_64.x86_64 0:190.42-1.fc12.8 set to be erased --> Finished Dependency Resolution Dependencies Resolved ==================================================================================================================================================================================== Package Arch Version Repository Size ==================================================================================================================================================================================== Removing: kmod-nvidia x86_64 190.42-1.fc12.8 installed 0.0 kmod-nvidia-2.6.31.6-166.fc12.x86_64 x86_64 190.42-1.fc12.8 installed 11 M Transaction Summary ==================================================================================================================================================================================== Remove 2 Package(s) Reinstall 0 Package(s) Downgrade 0 Package(s) Is this ok [y/N]: y Downloading Packages: Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Erasing : kmod-nvidia-190.42-1.fc12.8.x86_64 1/2 Erasing : kmod-nvidia-2.6.31.6-166.fc12.x86_64-190.42-1.fc12.8.x86_64 2/2 Removed: kmod-nvidia.x86_64 0:190.42-1.fc12.8 kmod-nvidia-2.6.31.6-166.fc12.x86_64.x86_64 0:190.42-1.fc12.8 Complete!
Ако отново изпълним yum history list, ще видим, че това е създало нова транзакция:
[root@Pegasus ~]# yum history Loaded plugins: allowdowngrade, fastestmirror, presto, protectbase, refresh-packagekit, security ID | Login user | Date and time | Action(s) | Altered ------------------------------------------------------------------------------- 7 | Nick | 2009-12-13 13:05 | Erase | 2 6 | Nick | 2009-12-13 00:52 | Install | 1 5 | Nick | 2009-12-13 00:48 | Install | 4 4 | Nick | 2009-12-12 12:02 | Install | 2 3 | Nick | 2009-12-12 11:43 | Install | 8 2 | Nick | 2009-12-12 11:29 | Install | 2 1 | Nick | 2009-12-12 11:20 | E, I, U | 77
и ако решим все пак да върнем нещата назад и да инсталираме отново Kmod-nvidia*, то има два начина да го направим – yum history undo 7, или yum history redo 2:
[root@Pegasus ~]# yum history undo 7 Loaded plugins: allowdowngrade, fastestmirror, presto, protectbase, refresh-packagekit, security Loading mirror speeds from cached hostfile * fedora: fedora.linuxman.biz * rpmfusion-free: ftp.upjs.sk * rpmfusion-free-updates: ftp.upjs.sk * rpmfusion-nonfree: ftp.upjs.sk * rpmfusion-nonfree-updates: ftp.upjs.sk 0 packages excluded due to repository protections Undoing transaction 7, from Sun Dec 13 13:05:43 2009 Erase kmod-nvidia-190.42-1.fc12.8.x86_64 Erase kmod-nvidia-2.6.31.6-166.fc12.x86_64-190.42-1.fc12.8.x86_64 Resolving Dependencies --> Running transaction check ---> Package kmod-nvidia.x86_64 0:190.42-1.fc12.8 set to be updated ---> Package kmod-nvidia-2.6.31.6-166.fc12.x86_64.x86_64 0:190.42-1.fc12.8 set to be updated --> Finished Dependency Resolution Dependencies Resolved ==================================================================================================================================================================================== Package Arch Version Repository Size ==================================================================================================================================================================================== Installing: kmod-nvidia x86_64 190.42-1.fc12.8 rpmfusion-nonfree-updates 29 k kmod-nvidia-2.6.31.6-166.fc12.x86_64 x86_64 190.42-1.fc12.8 rpmfusion-nonfree-updates 2.2 M Transaction Summary ==================================================================================================================================================================================== Install 2 Package(s) Upgrade 0 Package(s) Total download size: 2.3 M
[root@Pegasus ~]# yum history redo 2 Loaded plugins: allowdowngrade, fastestmirror, presto, protectbase, refresh-packagekit, security Loading mirror speeds from cached hostfile * fedora: fedora.linuxman.biz * rpmfusion-free: ftp.upjs.sk * rpmfusion-free-updates: ftp.upjs.sk * rpmfusion-nonfree: ftp.upjs.sk * rpmfusion-nonfree-updates: ftp.upjs.sk 0 packages excluded due to repository protections Repeating transaction 2, from Sat Dec 12 11:29:54 2009 Install kmod-nvidia-190.42-1.fc12.8.x86_64 Dep-Install kmod-nvidia-2.6.31.6-166.fc12.x86_64-190.42-1.fc12.8.x86_64 Resolving Dependencies --> Running transaction check ---> Package kmod-nvidia.x86_64 0:190.42-1.fc12.8 set to be updated --> Processing Dependency: kmod-nvidia-2.6.31.6-166.fc12.x86_64 >= 190.42-1.fc12.8 for package: kmod-nvidia-190.42-1.fc12.8.x86_64 --> Running transaction check ---> Package kmod-nvidia-2.6.31.6-166.fc12.x86_64.x86_64 0:190.42-1.fc12.8 set to be updated --> Finished Dependency Resolution Dependencies Resolved ==================================================================================================================================================================================== Package Arch Version Repository Size ==================================================================================================================================================================================== Installing: kmod-nvidia x86_64 190.42-1.fc12.8 rpmfusion-nonfree-updates 29 k Installing for dependencies: kmod-nvidia-2.6.31.6-166.fc12.x86_64 x86_64 190.42-1.fc12.8 rpmfusion-nonfree-updates 2.2 M Transaction Summary ==================================================================================================================================================================================== Install 2 Package(s) Upgrade 0 Package(s) Total download size: 2.3 M
Ако искаме повече информация за даден пакет, то може да комбинираме някои от опциите. Да речем yum history summary kmod-nvidia, yum history list kmod-nvidia или yum history info kmod-nvidia ни дават следната информация:
[root@Pegasus ~]# yum history summary kmod-nvidia Loaded plugins: allowdowngrade, fastestmirror, presto, protectbase, refresh-packagekit, security Login user | Time | Action(s) | Altered ------------------------------------------------------------------------------- Nick | Last day | E, I | 4 Nick | Last week | Install | 2
[root@Pegasus ~]# yum history list kmod-nvidia Loaded plugins: allowdowngrade, dellsysidplugin2, fastestmirror, presto, protectbase, refresh-packagekit, security ID | Login user | Date and time | Action(s) | Altered ------------------------------------------------------------------------------- 8 | Nick | 2009-12-13 13:11 | Install | 2 7 | Nick | 2009-12-13 13:05 | Erase | 2 2 | Nick | 2009-12-12 11:29 | Install | 2
[root@Pegasus ~]# yum history info kmod-nvidia Loaded plugins: allowdowngrade, dellsysidplugin2, fastestmirror, presto, protectbase, refresh-packagekit, security Transaction ID : 8 Begin time : Sun Dec 13 13:11:52 2009 Begin rpmdb : 1983:4824469c95865c6b3a6548a690e9fd10f7b8d43a End time : 13:11:57 2009 (5 seconds) End rpmdb : 1985:dc98b76dd546e9edd76e8b5b8520f5f7a8c7d7c7 User : Nick Return-Code : Success Transaction performed with: Installed rpm-4.7.1-6.fc12.x86_64 Installed yum-3.2.25-1.fc12.noarch Installed yum-plugin-fastestmirror-1.1.24-2.fc12.noarch Packages Altered: Install kmod-nvidia-190.42-1.fc12.8.x86_64 Dep-Install kmod-nvidia-2.6.31.6-166.fc12.x86_64-190.42-1.fc12.8.x86_64 ------------------------------------------------------------------------------- Transaction ID : 7 Begin time : Sun Dec 13 13:05:43 2009 Begin rpmdb : 1985:dc98b76dd546e9edd76e8b5b8520f5f7a8c7d7c7 End time : 13:05:54 2009 (11 seconds) End rpmdb : 1983:4824469c95865c6b3a6548a690e9fd10f7b8d43a User : Nick Return-Code : Success Transaction performed with: Installed rpm-4.7.1-6.fc12.x86_64 Installed yum-3.2.25-1.fc12.noarch Installed yum-plugin-fastestmirror-1.1.24-2.fc12.noarch Packages Altered: Erase kmod-nvidia-190.42-1.fc12.8.x86_64 Erase kmod-nvidia-2.6.31.6-166.fc12.x86_64-190.42-1.fc12.8.x86_64 ------------------------------------------------------------------------------- Transaction ID : 2 Begin time : Sat Dec 12 11:29:54 2009 Begin rpmdb : 1968:ab76e09445bc9332ee617c5c7bf34a9859e04ade End time : 11:30:01 2009 (7 seconds) End rpmdb : 1970:c33229c535f6633f7b1ee91e1461fb56c9784e64 User : Nick Return-Code : Success Transaction performed with: Installed rpm-4.7.1-6.fc12.x86_64 Installed yum-3.2.25-1.fc12.noarch Installed yum-plugin-fastestmirror-1.1.24-2.fc12.noarch Packages Altered: Install kmod-nvidia-190.42-1.fc12.8.x86_64 Dep-Install kmod-nvidia-2.6.31.6-166.fc12.x86_64-190.42-1.fc12.8.x86_64
Полезно, лесно и удобно!