20 YUM Kommandoen fir Linux Package Management


An dësem Artikel léiere mir wéi installéiere, aktualiséieren, ewechhuelen, Pakete fannen, Packagen a Repositories op Linux Systemer verwalten mat YUM (Yellowdog Updater Modified) Tool entwéckelt vu RedHat.

D'Beispill Kommandoen, déi an dësem Artikel ugewise ginn, gi praktesch op eise RHEL Zertifizéierungen getest, oder just fir Weeër ze entdecken fir nei Packagen z'installéieren an Äre System aktuell ze halen.

D'Basisfuerderung vun dësem Artikel ass, Dir musst e Basisverständnis vu Kommandoen hunn an e funktionnéierende Linux Betriebssystem, wou Dir all d'Befehle kann entdecken an praktizéieren hei ënnendrënner.

Wat ass YUM?

YUM (Yellowdog Updater Modified) ass eng Open Source Kommandozeil wéi och grafesch-baséiert Package Management Tool fir RPM (RedHat Package Manager) baséiert Linux Systemer.

Et erlaabt d'Benotzer a Systemadministrateuren einfach Software Packagen op engem System z'installéieren, ze aktualiséieren, ewechzehuelen oder ze sichen. Et gouf vum Seth Vidal ënner GPL (General Public License) als Open-Source entwéckelt a verëffentlecht, dat heescht datt jidderee kann erlaabt sinn de Code erofzelueden an ze kréien fir Bugs ze fixéieren an personaliséiert Packagen z'entwéckelen.

YUM benotzt vill Drëtt Partei Repositories fir Packagen automatesch z'installéieren andeems se hir Ofhängegkeetsprobleemer léisen.

Update: De yum Kommando gëtt duerch d'RPM-baséiert Verdeelungen ersat.

Fir e Package mam Numm Firefox z'installéieren, fuert just de Kommando hei ënnen, et wäert automatesch all erfuerderlech Ofhängegkeete fir Firefox fannen an installéieren.

# 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!

Deen uewe genannte Kommando freet d'Bestätegung ier Dir e Package op Ärem System installéiert. Wann Dir Packagen automatesch installéiere wëllt ouni eng Bestätegung ze froen, benotzt d'Optioun -y wéi hei ënnendrënner Beispill gewisen.

# yum -y install firefox

Fir e Package komplett mat all Ofhängegkeeten ze läschen, fuert just de folgende Kommando wéi et hei ënnendrënner steet.

# 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!

Am selwechte Wee wäert de uewe genannte Kommando fir Bestätegung froen ier Dir e Paket ewechhuelt. Fir d'Bestätegungsprompt auszeschalten, füügt einfach d'Optioun -y derbäi wéi hei ënnendrënner.

# yum -y remove firefox

Loosst eis soen datt Dir eng al Versioun vum MySQL Package hutt an Dir wëllt et op déi lescht stabil Versioun aktualiséieren. Gitt einfach de folgende Kommando aus, et wäert automatesch all Ofhängegkeetsprobleemer léisen an se installéieren.

# 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!

Benotzt d'Lëschtfunktioun fir de spezifesche Package mat engem Numm ze sichen. Zum Beispill fir no engem Package mam Numm OpenSSH ze sichen, benotzt de Kommando.

# 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

Fir Är Sich méi genee ze maachen, definéiert Package Nimm mat hirer Versioun, am Fall wou Dir wësst. Zum Beispill fir eng spezifesch Versioun OpenSSH-4.3p2 vum Package ze sichen, benotzt de Kommando.

# yum list openssh-4.3p2

[Dir kënnt och gären hunn: Wéi sécheren an Harden OpenSSH Server]

Wann Dir de genauen Numm vum Package net erënnert, benotzt dann d'Sichfunktioun fir all verfügbare Packagen ze sichen fir mam Numm vum Package ze passen deen Dir uginn hutt. Zum Beispill, fir all Packagen ze sichen déi dem Wuert passen.

# 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

Sot Dir wëllt d'Informatioun iwwer e Package wësse ier Dir se installéiert. Fir Informatioun iwwer e Package ze kréien, gitt just de Kommando ënnen.

# 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.

Fir all verfügbare Packagen an der Yum Datebank ze lëschten, benotzt de Kommando ënnen.

# yum list | less

Fir all installéiert Packagen op engem System ze lëschten, gitt just de Kommando hei ënnen, et weist all installéiert Packagen.

# yum list installed | less

Yum bitt Funktioun gëtt benotzt fir ze fannen zu wéi engem Package eng spezifesch Datei gehéiert. Zum Beispill, wann Dir den Numm vum Package wësse wëllt deen den /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

Fir erauszefannen wéi vill installéiert Packagen op Ärem System Updates verfügbar hunn, kontrolléiert fir de folgende Kommando ze benotzen.

# yum check-update

Fir Äre System aktuell mat all Sécherheets- a binäre Pakupdates ze halen, fuert de folgende Kommando. Et wäert all déi lescht Patches a Sécherheetsupdates op Ärem System installéieren.

# yum update

Am Linux sinn eng Zuel vu Packagen an eng bestëmmte Grupp gebündelt. Amplaz eenzel Pakete mat yum z'installéieren, kënnt Dir e bestëmmte Grupp installéieren, deen all déi verwandte Packagen installéiert, déi zu der Grupp gehéieren. Zum Beispill fir all verfügbare Gruppen ze lëschten, gitt just de folgende Kommando aus.

# 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

Fir eng bestëmmte Package Grupp z'installéieren, benotze mir d'Optioun als Groupinstall. Zum Beispill, fir MySQL Datebank z'installéieren, fuert just de Kommando hei ënnen aus.

# 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!

Fir all existent installéiert Gruppepäck ze aktualiséieren, fuert just de folgende Kommando aus wéi et hei ënnendrënner steet.

# 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!

Fir all existent installéiert Grupp aus dem System ze läschen oder ze läschen, benotzt just de Kommando hei ënnen.

# 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!

Fir all aktivéiert Yum Repositories an Ärem System ze lëschten, benotzt déi folgend Optioun.

# 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

De folgende Kommando weist all aktivéiert an behënnert Yum Repositories um System.

# 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

Fir e bestëmmte Package aus engem spezifeschen aktivéierten oder behënnerte Repository z'installéieren, musst Dir --enablerepo eng Optioun an Ärem yum Kommando benotzen. Zum Beispill fir de PhpMyAdmin Package z'installéieren, fuert just de Kommando aus.

# 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!

Yum Utility bitt eng personaliséiert Shell wou Dir verschidde Befehle kënnt ausféieren.

# 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
>

Par défaut hält yum all d'Repository aktivéiert Packagedaten an /var/cache/yum/ mat all Ënnerverzeechnes, fir all cache Dateien aus dem aktivéierten Repository ze botzen, musst Dir de folgende Kommando regelméisseg ausféieren fir all Cache ze botzen an ze maachen sécher, datt et näischt onnéideg Plaz benotzt gëtt. Mir wëllen net d'Ausgab vum Kommando hei ënnen ginn, well mir gären cachéiert Daten behalen wéi se sinn.

# yum clean all

Fir all déi vergaang Transaktioune vum Yum Kommando ze gesinn, benotzt just de folgende Kommando.

# 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

Mir hu probéiert all d'Basis ze decken fir Yum Kommandoen mat hiren Beispiller ze förderen. Wann eppes Zesummenhang mat yum Kommandoen hu vläicht verpasst. Update eis w.e.g. duerch eis Kommentarfeld. Also, mir aktualiséieren ëmmer datselwecht op Basis vu Feedback kritt.