20 YUM-Befehle für die Linux-Paketverwaltung
In diesem Artikel erfahren Sie, wie Sie mit dem von RedHat entwickelten Tool YUM (Yellowdog Updater Modified) auf Linux-Systemen installieren, aktualisieren, entfernen, Pakete finden, Pakete und Repositories verwalten.
Die in diesem Artikel gezeigten Beispielbefehle wurden praktisch auf unserem RHEL 8-Server getestet. Sie können diese Materialien zu Studienzwecken, für RHEL-Zertifizierungen oder einfach nur zur Erkundung von Möglichkeiten zur Installation neuer Pakete und zur Aktualisierung Ihres Systems verwenden.
Die Grundvoraussetzung für diesen Artikel ist, dass Sie über ein grundlegendes Verständnis von Befehlen und ein funktionierendes Linux-Betriebssystem verfügen, in dem Sie alle unten aufgeführten Befehle erkunden und üben können.
Was ist YUM?
YUM (Yellowdog Updater Modified) ist ein Open-Source-Befehlszeilen- und grafikbasiertes Paketverwaltungstool für RPM (RedHat Package Manager) basierte Linux-Systeme.
Es ermöglicht Benutzern und Systemadministratoren, Softwarepakete auf einem System einfach zu installieren, zu aktualisieren, zu entfernen oder zu suchen. Es wurde von Seth Vidal unter der GPL (General Public License) als Open Source entwickelt und veröffentlicht, was bedeutet, dass jeder den Code herunterladen und darauf zugreifen kann, um Fehler zu beheben und benutzerdefinierte Pakete zu entwickeln.
YUM verwendet zahlreiche Repositories von Drittanbietern, um Pakete automatisch zu installieren, indem ihre Abhängigkeitsprobleme gelöst werden.
Update: Der Befehl yum wird durch den Befehl dnf ersetzt, der eine Version von yum der nächsten Generation ist und als Ersatz für YUM in den meisten neueren RPM-basierten Distributionen gilt.
1. Installieren Sie ein Paket mit YUM
Um ein Paket namens Firefox zu installieren, führen Sie einfach den folgenden Befehl aus, es wird automatisch alle erforderlichen Abhängigkeiten für Firefox finden und installieren.
# 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!Der obige Befehl fragt nach einer Bestätigung, bevor ein Paket auf Ihrem System installiert wird. Wenn Sie Pakete automatisch installieren möchten, ohne nach einer Bestätigung zu fragen, verwenden Sie die Option -y, wie im folgenden Beispiel gezeigt.
# yum -y install firefox2. Entfernen eines Pakets mit YUM
Um ein Paket mit allen Abhängigkeiten vollständig zu entfernen, führen Sie einfach den folgenden Befehl aus, wie unten gezeigt.
# 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!Auf die gleiche Weise fragt der obige Befehl nach einer Bestätigung, bevor ein Paket entfernt wird. Um die Bestätigungsaufforderung zu deaktivieren, fügen Sie einfach die Option -y hinzu, wie unten gezeigt.
# yum -y remove firefox3. Aktualisieren eines Pakets mit YUM
Nehmen wir an, Sie haben eine veraltete Version des MySQL-Pakets und möchten sie auf die neueste stabile Version aktualisieren. Führen Sie einfach den folgenden Befehl aus, um automatisch alle Abhängigkeitsprobleme zu lösen und sie zu installieren.
# 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. Auflisten eines Pakets mit YUM
Verwenden Sie die Funktion list, um nach dem spezifischen Paket mit einem Namen zu suchen. Um beispielsweise nach einem Paket mit dem Namen OpenSSH zu suchen, verwenden Sie den Befehl.
# 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 baseUm Ihre Suche genauer zu gestalten, definieren Sie Paketnamen mit ihrer Version, falls Sie es wissen. Um beispielsweise nach einer bestimmten Version OpenSSH-4.3p2 des Pakets zu suchen, verwenden Sie den Befehl.
# yum list openssh-4.3p25. Suchen Sie mit YUM nach einem Paket
Wenn Sie sich nicht an den genauen Namen des Pakets erinnern, verwenden Sie die Suchfunktion , um alle verfügbaren Pakete nach dem Namen des von Ihnen angegebenen Pakets zu durchsuchen. Zum Beispiel, um alle Pakete zu durchsuchen, die mit dem Wort übereinstimmen.
# 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 Daemon6. Abrufen von Informationen über ein Paket mit YUM
Angenommen, Sie möchten die Informationen über ein Paket wissen, bevor Sie es installieren. Um Informationen über ein Paket zu erhalten, geben Sie einfach den folgenden Befehl ein.
# 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. Listen Sie alle verfügbaren Pakete mit YUM auf
Um alle verfügbaren Pakete in der Yum-Datenbank aufzulisten, verwenden Sie den folgenden Befehl.
# yum list | less8. Listen Sie alle installierten Pakete mit YUM auf
Um alle installierten Pakete auf einem System aufzulisten, geben Sie einfach den folgenden Befehl ein, es werden alle installierten Pakete angezeigt.
# yum list installed | less9. Yum sorgt für Funktion
Die Funktion Yum provides wird verwendet, um herauszufinden, zu welchem Paket eine bestimmte Datei gehört. Zum Beispiel, wenn Sie den Namen des Pakets wissen möchten, das die Datei /etc/httpd/conf/httpd.conf hat.
# 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.conf10. Mit Yum nach verfügbaren Updates suchen
Um herauszufinden, für wie viele installierte Pakete auf Ihrem System Updates verfügbar sind, aktivieren Sie den folgenden Befehl.
# yum check-update11. Aktualisieren Sie das System mit Yum
Um Ihr System mit allen Sicherheits- und Binärpaket-Updates auf dem neuesten Stand zu halten, führen Sie den folgenden Befehl aus. Es werden die neuesten Patches und Sicherheitsupdates auf Ihrem System installiert.
# yum update12. Listen Sie alle verfügbaren Gruppenpakete auf
Unter Linux werden eine Reihe von Paketen in einer bestimmten Gruppe gebündelt. Anstatt einzelne Pakete mit yum zu installieren, können Sie eine bestimmte Gruppe installieren, die alle zugehörigen Pakete installiert, die zu der Gruppe gehören. Um beispielsweise alle verfügbaren Gruppen aufzulisten, geben Sie einfach den folgenden Befehl ein.
# 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 Development13. Gruppenpakete installieren
Um eine bestimmte Paketgruppe zu installieren, verwenden wir die Option groupinstall. Um beispielsweise "MySQL Database" zu installieren, führen Sie einfach den folgenden Befehl 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!14. Aktualisieren Sie ein Gruppenpaket
Um vorhandene installierte Gruppenpakete zu aktualisieren, führen Sie einfach den folgenden Befehl aus, wie unten gezeigt.
# 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. Gruppenpakete entfernen
Um eine vorhandene installierte Gruppe vom System zu löschen oder zu entfernen, verwenden Sie einfach den folgenden Befehl.
# 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. Auflisten aktivierter Yum-Repositories
Um alle aktivierten Yum-Repositories in Ihrem System aufzulisten, verwenden Sie die folgende Option.
# 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,82416. Listen Sie alle aktivierten und deaktivierten Yum-Repositories auf
Der folgende Befehl zeigt alle aktivierten und deaktivierten yum-Repositories auf dem System an.
# 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,82417. Installieren Sie ein Paket aus einem bestimmten Repository
Um ein bestimmtes Paket aus einem bestimmten aktivierten oder deaktivierten Repository zu installieren, müssen Sie --enablerepo verwenden, eine Option in Ihrem yum-Befehl. Um beispielsweise das PhpMyAdmin-Paket zu installieren, führen Sie einfach den Befehl 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!18. Interaktive Yum-Hülle
Das Yum-Dienstprogramm bietet eine benutzerdefinierte Shell, in der Sie mehrere Befehle ausführen können.
# 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. Yum Cache reinigen
Standardmäßig speichert yum alle Repository-fähigen Paketdaten in /var/cache/yum/ mit jedem Unterverzeichnis, um alle zwischengespeicherten Dateien aus dem aktivierten Repository zu bereinigen, müssen Sie den folgenden Befehl regelmäßig ausführen, um den gesamten Cache zu bereinigen und sicherzustellen, dass kein unnötiger Speicherplatz verwendet wird. Wir möchten die Ausgabe des folgenden Befehls nicht geben, da wir die zwischengespeicherten Daten so behalten möchten, wie sie sind.
# yum clean all20. Geschichte von Yum anzeigen
Um alle vergangenen Transaktionen des yum-Befehls anzuzeigen, verwenden Sie einfach den folgenden Befehl.
# 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 listWir haben versucht, alle grundlegenden bis voranschreitenden Yum-Befehle mit ihren Beispielen abzudecken. Wenn irgendetwas, das mit Yum-Befehlen zu tun hat, möglicherweise übersehen wurde. Bitte informieren Sie uns über unser Kommentarfeld. Daher aktualisieren wir diese auf der Grundlage des erhaltenen Feedbacks ständig.