среда, 24 февраля 2010 г.

yum

Хочу поделиться недавним своим открытием. С некоторых пор yum научился вести историю транзакций и поддерживать некоторые операции над ними.

Например, решил я поставить в свою аскетичную систему программу-просмотрщик Eye Of Gnome (eog). eog по зависимостям тащит за собой ворох гномовского барахла, от которого я с таким трудом избавлялся. Положим, что eog нам не нужен, хватает и gthumb.


Смотрим, что было сделано yum'ом в последнее время:

# yum history
Loaded plugins: dellsysidplugin2
ID     | Login user     | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
   154 |                | 2010-02-24 13:42 | Install        |   28
   153 |                | 2010-02-24 13:40 | Erase          |    2
   152 |                | 2010-02-24 13:38 | Install        |    2
   151 |                | 2010-02-24 13:22 | Install        |    1
   150 |                | 2010-02-22 09:26 | E, I, U        |   52
   149 |                | 2010-02-22 09:23 | Erase          |   23  <
   148 |                | 2010-02-18 15:10 | Install        |    1 ><
   147 |                | 2010-02-17 09:23 | Install        |    2 >
   146 |                | 2010-02-17 09:21 | Install        |    3  <
   145 |                | 2010-02-17 09:01 | E, I, U        |   16 >
   144 |                | 2010-02-17 09:00 | Erase          |   14
   143 |                | 2010-02-16 19:16 | Install        |    3  <
   142 |                | 2010-02-16 19:02 | Erase          |    1 >
   141 |                | 2010-02-15 19:22 | Update         |    6
   140 |                | 2010-02-12 13:59 | Update         |   21  <
   139 |                | 2010-02-12 10:44 | Install        |    2 >
   138 |                | 2010-02-10 10:23 | Update         |    2
   137 |                | 2010-02-09 14:21 | I, U           |   21
   136 |                | 2010-02-08 21:42 | Install        |    1
   135 |                | 2010-02-08 15:20 | Install        |    1
history list

Смотрим внимательно на транзакцию 154

# yum history info 154
Loaded plugins: dellsysidplugin2
Transaction ID : 154
Begin time     : Wed Feb 24 13:42:27 2010
Begin rpmdb    : 907:82c2e43214cb8efd594614082b0101f44d3b2176
End time       :            13:43:06 2010 (39 seconds)
End rpmdb      : 935:25050d1549776746854eaa84508fc31f4a88b268
User           : 
Return-Code    : Success
Transaction performed with:
    Installed    rpm-4.7.2-1.fc12.x86_64
    Installed    yum-3.2.25-1.fc12.noarch
    Installed    yum-metadata-parser-1.1.2-14.fc12.x86_64
Packages Altered:
    Dep-Install  avahi-glib-0.6.25-5.fc12.x86_64
    Dep-Install  bluecurve-cursor-theme-8.0.2-5.fc12.noarch
    Dep-Install  constantine-backgrounds-12.1.1-2.fc12.noarch
    Dep-Install  constantine-backgrounds-single-12.1.1-2.fc12.noarch
    Install      eog-2.28.2-1.fc12.x86_64
    Dep-Install  exempi-2.1.0-4.fc12.x86_64
    Dep-Install  fedora-gnome-theme-12.3-2.fc12.noarch
    Dep-Install  fedora-icon-theme-1.0.0-6.fc12.noarch
    Dep-Install  gnome-desktop-2.28.2-3.fc12.x86_64
    Dep-Install  gnome-icon-theme-2.28.0-1.fc12.noarch
    Dep-Install  gnome-python2-2.28.0-1.fc12.x86_64
    Dep-Install  gnome-python2-gnome-2.28.0-1.fc12.x86_64
    Dep-Install  gnome-python2-gnomevfs-2.28.0-1.fc12.x86_64
    Dep-Install  gnome-themes-2.28.1-2.fc12.noarch
    Dep-Install  gnome-vfs2-2.24.2-2.fc12.x86_64
    Dep-Install  gtk2-engines-2.18.4-4.fc12.x86_64
    Dep-Install  libXres-1.0.4-1.fc12.x86_64
    Dep-Install  libart_lgpl-2.3.20-5.fc12.x86_64
    Dep-Install  libbonobo-2.24.2-2.fc12.x86_64
    Dep-Install  libbonoboui-2.24.2-2.fc12.x86_64
    Dep-Install  libgnome-2.28.0-1.fc12.x86_64
    Dep-Install  libgnomecanvas-2.26.0-2.fc12.x86_64
    Dep-Install  libgnomeui-2.24.1-3.fc12.x86_64
    Dep-Install  libwnck-2.28.0-1.fc12.x86_64
    Dep-Install  notification-daemon-0.4.1-0.20090923.4.fc12.x86_64
    Dep-Install  notification-daemon-engine-slider-0.2.0-2.fc12.x86_64
    Dep-Install  startup-notification-0.10-2.fc12.x86_64
    Dep-Install  xcb-util-0.3.6-1.fc12.x86_64
history info

Извините, ошибался, не надо нам этого.

# yum history undo 154
Loaded plugins: dellsysidplugin2
Undoing transaction 154, from Wed Feb 24 13:42:27 2010
    Dep-Install  avahi-glib-0.6.25-5.fc12.x86_64
    Dep-Install  bluecurve-cursor-theme-8.0.2-5.fc12.noarch
    Dep-Install  constantine-backgrounds-12.1.1-2.fc12.noarch
    Dep-Install  constantine-backgrounds-single-12.1.1-2.fc12.noarch
    Install      eog-2.28.2-1.fc12.x86_64
    Dep-Install  exempi-2.1.0-4.fc12.x86_64
    Dep-Install  fedora-gnome-theme-12.3-2.fc12.noarch
    Dep-Install  fedora-icon-theme-1.0.0-6.fc12.noarch
    Dep-Install  gnome-desktop-2.28.2-3.fc12.x86_64
    Dep-Install  gnome-icon-theme-2.28.0-1.fc12.noarch
    Dep-Install  gnome-python2-2.28.0-1.fc12.x86_64
    Dep-Install  gnome-python2-gnome-2.28.0-1.fc12.x86_64
    Dep-Install  gnome-python2-gnomevfs-2.28.0-1.fc12.x86_64
    Dep-Install  gnome-themes-2.28.1-2.fc12.noarch
    Dep-Install  gnome-vfs2-2.24.2-2.fc12.x86_64
    Dep-Install  gtk2-engines-2.18.4-4.fc12.x86_64
    Dep-Install  libXres-1.0.4-1.fc12.x86_64
    Dep-Install  libart_lgpl-2.3.20-5.fc12.x86_64
    Dep-Install  libbonobo-2.24.2-2.fc12.x86_64
    Dep-Install  libbonoboui-2.24.2-2.fc12.x86_64
    Dep-Install  libgnome-2.28.0-1.fc12.x86_64
    Dep-Install  libgnomecanvas-2.26.0-2.fc12.x86_64
    Dep-Install  libgnomeui-2.24.1-3.fc12.x86_64
    Dep-Install  libwnck-2.28.0-1.fc12.x86_64
    Dep-Install  notification-daemon-0.4.1-0.20090923.4.fc12.x86_64
    Dep-Install  notification-daemon-engine-slider-0.2.0-2.fc12.x86_64
    Dep-Install  startup-notification-0.10-2.fc12.x86_64
    Dep-Install  xcb-util-0.3.6-1.fc12.x86_64

<..bla-bla..>

Removed:
  avahi-glib.x86_64 0:0.6.25-5.fc12                                                             
  bluecurve-cursor-theme.noarch 0:8.0.2-5.fc12                                                  
  constantine-backgrounds.noarch 0:12.1.1-2.fc12                                                
  constantine-backgrounds-single.noarch 0:12.1.1-2.fc12                                         
  eog.x86_64 0:2.28.2-1.fc12                                                                    
  exempi.x86_64 0:2.1.0-4.fc12                                                                  
  fedora-gnome-theme.noarch 0:12.3-2.fc12                                                       
  fedora-icon-theme.noarch 0:1.0.0-6.fc12                                                       
  gnome-desktop.x86_64 0:2.28.2-3.fc12                                                          
  gnome-icon-theme.noarch 0:2.28.0-1.fc12                                                       
  gnome-python2.x86_64 0:2.28.0-1.fc12                                                          
  gnome-python2-gnome.x86_64 0:2.28.0-1.fc12                                                    
  gnome-python2-gnomevfs.x86_64 0:2.28.0-1.fc12                                                 
  gnome-themes.noarch 0:2.28.1-2.fc12                                                           
  gnome-vfs2.x86_64 0:2.24.2-2.fc12                                                             
  gtk2-engines.x86_64 0:2.18.4-4.fc12                                                           
  libXres.x86_64 0:1.0.4-1.fc12                                                                 
  libart_lgpl.x86_64 0:2.3.20-5.fc12                                                            
  libbonobo.x86_64 0:2.24.2-2.fc12                                                              
  libbonoboui.x86_64 0:2.24.2-2.fc12                                                            
  libgnome.x86_64 0:2.28.0-1.fc12                                                               
  libgnomecanvas.x86_64 0:2.26.0-2.fc12                                                         
  libgnomeui.x86_64 0:2.24.1-3.fc12                                                             
  libwnck.x86_64 0:2.28.0-1.fc12                                                                
  notification-daemon.x86_64 0:0.4.1-0.20090923.4.fc12                                          
  notification-daemon-engine-slider.x86_64 0:0.2.0-2.fc12                                       
  startup-notification.x86_64 0:0.10-2.fc12                                                     
  xcb-util.x86_64 0:0.3.6-1.fc12                                                                

Dependency Removed:
  firefox.x86_64 0:3.5.8-1.fc12                 xulrunner.x86_64 0:1.9.1.8-1.fc12 

Отличненько! Жаль, что xulrunner ставлю с --nodeps, дабы он ненужных  зависимостей не тащил. Поэтому yum его и зависящий от него firefox удалил.

Но так, по-моему, клёвая возможность быстро откатиться в предыдущее состояние!

3 комментария:

  1. libart, libbonobo, libbonoboui, libgnomecanvas, libgnomeui, gnomevfs - уже давно depricated и никто их не использует, тащат в зависимостях по привычке (до поры до времени). А constantine-backgrounds в качестве зависимостей это уже бред майнтэйнеров. А фича да, хорошая.
    P.S. Капча swinsk намекает.

    ОтветитьУдалить
  2. Ух ты, спасибо! В букмарки.

    Надо бы посмотреть как там у portage на тему транзакций...

    ОтветитьУдалить
  3. А я вот не так давно смотрел на SMP/E в z/OS и думал, почему же в Linux такого нет, пытался объяснить себе это и не мог. Теперь у нас даже лучше :)

    Там есть две операции: APPLY и ACCEPT. После того как ты сделал Apply, хранится копия предыдущей версии программы (и зависимостей). Когда ты понял, что у тебя все хорошо или перед следующим обновлением, ты говоришь ACCEPT и предыдущая копия удаляется. Если тебе по каким-то причинам не нравится текущая версия и хочется откатиться, пишешь REVERT.

    Спасибо за находку, надеюсь в RHEL 6 войдет. Черт, все никак на бетку не посмотрю.

    ОтветитьУдалить

Архив блога