20 YUM-kommandoer til Linux Package Mangement


I denne artikel lærer vi at installere, opdatere, fjerne, finde pakker, administrere pakker og arkiver på Linux-systemer ved hjælp af YUM-værktøjet (Yellowdog Updater Modified) udviklet af RedHat. Eksempelkommandoerne vist i denne artikel er praktisk talt testet på vores CentOS 6.3-server, du kan bruge dette materiale til undersøgelsesformål, certificeringer eller bare for at udforske måder at installere nye pakker og holde dit system opdateret. Det grundlæggende krav i denne artikel er, at du skal have en grundlæggende forståelse af kommandoer og et fungerende Linux-operativsystem, hvor du kan udforske og øve alle de kommandoer, der er anført nedenfor.

Hvad er YUM?

YUM (Yellowdog Updater Modified) er en open source kommandolinje såvel som et grafisk baseret pakkehåndteringsværktøj til RPM (RedHat Package Manager) -baserede Linux-systemer. Det giver brugere og systemadministrator mulighed for nemt at installere, opdatere, fjerne eller søge softwarepakker på et system. Det blev udviklet og udgivet af Seth Vidal under GPL (General Public License) som en open source, hvilket betyder, at alle har lov til at downloade og få adgang til koden for at rette fejl og udvikle tilpassede pakker. YUM bruger adskillige tredjepartslagre til automatisk at installere pakker ved at løse deres afhængighedsproblemer.

For at installere en pakke kaldet Firefox 14 skal du bare køre nedenstående kommando, den finder automatisk og installerer alle nødvendige afhængigheder til Firefox.

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

Ovenstående kommando beder om bekræftelse, inden du installerer en pakke på dit system. Hvis du vil installere pakker automatisk uden at bede om nogen bekræftelse, skal du bruge option -y som vist i eksemplet nedenfor.

# yum -y install firefox

For at fjerne en pakke fuldstændigt med alle deres afhængigheder skal du bare køre følgende kommando som vist nedenfor.

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

På samme måde vil ovenstående kommando bede om bekræftelse, før en pakke fjernes. For at deaktivere bekræftelsesprompten skal du blot tilføje option -y som vist nedenfor.

# yum -y remove firefox

Lad os sige, at du har en forældet version af MySQL-pakken, og at du vil opdatere den til den seneste stabile version. Kør bare følgende kommando, den løser automatisk alle afhængighedsproblemer og installerer dem.

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

Brug listefunktionen til at søge efter den specifikke pakke med navn. For eksempel for at søge efter en pakke kaldet openssh, brug kommandoen.

# 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

For at gøre din søgning mere præcis skal du definere pakke navn med deres version, hvis du kender det. For eksempel for at søge efter en bestemt version openssh-4.3p2 af pakken, skal du bruge kommandoen.

# yum list openssh-4.3p2

Hvis du ikke kan huske det nøjagtige navn på pakken, skal du bruge søgefunktionen til at søge i alle tilgængelige pakker for at matche navnet på den pakke, du har angivet. For eksempel for at søge i alle de pakker, der matcher ordet.

# 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

Sig, at du gerne vil vide oplysninger om en pakke, før du installerer den. For at få oplysninger om en pakke skal du blot udstede nedenstående kommando.

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

Brug nedenstående kommando til at liste alle tilgængelige pakker i Yum-databasen.

# yum list | less

For at liste alle de installerede pakker på et system, skal du blot udstede kommandoen nedenfor, det vil vise alle de installerede pakker.

# yum list installed | less

Yum giver funktion bruges til at finde hvilken pakke en bestemt fil tilhører. For eksempel, hvis du vil vide navnet på den pakke, der har /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

For at finde ud af, hvor mange af installerede pakker på dit system der er tilgængelige opdateringer, skal du bruge følgende kommando til at kontrollere.

# yum check-update

For at holde dit system opdateret med alle sikkerheds- og binære pakkeopdateringer, skal du køre følgende kommando. Det installerer alle nyeste programrettelser og sikkerhedsopdateringer til dit system.

# yum update

I Linux er antallet af pakker samlet til en bestemt gruppe. I stedet for at installere individuelle pakker med yum kan du installere en bestemt gruppe, der installerer alle de relaterede pakker, der hører til gruppen. For eksempel for at liste alle de tilgængelige grupper skal du blot udstede efter kommando.

# 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

For at installere en bestemt pakke gruppe bruger vi option som groupinstall. For eksempel, for at installere “MySQL Database” skal du bare udføre nedenstående kommando.

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

For at opdatere eksisterende installerede gruppepakker skal du bare køre følgende kommando som vist nedenfor.

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

For at slette eller fjerne enhver eksisterende installeret gruppe fra systemet skal du bare bruge kommandoen nedenfor.

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

Brug følgende mulighed for at liste alle aktiverede Yum-arkiver i dit system.

# 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

Den følgende kommando viser alle aktiverede og deaktiverede yum-arkiver på systemet.

# 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

For at installere en bestemt pakke fra et specifikt aktiveret eller deaktiveret lager, skal du bruge –enablerepo-indstillingen i din yum-kommando. For eksempel for at installere PhpMyAdmin 3.5.2-pakken skal du bare udføre kommandoen.

# 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-værktøjet giver en brugerdefineret skal, hvor du kan udføre flere kommandoer.

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

Som standard opbevarer yum alle de lagringsaktiverede pakkedata i/var/cache/yum/med hver underkatalog. For at rense alle cachelagrede filer fra aktiveret lager, skal du køre følgende kommando regelmæssigt for at rydde op i hele cachen og sørge for at der ikke er noget unødvendigt plads, der bruger. Vi ønsker ikke at give output fra nedenstående kommando, fordi vi gerne beholder cachelagrede data, som de er.

# yum clean all

For at se alle de tidligere transaktioner med yum-kommandoen skal du bare bruge følgende 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

Vi har forsøgt at dække alt det grundlæggende for at fremme yum-kommandoer med deres eksempler. Hvis noget relateret til yum-kommandoer måske har gået glip af. Opdater os venligst gennem vores kommentarfelt. Så vi fortsætter med at opdatere det samme baseret på modtaget feedback.