20 YUM-opdrachten voor Linux-pakketbeheer
In dit artikel leren we hoe u pakketten kunt installeren, bijwerken, verwijderen, zoeken, pakketten en opslagplaatsen kunt beheren op Linux-systemen met behulp van de YUM (Yellowdog Updater Modified) tool ontwikkeld door RedHat.
De voorbeeldopdrachten in dit artikel zijn praktisch getest op onze RHEL 8-server. U kunt dit materiaal 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 opdrachten en een werkend Linux-besturingssysteem moet hebben, waar u alle onderstaande opdrachten kunt verkennen en oefenen.
Wat is YUM?
YUM (Yellowdog Updater Modified) is een open-source opdrachtregel- en grafisch gebaseerde pakketbeheertool voor RPM ( Op RedHat Package Manager) gebaseerde Linux-systemen.
Hiermee kunnen gebruikers en systeembeheerders eenvoudig softwarepakketten op een systeem installeren, bijwerken, verwijderen of zoeken. Het is ontwikkeld en uitgebracht door Seth Vidal onder GPL (General Public License) als open source, wat betekent dat iedereen mag downloaden en krijg toegang tot de code om bugs op te lossen en aangepaste pakketten te ontwikkelen.
YUM gebruikt talloze opslagplaatsen van derden om pakketten automatisch te installeren door hun afhankelijkhedenproblemen op te lossen.
Update: het yum commando is vervangen door het dnf commando, wat een volgende generatie versie van yum is en wordt beschouwd als de vervanging van YUM in de meeste nieuwere op RPM gebaseerde distributies.
1. Installeer een pakket met YUM
Om een pakket genaamd Firefox te installeren, voert u gewoon de onderstaande opdracht 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!
De bovenstaande opdracht vraagt om bevestiging voordat een pakket op uw systeem wordt geïnstalleerd. Als u pakketten automatisch wilt installeren zonder om enige bevestiging te vragen, gebruikt u de optie -y
zoals hieronder weergegeven.
yum -y install firefox
2. Een pakket verwijderen met YUM
Om een pakket volledig te verwijderen met alle afhankelijkheden, voert u 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 het bovenstaande commando om bevestiging vragen voordat een pakket wordt verwijderd. Om de bevestigingsprompt uit te schakelen, voegt u eenvoudig de optie -y
toe, zoals hieronder weergegeven.
yum -y remove firefox
3. Een pakket bijwerken met YUM
Stel dat u een verouderde versie van het MySQL-pakket heeft en deze wilt bijwerken naar de nieuwste stabiele versie. Voer gewoon de volgende opdracht uit. Alle afhankelijkheden worden automatisch opgelost en geïnstalleerd.
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. Maak een lijst van een pakket met YUM
Gebruik de functie lijst om naar het specifieke pakket met een naam te zoeken. Als u bijvoorbeeld wilt zoeken naar een pakket met de naam OpenSSH, gebruikt u de 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 uw zoekopdracht nauwkeuriger te maken, definieert u pakketnamen met hun versie, voor het geval u dit weet. Als u bijvoorbeeld naar een specifieke versie OpenSSH-4.3p2 van het pakket wilt zoeken, gebruikt u de opdracht.
yum list openssh-4.3p2
5. Zoek naar een pakket met YUM
Als u de exacte naam van het pakket niet meer weet, gebruik dan de zoekfunctie om alle beschikbare pakketten te doorzoeken, zodat deze overeenkomen met de naam van het pakket dat u heeft opgegeven. Om bijvoorbeeld alle pakketten te doorzoeken 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. Krijg informatie over een pakket met YUM
Stel dat u de informatie over een pakket wilt weten voordat u het installeert. Om informatie over een pakket te krijgen, geeft u gewoon het onderstaande commando op.
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. Maak een lijst van alle beschikbare pakketten met YUM
Om alle beschikbare pakketten in de Yum-database weer te geven, gebruikt u de onderstaande opdracht.
yum list | less
8. Maak een lijst van alle geïnstalleerde pakketten met YUM
Om alle geïnstalleerde pakketten op een systeem weer te geven, hoeft u alleen maar de onderstaande opdracht uit te voeren. Alle geïnstalleerde pakketten worden weergegeven.
yum list installed | less
9. Yum biedt functie
De Yum biedt functie wordt gebruikt om te vinden tot welk pakket een specifiek bestand behoort. Als u bijvoorbeeld de naam wilt weten van het pakket met de /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. Controleer op beschikbare updates met Yum
Om te zien voor hoeveel geïnstalleerde pakketten op uw systeem updates beschikbaar zijn, controleert u of u de volgende opdracht gebruikt.
yum check-update
11. Update het systeem met Yum
Om uw systeem up-to-date te houden met alle beveiligings- en binaire pakketupdates, voert u de volgende opdracht uit. Het installeert de nieuwste patches en beveiligingsupdates op uw systeem.
yum update
12. Maak een lijst van alle beschikbare groepspakketten
In Linux zijn een aantal pakketten gebundeld in een bepaalde groep. In plaats van individuele pakketten met yum te installeren, kun je een bepaalde groep installeren die alle gerelateerde pakketten installeert die tot de groep behoren. Om bijvoorbeeld alle beschikbare groepen weer te geven, geeft u gewoon de volgende opdracht.
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 groepspakketten
Om een bepaalde pakketgroep te installeren, gebruiken we de optie groupinstall. Om bijvoorbeeld “MySQL Database“ te installeren, voert u gewoon de onderstaande opdracht 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 groepspakket
Om bestaande geïnstalleerde groepspakketten bij te werken, voert u gewoon de volgende opdracht 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. Groepspakketten verwijderen
Om een bestaande geïnstalleerde groep van het systeem te verwijderen of te verwijderen, gebruikt u gewoon de onderstaande opdracht.
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. Maak een lijst van ingeschakelde Yum-opslagplaatsen
Om alle ingeschakelde Yum-opslagplaatsen in uw systeem weer te geven, gebruikt u 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. Maak een lijst van alle ingeschakelde en uitgeschakelde Yum-opslagplaatsen
De volgende opdracht zal alle ingeschakelde en uitgeschakelde yum-opslagplaatsen op het systeem weergeven.
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 te installeren vanuit een specifieke ingeschakelde of uitgeschakelde repository, moet je --enablerepo
gebruiken, een optie in je yum-opdracht. Om bijvoorbeeld het PhpMyAdmin-pakket te installeren, voert u gewoon de opdracht 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
Het Yum-hulpprogramma biedt een aangepaste shell waarin 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. Maak de Yum-cache schoon
Standaard bewaart yum alle pakketgegevens die in de repository zijn ingeschakeld in /var/cache/yum/ met elke submap. Om alle in de cache opgeslagen bestanden uit de ingeschakelde repository op te schonen, moet je de volgende opdracht regelmatig uitvoeren ruim alle cache op en zorg ervoor dat er niets onnodige ruimte wordt gebruikt. We willen de uitvoer van het onderstaande commando niet geven, omdat we de gegevens in de cache graag willen behouden zoals ze zijn.
yum clean all
20. Bekijk de geschiedenis van Yum
Om alle eerdere transacties van de yum-opdracht te bekijken, gebruikt u gewoon 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 alle basis- en geavanceerde yum-opdrachten te behandelen met hun voorbeelden. Als er iets met betrekking tot yum-opdrachten mogelijk is gemist. Update ons alstublieft via ons opmerkingenveld. We blijven dit dus bijwerken op basis van de ontvangen feedback.