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.
# 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/