In diesem Artikel lernen wir, wie man mit dem von RedHat entwickelten Tool YUM (Yellowdog Updater Modified) Pakete und Repositories auf Linux-Systemen installiert, aktualisiert, entfernt, sucht und verwaltet. Die in diesem Artikel gezeigten Beispielbefehle sind praktisch auf unserem CentOS 6.3-Server getestet, Sie können dieses Material für Studienzwecke, Zertifizierungen oder einfach nur zum Erkunden von Möglichkeiten, neue Pakete zu installieren und Ihr System auf dem neuesten Stand zu halten, verwenden. Die Grundvoraussetzung für diesen Artikel ist, dass Sie ein grundlegendes Verständnis von Befehlen und ein funktionierendes Linux-Betriebssystem haben, auf dem Sie alle unten aufgeführten Befehle erkunden und üben können.
Was ist YUM?
YUM (Yellowdog Updater Modified) ist ein quelloffenes kommandozeilen- sowie grafikbasiertes Paketverwaltungswerkzeug für RPM (RedHat Package Manager) basierte Linux-Systeme. Es ermöglicht Benutzern und Systemadministratoren die einfache Installation, Aktualisierung, Entfernung oder Suche von Softwarepaketen auf einem System. Es wurde von Seth Vidal entwickelt und unter der GPL (General Public License) als Open Source veröffentlicht, was bedeutet, dass jeder den Code herunterladen und darauf zugreifen darf, um Fehler zu beheben und eigene Pakete zu entwickeln. YUM nutzt zahlreiche Repositories von Drittanbietern, um Pakete automatisch zu installieren, indem es deren Abhängigkeiten auflöst.
1. Installieren Sie ein Paket mit YUM
Um ein Paket namens Firefox 14 zu installieren, führen Sie einfach den folgenden Befehl aus, der automatisch alle erforderlichen Abhängigkeiten für Firefox findet und installiert.
# yum install firefoxLoaded plugins: fastestmirrorDependencies Resolved================================================================================================ Package Arch Version Repository Size ================================================================================================Updating:firefox i686 10.0.6-1.el6.centos updates 20 MUpdating for dependencies: xulrunner i686 10.0.6-1.el6.centos updates 12 MTransaction Summary================================================================================================Install 0 Package(s)Upgrade 2 Package(s)Total download size: 32 MIs this ok : yDownloading 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:04Updated: firefox.i686 0:10.0.6-1.el6.centosDependency Updated: xulrunner.i686 0:10.0.6-1.el6.centosComplete!
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 firefox
2. Entfernen eines Pakets mit YUM
Um ein Paket komplett mit allen Abhängigkeiten zu entfernen, führen Sie einfach den folgenden Befehl wie unten gezeigt aus.
# yum remove firefoxLoaded plugins: fastestmirrorSetting up Remove ProcessResolving Dependencies--> Running transaction check---> Package firefox.i686 0:10.0.6-1.el6.centos set to be erased--> Finished Dependency ResolutionDependencies Resolved==================================================================================================== Package Arch Version Repository Size ====================================================================================================Removing: firefox i686 10.0.6-1.el6.centos @updates 23 MTransaction Summary====================================================================================================Remove 1 Package(s)Reinstall 0 Package(s)Downgrade 0 Package(s)Is this ok : yDownloading Packages:Running rpm_check_debugRunning Transaction TestTransaction Test SucceededRunning Transaction Erasing : firefox-10.0.6-1.el6.centos.i686 1/1Removed: firefox.i686 0:10.0.6-1.el6.centosComplete!
Auf die gleiche Weise fragt der obige Befehl nach einer Bestätigung, bevor ein Paket entfernt wird. Um die Sicherheitsabfrage zu deaktivieren, fügen Sie einfach die Option -y hinzu, wie unten gezeigt.
# yum -y remove firefox
3. Aktualisieren eines Pakets mit YUM
Angenommen, Sie haben eine veraltete Version des MySQL-Pakets und möchten es auf die neueste stabile Version aktualisieren. Führen Sie einfach den folgenden Befehl aus, er löst automatisch alle Abhängigkeitsprobleme und installiert sie.
# yum update mysqlLoaded plugins: fastestmirrorDependencies Resolved============================================================================================================ Package Arch Version Repository Size============================================================================================================Updating: vsftpd i386 2.0.5-24.el5_8.1 updates 144 kTransaction Summary============================================================================================================Install 0 Package(s)Upgrade 1 Package(s)Total size: 144 kIs this ok : yDownloading Packages:Running rpm_check_debugRunning Transaction TestFinished Transaction TestTransaction Test SucceededRunning Transaction Updating : vsftpd 1/2 Cleanup : vsftpd 2/2Updated: vsftpd.i386 0:2.0.5-24.el5_8.1Complete!
4. Auflisten eines Pakets mit YUM
Verwenden Sie die Listenfunktion, um nach einem bestimmten Paket mit Namen zu suchen. Um zum Beispiel nach einem Paket namens openssh zu suchen, verwenden Sie den Befehl.
# yum list opensshLoaded plugins: fastestmirrorLoading 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.sgInstalled Packagesopenssh.i386 4.3p2-72.el5_6.3 installedAvailable Packages 4.3p2-82.el5 base
Um die Suche genauer zu machen, geben Sie den Paketnamen mit seiner Version an, falls Sie diese kennen. Um zum Beispiel nach einer bestimmten Version des Pakets openssh-4.3p2 zu suchen, verwenden Sie den Befehl.
# yum list openssh-4.3p2
5. Suche nach einem Paket mit YUM
Wenn Sie sich nicht mehr an den genauen Namen des Pakets erinnern, dann verwenden Sie die Suchfunktion, um alle verfügbaren Pakete zu suchen, die dem Namen des von Ihnen angegebenen Pakets entsprechen. Zum Beispiel, um alle Pakete zu suchen, die mit dem Wort .
# yum search vsftpdLoaded plugins: fastestmirrorLoading 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 colorizerpure-ftpd-selinux.i386 : SELinux support for Pure-FTPDvsftpd.i386 : vsftpd - Very Secure Ftp Daemon
6. Informationen eines Pakets mit YUM abrufen
Angenommen, Sie möchten Informationen zu einem Paket wissen, bevor Sie es installieren. Um Informationen über ein Paket zu erhalten, geben Sie einfach den folgenden Befehl ein.
# yum info firefoxLoaded plugins: fastestmirrorLoading 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.inAvailable PackagesName : firefoxArch : i386Version : 10.0.6Release : 1.el5.centosSize : 20 MRepo : updatesSummary : Mozilla Firefox Web browserURL : 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 verfügbaren Pakete mit YUM auflisten
Um alle verfügbaren Pakete in der Yum-Datenbank aufzulisten, verwenden Sie den folgenden Befehl.
# yum list | less
8. Alle installierten Pakete mit YUM auflisten
Um alle installierten Pakete auf einem System aufzulisten, geben Sie einfach den unten stehenden Befehl aus, er zeigt alle installierten Pakete an.
# yum list installed | less
9. Yum-Provides-Funktion
Die Yum-Provides-Funktion 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 enthält.
# yum provides /etc/httpd/conf/httpd.confLoaded plugins: fastestmirrorhttpd-2.2.3-63.el5.centos.i386 : Apache HTTP ServerRepo : baseMatched from:Filename : /etc/httpd/conf/httpd.confhttpd-2.2.3-63.el5.centos.1.i386 : Apache HTTP ServerRepo : updatesMatched from:Filename : /etc/httpd/conf/httpd.confhttpd-2.2.3-65.el5.centos.i386 : Apache HTTP ServerRepo : updatesMatched from:Filename : /etc/httpd/conf/httpd.confhttpd-2.2.3-53.el5.centos.1.i386 : Apache HTTP ServerRepo : installedMatched from:Other : Provides-match: /etc/httpd/conf/httpd.conf
10. Mit Yum auf verfügbare Updates prüfen
Um herauszufinden, für wie viele der installierten Pakete auf Ihrem System Updates verfügbar sind, verwenden Sie den folgenden Befehl.
# yum check-update
11. System mit Yum aktualisieren
Um Ihr System mit allen Sicherheits- und Binärpaket-Updates auf dem neuesten Stand zu halten, führen Sie den folgenden Befehl aus. Es installiert alle aktuellen Patches und Sicherheitsupdates auf Ihrem System.
# yum update
12. Alle verfügbaren Gruppenpakete auflisten
In Linux sind eine Reihe von Paketen zu einer bestimmten Gruppe gebündelt. Anstatt einzelne Pakete mit yum zu installieren, können Sie eine bestimmte Gruppe installieren, die alle zugehörigen Pakete, die zu dieser Gruppe gehören, installieren wird. Um zum Beispiel alle verfügbaren Gruppen aufzulisten, geben Sie einfach folgenden Befehl ein.
# yum grouplistInstalled Groups: Administration Tools DNS Name Server Dialup Networking Support Editors Engineering and Scientific FTP Server Graphics Java Development Legacy Network ServerAvailable Groups: Authoring and Publishing Base Beagle Cluster Storage Clustering Development Libraries Development Tools Eclipse Educational Software KDE (K Desktop Environment) KDE Software Development
13. Installieren einer Gruppe von Paketen
Um eine bestimmte Paketgruppe zu installieren, verwenden wir die Option groupinstall. Um zum Beispiel „MySQL Database“ zu installieren, führen Sie einfach den folgenden Befehl aus.
# yum groupinstall 'MySQL Database'Dependencies Resolved=================================================================================================PackageArch Version Repository Size=================================================================================================Updating: unixODBC i386 2.2.11-10.el5 base 290 kInstalling for dependencies: unixODBC-libs i386 2.2.11-10.el5 base 551 kTransaction Summary=================================================================================================Install 1 Package(s)Upgrade 1 Package(s)Total size: 841 kIs this ok : yDownloading Packages:Running rpm_check_debugRunning Transaction TestFinished Transaction TestTransaction Test SucceededRunning Transaction Installing : unixODBC-libs1/3 Updating : unixODBC 2/3 Cleanup : unixODBC 3/3Dependency Installed: unixODBC-libs.i386 0:2.2.11-10.el5Updated: unixODBC.i386 0:2.2.11-10.el5Complete!
14. Aktualisieren eines Gruppenpakets
Um ein bereits installiertes Gruppenpaket zu aktualisieren, führen Sie einfach den folgenden Befehl aus.
# yum groupupdate 'DNS Name Server'Dependencies Resolved================================================================================================================ PackageArch VersionRepository 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 kUpdating 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 kTransaction Summary================================================================================================================Install 0 Package(s)Upgrade 4 Package(s)Total size: 2.0 MIs this ok : yDownloading Packages:Running rpm_check_debugRunning Transaction TestFinished Transaction TestTransaction Test SucceededRunning 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/8Updated: bind.i386 30:9.3.6-20.P1.el5_8.2 bind-chroot.i386 30:9.3.6-20.P1.el5_8.2Dependency Updated: bind-libs.i386 30:9.3.6-20.P1.el5_8.2 bind-utils.i386 30:9.3.6-20.P1.el5_8.2Complete!
15. Gruppenpakete entfernen
Um eine vorhandene installierte Gruppe aus dem 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.0Transaction Summary===========================================================================================================Remove 2 Package(s)Reinstall 0 Package(s)Downgrade 0 Package(s)Is this ok : yDownloading Packages:Running rpm_check_debugRunning Transaction TestFinished Transaction TestTransaction Test SucceededRunning Transaction Erasing : bind 1/2warning: /etc/sysconfig/named saved as /etc/sysconfig/named.rpmsave Erasing : bind-chroot 2/2Removed: bind.i386 30:9.3.6-20.P1.el5_8.2 bind-chroot.i386 30:9.3.6-20.P1.el5_8.2Complete!
16. Aktivierte Yum-Repositories auflisten
Um alle aktivierten Yum-Repositories in Ihrem System aufzulisten, verwenden Sie folgende Option.
# yum repolistrepo id repo name statusbase CentOS-5 - Base enabled: 2,725epel Extra Packages for Enterprise Linux 5 - i386 enabled: 5,783extras CentOS-5 - Extras enabled: 282mod-pagespeed mod-pagespeed enabled: 1rpmforge RHEL 5 - RPMforge.net - dag enabled: 11,290updates CentOS-5 - Updates enabled: 743repolist: 20,824
16. Alle aktivierten und deaktivierten Yum-Repositories auflisten
Der folgende Befehl zeigt alle aktivierten und deaktivierten Yum-Repositories auf dem System an.
# yum repolist allrepo id repo name statusC5.0-base CentOS-5.0 - Base disabledC5.0-centosplus CentOS-5.0 - Plus disabledC5.0-extras CentOS-5.0 - Extras disabledbase CentOS-5 - Base enabled: 2,725epel Extra Packages for Enterprise Linux 5 - i386 enabled: 5,783extras CentOS-5 - Extras enabled: 282repolist: 20,824
17. Ein Paket aus einem bestimmten Repository installieren
Um ein bestimmtes Paket aus einem bestimmten aktivierten oder deaktivierten Repository zu installieren, müssen Sie die Option -enablerepo in Ihrem yum-Befehl verwenden. Um zum Beispiel das Paket PhpMyAdmin 3.5.2 zu installieren, führen Sie einfach den Befehl aus.
# yum --enablerepo=epel install phpmyadminDependencies Resolved============================================================================================= Package Arch Version Repository Size=============================================================================================Installing: phpMyAdmin noarch 3.5.1-1.el6 epel 4.2 MTransaction Summary=============================================================================================Install 1 Package(s)Total download size: 4.2 MInstalled size: 17 MIs this ok : yDownloading Packages:phpMyAdmin-3.5.1-1.el6.noarch.rpm | 4.2 MB 00:25Running rpm_check_debugRunning Transaction TestTransaction Test SucceededRunning Transaction Installing : phpMyAdmin-3.5.1-1.el6.noarch 1/1 Verifying : phpMyAdmin-3.5.1-1.el6.noarch 1/1Installed: phpMyAdmin.noarch 0:3.5.1-1.el6Complete!
18. Interaktive Yum-Shell
Das Yum-Dienstprogramm bietet eine eigene Shell, in der Sie mehrere Befehle ausführen können.
# yum shellLoaded plugins: fastestmirrorSetting up Yum Shell> update httpdLoading 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.netSetting up Update Process>
19. Yum-Cache säubern
Standardmäßig hält yum alle Daten der aktivierten Pakete in /var/cache/yum/ mit jedem Unterverzeichnis, um alle zwischengespeicherten Dateien aus dem aktivierten Repository zu säubern, müssen Sie den folgenden Befehl regelmäßig ausführen, um den Cache zu säubern und sicherzustellen, dass kein unnötiger Speicherplatz verwendet wird. Wir wollen die Ausgabe des unten stehenden Befehls nicht angeben, da wir die gecachten Daten so lassen möchten, wie sie sind.
# yum clean all
20. Verlauf von Yum anzeigen
Um alle vergangenen Transaktionen des yum-Befehls anzuzeigen, verwenden Sie einfach den folgenden Befehl.
# yum historyLoaded plugins: fastestmirrorID | 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 | 560history list