20 YUM-i käsku Linuxi pakettide haldamiseks


Selles artiklis õpime, kuidas RedHati väljatöötatud tööriista YUM (Yellowdog Updater Modified) abil Linuxi süsteemides installida, värskendada, eemaldada pakette, hallata pakette ja hoidlaid. Selles artiklis näidiskäske testitakse praktiliselt meie CentOS 6.3 serveris. Võite kasutada seda materjali õppetöö eesmärgil, sertifikaatide saamiseks või lihtsalt uute pakettide installimise ja süsteemi ajakohasena hoidmise võimaluste uurimiseks. Selle artikli põhinõue on, et teil peaks olema põhiteadmised käskudest ja toimiv Linuxi operatsioonisüsteem, kus saate uurida ja harjutada kõiki allpool loetletud käske.

Mis on YUM?

YUM (Yellowdog Updater Modified) on nii avatud lähtekoodiga käsurida kui ka graafiline pakettide haldamise tööriist RPM (RedHat Package Manager) põhinevatele Linuxi süsteemidele. See võimaldab kasutajatel ja süsteemiadministraatoril tarkvarapakette süsteemidesse hõlpsasti installida, värskendada, eemaldada või otsida. Selle on välja töötanud ja välja andnud Seth Vidal GPL (General Public License) all avatud lähtekoodina, mis tähendab, et igaüks võib lubada koodi alla laadida ja sellele juurde pääseda, et vigu parandada ja kohandatud pakette arendada. YUM kasutab arvukaid kolmanda osapoole hoidlaid pakettide automaatseks installimiseks, lahendades nende sõltuvusprobleemid.

Firefox 14-nimelise paketi installimiseks käivitage lihtsalt järgmine käsk: see leiab ja installib kõik Firefoxi kõik vajalikud sõltuvused.

# yum install firefox
Loaded plugins: fastestmirror
Dependencies Resolved

================================================================================================
 Package                    Arch        Version                    Repository            Size        
================================================================================================
Updating:
firefox                        i686        10.0.6-1.el6.centos     updates             20 M
Updating for dependencies:
 xulrunner                     i686        10.0.6-1.el6.centos     updates             12 M

Transaction Summary
================================================================================================
Install       0 Package(s)
Upgrade       2 Package(s)

Total download size: 32 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): firefox-10.0.6-1.el6.centos.i686.rpm                                |  20 MB   01:10
(2/2): xulrunner-10.0.6-1.el6.centos.i686.rpm                              |  12 MB   00:52
------------------------------------------------------------------------------------------------
Total                                                           63 kB/s |  32 MB   02:04

Updated:
  firefox.i686 0:10.0.6-1.el6.centos

Dependency Updated:
  xulrunner.i686 0:10.0.6-1.el6.centos

Complete!

Ülaltoodud käsk küsib enne paketi installimist teie süsteemi kinnitust. Kui soovite pakette automaatselt installida ilma kinnitust küsimata, kasutage valikut -y, nagu on näidatud allpool näites.

# yum -y install firefox

Paketi täielikuks eemaldamiseks koos kõigi nende sõltuvustega käivitage lihtsalt järgmine käsk, nagu allpool näidatud.

# yum remove firefox
Loaded plugins: fastestmirror
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package firefox.i686 0:10.0.6-1.el6.centos set to be erased
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================
 Package                    Arch        Version                        Repository            Size        
====================================================================================================
Removing:
 firefox                    i686        10.0.6-1.el6.centos            @updates              23 M

Transaction Summary
====================================================================================================
Remove        1 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
Transaction Test Succeeded
Running Transaction
  Erasing        : firefox-10.0.6-1.el6.centos.i686                                                                                                                          1/1

Removed:
  firefox.i686 0:10.0.6-1.el6.centos

Complete!

Samamoodi küsib ülaltoodud käsk enne paketi eemaldamist kinnitust. Kinnitusviiba keelamiseks lisage lihtsalt valik -y, nagu allpool näidatud.

# yum -y remove firefox

Oletame, et teil on MySQL-i paketi vananenud versioon ja soovite selle värskendada uuemale stabiilsele versioonile. Käivitage lihtsalt järgmine käsk. See lahendab automaatselt kõik sõltuvuse probleemid ja installib need.

# yum update mysql
Loaded plugins: fastestmirror
Dependencies Resolved

============================================================================================================
 Package            Arch                Version                    Repository                    Size
============================================================================================================
Updating:
 vsftpd             i386                2.0.5-24.el5_8.1           updates                       144 k

Transaction Summary
============================================================================================================
Install       0 Package(s)
Upgrade       1 Package(s)

Total size: 144 k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating       : vsftpd                                                                     1/2
  Cleanup        : vsftpd                                                                     2/2

Updated:
  vsftpd.i386 0:2.0.5-24.el5_8.1

Complete!

Kasutage loendi funktsiooni konkreetse nimega paketi otsimiseks. Näiteks paketi opensh otsimiseks kasutage käsku.

# yum list openssh
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.neu.edu.cn
 * epel: mirror.neu.edu.cn
 * extras: mirror.neu.edu.cn
 * rpmforge: mirror.nl.leaseweb.net
 * updates: mirror.nus.edu.sg
Installed Packages
openssh.i386                                       4.3p2-72.el5_6.3                                                                      installed
Available Packages                                 4.3p2-82.el5                                                                          base

Otsingu täpsemaks muutmiseks määrake paketi nimi nende versiooniga, kui teate. Näiteks paketi konkreetse versiooni openssh-4.3p2 otsimiseks kasutage käsku.

# yum list openssh-4.3p2

Kui te ei mäleta paketi täpset nime, siis kasutage otsingufunktsiooni kõigi saadaolevate pakettide otsimiseks, et see vastaks teie määratud paketi nimele. Näiteks otsida kõiki pakette, mis sobivad sõnaga.

# yum search vsftpd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.neu.edu.cn
 * epel: mirror.neu.edu.cn
 * extras: mirror.neu.edu.cn
 * rpmforge: mirror.nl.leaseweb.net
 * updates: ftp.iitm.ac.in
============================== Matched: vsftpd ========================
ccze.i386 : A robust log colorizer
pure-ftpd-selinux.i386 : SELinux support for Pure-FTPD
vsftpd.i386 : vsftpd - Very Secure Ftp Daemon

Oletame, et soovite enne paketi installimist saada teavet paketi kohta. Paketi kohta teabe saamiseks väljastage lihtsalt järgmine käsk.

# yum info firefox
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.neu.edu.cn
 * epel: mirror.neu.edu.cn
 * extras: mirror.neu.edu.cn
 * rpmforge: mirror.nl.leaseweb.net
 * updates: ftp.iitm.ac.in
Available Packages
Name       : firefox
Arch       : i386
Version    : 10.0.6
Release    : 1.el5.centos
Size       : 20 M
Repo       : updates
Summary    : Mozilla Firefox Web browser
URL        : http://www.mozilla.org/projects/firefox/
License    : MPLv1.1 or GPLv2+ or LGPLv2+
Description: Mozilla Firefox is an open-source web browser, designed for standards
           : compliance, performance and portability.

Kõigi saadaolevate pakettide loetlemiseks Yumi andmebaasis kasutage allolevat käsku.

# yum list | less

Kõigi süsteemis installitud pakettide loetlemiseks väljastage lihtsalt käsk allpool, kuvatakse kõik installitud paketid.

# yum list installed | less

Funktsiooni Yum pakub, et leida, millisesse paketti konkreetne fail kuulub. Näiteks kui soovite teada paketi nime, millel on /etc/httpd/conf/httpd.conf.

# yum provides /etc/httpd/conf/httpd.conf
Loaded plugins: fastestmirror
httpd-2.2.3-63.el5.centos.i386 : Apache HTTP Server
Repo        : base
Matched from:
Filename    : /etc/httpd/conf/httpd.conf

httpd-2.2.3-63.el5.centos.1.i386 : Apache HTTP Server
Repo        : updates
Matched from:
Filename    : /etc/httpd/conf/httpd.conf

httpd-2.2.3-65.el5.centos.i386 : Apache HTTP Server
Repo        : updates
Matched from:
Filename    : /etc/httpd/conf/httpd.conf

httpd-2.2.3-53.el5.centos.1.i386 : Apache HTTP Server
Repo        : installed
Matched from:
Other       : Provides-match: /etc/httpd/conf/httpd.conf

Kui soovite teada, kui palju teie süsteemis installitud pakette on värskendusi saadaval, kontrollige järgmist käsku.

# yum check-update

Süsteemi kõigi turvalisuse ja binaarpakettide värskenduste ajakohasena hoidmiseks käivitage järgmine käsk. See installib teie süsteemi kõik uusimad plaastrid ja turvavärskendused.

# yum update

Linuxis on pakettide arv seotud teatud rühmaga. Selle asemel, et installida yumiga üksikuid pakette, saate installida kindla rühma, mis installib kõik seotud rühmale kuuluvad paketid. Näiteks kõigi saadaolevate rühmade loetlemiseks väljastage lihtsalt järgmine käsk.

# yum grouplist
Installed Groups:
   Administration Tools
   DNS Name Server
   Dialup Networking Support
   Editors
   Engineering and Scientific
   FTP Server
   Graphics
   Java Development
   Legacy Network Server
Available Groups:
   Authoring and Publishing
   Base
   Beagle
   Cluster Storage
   Clustering
   Development Libraries
   Development Tools
   Eclipse
   Educational Software
   KDE (K Desktop Environment)
   KDE Software Development

Konkreetse paketirühma installimiseks kasutame rühmainstallina valikut. Näiteks "MySQL Database" installimiseks käivitage lihtsalt järgmine käsk.

# yum groupinstall 'MySQL Database'
Dependencies Resolved

=================================================================================================
Package								Arch      Version			 Repository        Size
=================================================================================================
Updating:
 unixODBC                           i386      2.2.11-10.el5      base              290 k
Installing for dependencies:
 unixODBC-libs                      i386      2.2.11-10.el5      base              551 k

Transaction Summary
=================================================================================================
Install       1 Package(s)
Upgrade       1 Package(s)

Total size: 841 k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : unixODBC-libs	1/3
  Updating       : unixODBC         2/3
  Cleanup        : unixODBC         3/3

Dependency Installed:
  unixODBC-libs.i386 0:2.2.11-10.el5

Updated:
  unixODBC.i386 0:2.2.11-10.el5

Complete!

Olemasolevate installitud rühmapakettide värskendamiseks käivitage lihtsalt järgmine käsk, nagu allpool näidatud.

# yum groupupdate 'DNS Name Server'

Dependencies Resolved
================================================================================================================
 Package			Arch	        Version				Repository           Size
================================================================================================================
Updating:
 bind                           i386            30:9.3.6-20.P1.el5_8.2          updates              981 k
 bind-chroot                    i386            30:9.3.6-20.P1.el5_8.2          updates              47 k
Updating for dependencies:
 bind-libs                      i386            30:9.3.6-20.P1.el5_8.2          updates              864 k
 bind-utils                     i386            30:9.3.6-20.P1.el5_8.2          updates              174 k

Transaction Summary
================================================================================================================
Install       0 Package(s)
Upgrade       4 Package(s)

Total size: 2.0 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating       : bind-libs            1/8
  Updating       : bind                 2/8
  Updating       : bind-chroot          3/8
  Updating       : bind-utils           4/8
  Cleanup        : bind                 5/8
  Cleanup        : bind-chroot          6/8
  Cleanup        : bind-utils           7/8
  Cleanup        : bind-libs            8/8

Updated:
  bind.i386 30:9.3.6-20.P1.el5_8.2                  bind-chroot.i386 30:9.3.6-20.P1.el5_8.2

Dependency Updated:
  bind-libs.i386 30:9.3.6-20.P1.el5_8.2             bind-utils.i386 30:9.3.6-20.P1.el5_8.2

Complete!

Olemasoleva installitud rühma kustutamiseks või süsteemist eemaldamiseks kasutage lihtsalt käsku allpool.

# yum groupremove 'DNS Name Server'

Dependencies Resolved

===========================================================================================================
 Package                Arch              Version                         Repository          Size
===========================================================================================================
Removing:
 bind                   i386              30:9.3.6-20.P1.el5_8.2          installed           2.1 M
 bind-chroot            i386              30:9.3.6-20.P1.el5_8.2          installed           0.0

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        : bind                                                   1/2
warning: /etc/sysconfig/named saved as /etc/sysconfig/named.rpmsave
  Erasing        : bind-chroot                                            2/2

Removed:
  bind.i386 30:9.3.6-20.P1.el5_8.2                                        bind-chroot.i386 30:9.3.6-20.P1.el5_8.2

Complete!

Kõigi teie süsteemis lubatud Yumi hoidlate loetlemiseks kasutage järgmist valikut.

# yum repolist

repo id                     repo name                                            status
base                        CentOS-5 - Base                                      enabled:  2,725
epel                        Extra Packages for Enterprise Linux 5 - i386         enabled:  5,783
extras                      CentOS-5 - Extras                                    enabled:    282
mod-pagespeed               mod-pagespeed                                        enabled:      1
rpmforge                    RHEL 5 - RPMforge.net - dag                          enabled: 11,290
updates                     CentOS-5 - Updates                                   enabled:    743
repolist: 20,824

Järgmine käsk kuvab kõik süsteemi lubatud ja keelatud yum-hoidlad.

# yum repolist all

repo id                     repo name                                            status
C5.0-base                   CentOS-5.0 - Base                                    disabled
C5.0-centosplus             CentOS-5.0 - Plus                                    disabled
C5.0-extras                 CentOS-5.0 - Extras                                  disabled
base                        CentOS-5 - Base                                      enabled:  2,725
epel                        Extra Packages for Enterprise Linux 5 - i386         enabled:  5,783
extras                      CentOS-5 - Extras                                    enabled:    282
repolist: 20,824

Konkreetse paketi installimiseks konkreetsest lubatud või keelatud hoidlast peate yum-käsus kasutama suvandit –enablerepo. Näiteks paketi PhpMyAdmin 3.5.2 installimiseks käivitage lihtsalt käsk.

# yum --enablerepo=epel install phpmyadmin

Dependencies Resolved
=============================================================================================
 Package                Arch           Version            Repository           Size
=============================================================================================
Installing:
 phpMyAdmin             noarch         3.5.1-1.el6        epel                 4.2 M

Transaction Summary
=============================================================================================
Install       1 Package(s)

Total download size: 4.2 M
Installed size: 17 M
Is this ok [y/N]: y
Downloading Packages:
phpMyAdmin-3.5.1-1.el6.noarch.rpm                       | 4.2 MB     00:25
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : phpMyAdmin-3.5.1-1.el6.noarch             1/1
  Verifying  : phpMyAdmin-3.5.1-1.el6.noarch             1/1

Installed:
  phpMyAdmin.noarch 0:3.5.1-1.el6

Complete!

Yumi utiliit pakub kohandatud kest, kus saate käivitada mitu käsku.

# yum shell
Loaded plugins: fastestmirror
Setting up Yum Shell
> update httpd
Loading mirror speeds from cached hostfile
 * base: mirrors.sin3.sg.voxel.net
 * epel: ftp.riken.jp
 * extras: mirrors.sin3.sg.voxel.net
 * updates: mirrors.sin3.sg.voxel.net
Setting up Update Process
>

Vaikimisi hoiab yum kõiki alamkataloogi võimaldavaid paketiandmeid kataloogis/var/cache/yum/iga alamkataloogiga. Kõigi vahemällu salvestatud failide puhastamiseks lubatud hoidlast peate kogu vahemälu puhastamiseks regulaarselt käivitama järgmise käsu ja veenduma, et et pole midagi tarbetut ruumi. Me ei soovi anda allpool toodud käsu väljundit, sest meile meeldib vahemällu salvestatud andmeid hoida.

# yum clean all

Kõigi käsu yum eelmiste tehingute vaatamiseks kasutage lihtsalt järgmist käsku.

# yum history

Loaded plugins: fastestmirror
ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
    10 | root               | 2012-08-11 15:19 | Install        |    3
     9 | root               | 2012-08-11 15:11 | Install        |    1
     8 | root               | 2012-08-11 15:10 | Erase          |    1 EE
     7 | root               | 2012-08-10 17:44 | Install        |    1
     6 | root               | 2012-08-10 12:19 | Install        |    2
     5 | root               | 2012-08-10 12:14 | Install        |    3
     4 | root               | 2012-08-10 12:12 | I, U           |   13 E<
     3 | root               | 2012-08-09 13:01 | Install        |    1 >
     2 | root               | 2012-08-08 20:13 | I, U           |  292 EE
     1 | System            | 2012-08-08 17:15 | Install        |  560
history list

Oleme püüdnud oma näidetega katta kõik põhilised yum-käskude edendamise viisid. Kui midagi yum-käskudega seonduvat võib olla vahele jäänud. Palun värskendage meid meie kommentaarikasti kaudu. Niisiis, värskendame sama teavet saadud tagasiside põhjal.