20 Linux YUM (Yellowdog Updater, Modified) commando’s voor pakketbeheer

In dit artikel zullen we leren hoe u pakketten installeert, bijwerkt, verwijdert, zoekt, pakketten en repositories beheert op Linux-systemen met behulp van de YUM (Yellowdog Updater Modified) tool ontwikkeld door RedHat.

De voorbeeldcommando’s die in dit artikel worden getoond, zijn praktisch getest op onze RHEL 8-server, u kunt deze materialen gebruiken voor studiedoeleinden, RHEL-certificeringen, of gewoon om manieren te verkennen om nieuwe pakketten te installeren en uw systeem up-to-date te houden.

De basisvereiste van dit artikel is dat u een basiskennis van commando’s en een werkend Linux-besturingssysteem moet hebben, waar u alle hieronder vermelde commando’s kunt verkennen en oefenen.

Wat is YUM?

YUM (Yellowdog Updater Modified) is een open-source op opdrachtregel gebaseerd en grafisch pakketbeheerinstrument voor RPM (RedHat Package Manager) gebaseerde Linux-systemen.

Het maakt gebruikers en systeembeheerders mogelijk om eenvoudig softwarepakketten te installeren, bij te werken, te verwijderen of te zoeken op een systeem. Het werd ontwikkeld en uitgebracht door Seth Vidal onder GPL (General Public License) als open-source, wat betekent dat iedereen toegang kan krijgen tot de code om bugs te repareren en aangepaste pakketten te ontwikkelen.

YUM gebruikt tal van externe repositories om pakketten automatisch te installeren door hun afhankelijkheidsproblemen op te lossen.

Update: Het yum commando is vervangen door het dnf commando, wat een volgende generatie versie van yum is en beschouwd wordt als de vervanging van YUM in de meeste nieuwere RPM-gebaseerde distributies.

1. Installeer een Pakket met YUM

Om een pakket genaamd Firefox te installeren, voer gewoon het onderstaande commando uit, het zal automatisch alle vereiste afhankelijkheden voor Firefox vinden en installeren.

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

Het bovenstaande commando zal om bevestiging vragen voordat het een pakket op uw systeem installeert. Als u pakketten automatisch wilt installeren zonder om bevestiging te vragen, gebruik dan de optie -y zoals in het onderstaande voorbeeld wordt getoond.2. Verwijderen van een Pakket met YUM

# yum -y install firefox

2. Een pakket verwijderen met YUM

Om een pakket volledig te verwijderen, inclusief alle afhankelijkheden, voer je gewoon de volgende opdracht uit zoals hieronder weergegeven.

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

Op dezelfde manier zal de bovenstaande opdracht om bevestiging vragen voordat een pakket wordt verwijderd. Om de bevestigingsprompt uit te schakelen, voeg je gewoon de optie -y toe zoals hieronder weergegeven.

# yum -y remove firefox

3. Een pakket bijwerken met YUM

Stel dat je een verouderde versie van het MySQL pakket hebt en je wilt deze bijwerken naar de nieuwste stabiele versie. Voer gewoon de volgende opdracht uit, deze lost automatisch alle afhankelijkheidsproblemen op en installeert ze.

# 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. Een pakket opzoeken met YUM

Gebruik de lijst functie om naar het specifieke pakket met een naam te zoeken. Om bijvoorbeeld naar een pakket genaamd OpenSSH te zoeken, gebruik de volgende opdracht.

# 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

Om je zoekopdracht nauwkeuriger te maken, definieer de pakketnamen met hun versie, mocht je deze weten. Om bijvoorbeeld naar een specifieke versie OpenSSH-4.3p2 van het pakket te zoeken, gebruik de volgende opdracht.

# yum list openssh-4.3p2

[ Je zou ook kunnen interesseren: Hoe een OpenSSH-server te beveiligen en versterken ]

5. Een pakket zoeken met YUM

Als je de exacte naam van de pakket niet meer kunt onthouden, gebruik dan de zoek functie om alle beschikbare pakketten te zoeken die overeenkomen met de naam van het pakket dat je hebt opgegeven. Bijvoorbeeld, om alle pakketten te zoeken die overeenkomen met het woord.

# 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. Informatie over een Pakket opvragen met YUM

Stel dat je informatie over een pakket wilt weten voordat je het installeert. Om informatie over een pakket op te vragen, voer je de volgende opdracht uit.

# 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. Alle beschikbare Pakketten weergeven met YUM

Om alle beschikbare pakketten in de Yum-database weer te geven, gebruik je de volgende opdracht.

# yum list | less

8. Alle geïnstalleerde Pakketten weergeven met YUM

Om alle geïnstalleerde pakketten op een systeem weer te geven, voer je gewoon de volgende opdracht uit, het zal alle geïnstalleerde pakketten weergeven.

# yum list installed | less

9. Yum Biedt Functie

De Yum biedt functie wordt gebruikt om te bepalen welk pakket een specifiek bestand bevat. Bijvoorbeeld, als je de naam van het pakket wilt weten dat het /etc/httpd/conf/httpd.conf bevat.

# 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. Controleren op beschikbare updates met Yum

Om te zien hoeveel geïnstalleerde pakketten op je systeem updates beschikbaar hebben, gebruik je de volgende opdracht.

# yum check-update

11. Systeem bijwerken met Yum

Om je systeem up-to-date te houden met alle beveiligings- en binaire pakket updates, voer je de volgende opdracht uit. Het zal alle nieuwste patches en beveiligingsupdates op je systeem installeren.

# yum update

12. Alle beschikbare groepspakketten weergeven

Op Linux worden verschillende pakketten samengevoegd in een bepaalde groep. In plaats van individuele pakketten met yum te installeren, kun je een bepaalde groep installeren die alle verwante pakketten die tot de groep behoren zal installeren. Om bijvoorbeeld alle beschikbare groepen te vermelden, voer je gewoon het volgende commando uit.

# 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. Installeer Groeps Pakketten

Om een bepaalde groep pakketten te installeren, gebruiken we de optie als groupinstall. Als je bijvoorbeeld ” MySQL Database ” wilt installeren, voer dan gewoon het onderstaande commando uit.

# 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. Update een Groeps Pakketten

Om een bestaand geïnstalleerd groeps pakket bij te werken, voer je gewoon het volgende commando uit zoals hieronder weergegeven.

# 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. Verwijder Groeps Pakketten

Om een bestaande geïnstalleerde groep van het systeem te verwijderen, gebruik je gewoon het onderstaande commando.

# 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. Lijst van ingeschakelde Yum-opslagplaatsen

Om alle ingeschakelde Yum-opslagplaatsen in je systeem te vermelden, gebruik je de volgende optie.

# 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. Lijst van alle ingeschakelde en uitgeschakelde Yum-opslagplaatsen

Het volgende commando toont alle ingeschakelde en uitgeschakelde yum-opslagplaatsen op het systeem.

# 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. Installeer een Pakket vanuit een Specifieke Opslagplaats

Om een bepaald pakket vanuit een specifiek ingeschakeld of uitgeschakeld opslagplaats te installeren, moet je de --enablerepo optie in je yum commando gebruiken. Om bijvoorbeeld het PhpMyAdmin pakket te installeren, voer je gewoon het commando uit.

# 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. Interactieve Yum Shell

De Yum-tool biedt een aangepaste shell waar u meerdere opdrachten kunt uitvoeren.

# 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. Leeg maken van Yum Cache

Standaard bewaart yum alle pakketgegevens van de ingeschakelde repository in /var/cache/yum/ met elk submapje. Om alle gecachete bestanden uit de ingeschakelde repository te verwijderen, moet u de volgende opdracht regelmatig uitvoeren om alle cache te wissen en ervoor te zorgen dat er niets onnodigs wordt gebruikt. We willen het resultaat van de onderstaande opdracht niet geven, omdat we graag gegevens in de cache willen behouden zoals ze zijn.

# yum clean all

20. Bekijk geschiedenis van Yum

Om alle vorige transacties van de yum-opdracht te bekijken, gebruikt u de volgende opdracht.

# 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

We hebben geprobeerd om alle basis tot geavanceerde yum-opdrachten met hun voorbeelden te behandelen. Als er iets met betrekking tot yum-opdrachten is gemist, laat het ons dan weten via onze commentaarbox. Zo blijven we updaten op basis van de ontvangen feedback.

Source:
https://www.tecmint.com/20-linux-yum-yellowdog-updater-modified-commands-for-package-mangement/