In dit artikel leren we hoe je pakketten installeert, update, verwijdert, vindt en beheert op Linux systemen met behulp van YUM (Yellowdog Updater Modified) tool ontwikkeld door RedHat. De voorbeeld commando’s in dit artikel zijn praktisch getest op onze CentOS 6.3 server, je kunt dit materiaal gebruiken voor studie doeleinden, certificeringen of gewoon om manieren te verkennen om nieuwe pakketten te installeren en je systeem up-to-date te houden. De basisvereiste voor dit artikel is, dat je een basiskennis van commando’s moet hebben en een werkend Linux besturingssysteem, waar je alle commando’s die hieronder staan kunt verkennen en oefenen.
Wat is YUM?
YUM (Yellowdog Updater Modified) is een open-source command-line en grafisch pakketbeheerprogramma voor RPM (RedHat Package Manager) gebaseerde Linux-systemen. Het stelt gebruikers en systeembeheerders in staat om eenvoudig softwarepakketten op een systeem te installeren, bij te werken, te verwijderen of te doorzoeken. Het is ontwikkeld en vrijgegeven door Seth Vidal onder GPL (General Public License) als open source, wat betekent dat iedereen de code mag downloaden en er toegang toe heeft om bugs te repareren en aangepaste pakketten te ontwikkelen. YUM gebruikt talrijke repositories van derden om pakketten automatisch te installeren door hun afhankelijkheden op te lossen.
1. Installeer een pakket met YUM
Om een pakket genaamd Firefox 14 te installeren, voert u het onderstaande commando uit het zal automatisch alle benodigde dependencies voor Firefox vinden en installeren.
# 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!
Het bovenstaande commando zal om bevestiging vragen voordat een pakket op uw systeem wordt geïnstalleerd. Als u pakketten automatisch wilt installeren zonder bevestiging te vragen, gebruik dan optie -y zoals in onderstaand voorbeeld.
# yum -y install firefox
2. Een pakket verwijderen met YUM
Om een pakket volledig te verwijderen met alle afhankelijkheden, voert u het volgende commando uit zoals hieronder getoond.
# 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!
Op dezelfde manier zal het bovenstaande commando om bevestiging vragen voordat een pakket wordt verwijderd. Om de bevestigingsvraag uit te schakelen, voegt u de optie -y toe, zoals hieronder te zien is.
# yum -y remove firefox
3. Een pakket bijwerken met YUM
Laten we zeggen dat u een verouderde versie van MySQL pakket heeft en u wilt het bijwerken naar de laatste stabiele versie. Voer gewoon het volgende commando uit en het zal automatisch alle afhankelijkheden oplossen en installeren.
# 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. Lijst van een pakket met YUM
Gebruik de lijst functie om naar een specifiek pakket met naam te zoeken. Bijvoorbeeld om te zoeken naar een pakket met de naam openssh, gebruik het commando.
# 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
Om uw zoekopdracht nauwkeuriger te maken, definieer pakketnaam met hun versie, in het geval dat u het weet. Bijvoorbeeld om te zoeken naar een specifieke versie openssh-4.3p2 van het pakket, gebruik het commando.
# yum list openssh-4.3p2
5. Een pakket zoeken met YUM
Als u zich de exacte naam van het pakket niet herinnert, gebruik dan de zoekfunctie om alle beschikbare pakketten te zoeken die overeenkomen met de naam van het door u opgegeven pakket. Bijvoorbeeld, om alle pakketten te zoeken die overeenkomen met het woord .
# 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. Informatie over een pakket verkrijgen met YUM
Zoals u informatie over een pakket wilt hebben voordat u het installeert. Om informatie over een pakket op te vragen, hoeft u alleen maar het onderstaande commando uit te voeren.
# 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. Lijst van alle beschikbare pakketten met YUM
Om een lijst van alle beschikbare pakketten in de Yum database op te vragen, gebruikt u het onderstaande commando.
# yum list | less
8. Alle geïnstalleerde pakketten weergeven met YUM
Om alle geïnstalleerde pakketten op een systeem weer te geven, hoeft u alleen maar het onderstaande commando uit te voeren, het zal alle geïnstalleerde pakketten weergeven.
# yum list installed | less
9. Yum Provides Functie
Yum provides functie wordt gebruikt om te vinden bij welk pakket een bepaald bestand hoort. Bijvoorbeeld, als u de naam van het pakket wilt weten dat de /etc/httpd/conf/httpd.conf bevat.
# 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. Controleer op beschikbare updates met Yum
Om te weten te komen hoeveel van de geïnstalleerde pakketten op uw systeem updates beschikbaar hebben, gebruikt u het volgende commando.
# yum check-update
11. Update Systeem met Yum
Om uw systeem up-to-date te houden met alle veiligheids- en binaire pakketupdates, voert u het volgende commando uit. Het zal de laatste patches en beveiligingsupdates op uw systeem installeren.
# yum update
12. Lijst van alle beschikbare Groep Pakketten
In Linux, zijn een aantal pakketten gebundeld in een bepaalde groep. In plaats van individuele pakketten met yum te installeren, kunt u een bepaalde groep installeren die alle gerelateerde pakketten van die groep zal installeren. Om bijvoorbeeld een lijst van alle beschikbare groepen te krijgen, hoeft u alleen het volgende commando uit te voeren.
# 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. Installeer een groep pakketten
Om een bepaalde groep pakketten te installeren, gebruiken we de optie groupinstall. Bijvoorbeeld, om “MySQL Database” te installeren, voert u het onderstaande commando uit.
# 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. Een groepspakket bijwerken
Om bestaande geïnstalleerde groepspakketten bij te werken, voert u gewoon het volgende commando uit zoals hieronder wordt getoond.
# 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. Verwijder een Groep Pakketten
Om een bestaande geïnstalleerde groep te verwijderen of te verwijderen van het systeem, hoeft u alleen maar het onderstaande commando te gebruiken.
# 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. Lijst van geactiveerde Yum repositories
Om een lijst te maken van alle geactiveerde Yum repositories in uw systeem, gebruikt u de volgende optie.
# 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. Toon alle geactiveerde en uitgeschakelde Yum Repositories
Het volgende commando toont alle geactiveerde en uitgeschakelde yum repositories op het systeem.
# 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. Installeer een pakket van een specifieke repository
Om een bepaald pakket van een specifieke ingeschakelde of uitgeschakelde repository te installeren, moet u de -enablerepo optie in uw yum commando gebruiken. Om bijvoorbeeld PhpMyAdmin 3.5.2 pakket te installeren, voert u het commando uit.
# 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. Interactieve Yum Shell
Yum utility biedt een aangepaste shell waar u meerdere commando’s kunt uitvoeren.
# 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. Maak Yum Cache schoon
Bestandaard houdt yum alle ingeschakelde pakketgegevens in /var/cache/yum/ met elke sub-directory, om alle cache bestanden van de ingeschakelde repository schoon te maken, moet je het volgende commando regelmatig uitvoeren om alle cache op te schonen en ervoor te zorgen dat er geen onnodige ruimte wordt gebruikt. We willen de uitvoer van het onderstaande commando niet geven, omdat we de cache gegevens willen houden zoals ze zijn.
# yum clean all
20. Geschiedenis van Yum bekijken
Om alle eerdere transacties van yum commando te bekijken, hoeft u alleen maar het volgende commando te gebruiken.
# 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