Когато в предишното си писание споменах за проблемите покрай 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
Полезно, лесно и удобно!