20 YUM-kommandoer for Linux Package Management


I denne artikkelen vil vi lære hvordan du installerer, oppdaterer, fjerner, finner pakker, administrerer pakker og repositories på Linux-systemer ved å bruke YUM (Yellowdog Updater Modified)-verktøyet utviklet av RedHat.

Eksempelkommandoene vist i denne artikkelen er praktisk talt testet på vår RHEL 8-server, du kan bruke disse materialene til studieformål, RHEL-sertifiseringer, eller bare for å utforske måter å installere nye pakker og holde systemet oppdatert.

Det grunnleggende kravet til denne artikkelen er at du må ha en grunnleggende forståelse av kommandoer og et fungerende Linux-operativsystem, hvor du kan utforske og praktisere alle kommandoene som er oppført nedenfor.

Hva er YUM?

YUM (Yellowdog Updater Modified) er en åpen kildekode-kommandolinje så vel som et grafisk-basert pakkeadministrasjonsverktøy for RPM ( RedHat Package Manager) baserte Linux-systemer.

Den lar brukere og systemadministratorer enkelt installere, oppdatere, fjerne eller søke etter programvarepakker på et system. Den ble utviklet og utgitt av Seth Vidal under GPL (General Public License) som en åpen kildekode, noe som betyr at alle kan få lov til å laste ned og få tilgang til koden for å fikse feil og utvikle tilpassede pakker.

YUM bruker en rekke tredjeparts depoter for å installere pakker automatisk ved å løse avhengighetsproblemer.

Oppdatering: yum-kommandoen erstattes av dnf-kommandoen, som er en neste generasjons versjon av yum og anses å være erstatningen for YUM i de fleste nyere RPM-baserte distribusjoner.

1. Installer en pakke med YUM

For å installere en pakke kalt Firefox, bare kjør kommandoen nedenfor, den vil automatisk finne og installere alle nødvendige avhengigheter for 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!

Kommandoen ovenfor vil be om bekreftelse før du installerer en pakke på systemet ditt. Hvis du vil installere pakker automatisk uten å be om noen bekreftelse, bruk alternativet -y som vist nedenfor.

yum -y install firefox

2. Fjerne en pakke med YUM

For å fjerne en pakke fullstendig med alle avhengighetene, kjør bare 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åte vil kommandoen ovenfor be om bekreftelse før du fjerner en pakke. For å deaktivere bekreftelsesmeldingen, legg til alternativet -y som vist nedenfor.

yum -y remove firefox

3. Oppdatere en pakke med YUM

La oss si at du har en utdatert versjon av MySQL-pakken og at du vil oppdatere den til den siste stabile versjonen. Bare kjør følgende kommando, den vil automatisk løse alle avhengighetsproblemer og installere 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!

4. List en pakke med YUM

Bruk funksjonen liste for å søke etter den spesifikke pakken med et navn. For eksempel for å søke etter en pakke kalt OpenSSH, bruk 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 å gjøre søket mer nøyaktig, definer pakkenavn med deres versjon, i tilfelle du vet det. For for eksempel å søke etter en spesifikk versjon OpenSSH-4.3p2 av pakken, bruk kommandoen.

yum list openssh-4.3p2

5. Søk etter en pakke med YUM

Hvis du ikke husker det nøyaktige navnet på pakken, kan du bruke søke-funksjonen for å søke i alle tilgjengelige pakker for å matche navnet på pakken du spesifiserte. For eksempel for å søke i alle pakkene som samsvarer med 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

6. Få informasjon om en pakke med YUM

Si at du ønsker å vite informasjonen om en pakke før du installerer den. For å få informasjon om en pakke bare utfør kommandoen nedenfor.

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.

7. List alle tilgjengelige pakker med YUM

For å liste opp alle tilgjengelige pakker i Yum-databasen, bruk kommandoen nedenfor.

yum list | less

8. List opp alle installerte pakker som bruker YUM

For å liste opp alle de installerte pakkene på et system, bare gi kommandoen nedenfor, den vil vise alle de installerte pakkene.

yum list installed | less

9. Nam gir funksjon

Nam tilbyr funksjonen brukes til å finne hvilken pakke en spesifikk fil tilhører. For eksempel, hvis du vil vite navnet på pakken som 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

10. Se etter tilgjengelige oppdateringer ved å bruke Yum

For å finne ut hvor mange installerte pakker på systemet ditt som har oppdateringer tilgjengelig, sjekk for å bruke følgende kommando.

yum check-update

11. Oppdater systemet med Yum

For å holde systemet oppdatert med alle sikkerhets- og binære pakkeoppdateringer, kjør følgende kommando. Den vil installere alle de nyeste oppdateringene og sikkerhetsoppdateringene til systemet ditt.

yum update

12. List alle tilgjengelige gruppepakker

I Linux er en rekke pakker samlet i en bestemt gruppe. I stedet for å installere individuelle pakker med yum, kan du installere en bestemt gruppe som vil installere alle de relaterte pakkene som tilhører gruppen. For eksempel for å liste opp alle tilgjengelige grupper, bare utfør følgende 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

13. Installer gruppepakker

For å installere en bestemt pakkegruppe bruker vi alternativet som gruppeinstallering. For eksempel, for å installere "MySQL Database", bare kjør kommandoen nedenfor.

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!

14. Oppdater en gruppepakker

For å oppdatere eksisterende installerte gruppepakker, kjør bare 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!

15. Fjern gruppepakker

For å slette eller fjerne en eksisterende installert gruppe fra systemet, bruk bare 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!

16. Liste aktiverte Yum-lagre

For å liste opp alle aktiverte Yum-lagre i systemet ditt, bruk følgende alternativ.

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

16. List alle aktiverte og deaktiverte Yum-lagre

Følgende kommando vil vise alle aktiverte og deaktiverte yum-lagre 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

17. Installer en pakke fra et spesifikt depot

For å installere en bestemt pakke fra et spesifikt aktivert eller deaktivert depot, må du bruke --enablerepo et alternativ i yum-kommandoen. For å installere PhpMyAdmin-pakken, kjør bare 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!

18. Interaktivt Yum Shell

Yum-verktøyet gir et tilpasset skall hvor du kan utfø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
>

19. Rengjør Yum Cache

Som standard beholder yum alle depotaktiverte pakkedataene i /var/cache/yum/ med hver underkatalog. For å rense alle hurtigbufrede filer fra det aktiverte depotet, må du kjøre følgende kommando regelmessig for å rydd opp i all cache og sørg for at det ikke er noe unødvendig plass som brukes. Vi ønsker ikke å gi utdata fra kommandoen nedenfor, fordi vi liker å beholde bufrede data som de er.

yum clean all

20. Se historien til Yum

For å se alle tidligere transaksjoner av yum-kommandoen, bruk bare 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 prøvd å dekke alt det grunnleggende for å fremme yum-kommandoer med eksemplene deres. Hvis noe relatert til yum-kommandoer kan ha gått glipp av. Vennligst oppdater oss gjennom kommentarfeltet. Så vi fortsetter å oppdatere det samme basert på tilbakemeldinger mottatt.