20 YUM Kommandoen fir Linux Package Management
An dësem Artikel léiere mir wéi installéiere, aktualiséieren, ewechhuelen, Pakete fannen, Packagen a Repositories op Linux Systemer verwalten mat YUM (Yellowdog Updater Modified) Tool entwéckelt vu RedHat.
D'Beispill Kommandoen, déi an dësem Artikel ugewise ginn, gi praktesch op eise RHEL Zertifizéierungen getest, oder just fir Weeër ze entdecken fir nei Packagen z'installéieren an Äre System aktuell ze halen.
D'Basisfuerderung vun dësem Artikel ass, Dir musst e Basisverständnis vu Kommandoen hunn an e funktionnéierende Linux Betriebssystem, wou Dir all d'Befehle kann entdecken an praktizéieren hei ënnendrënner.
Wat ass YUM?
YUM (Yellowdog Updater Modified) ass eng Open Source Kommandozeil wéi och grafesch-baséiert Package Management Tool fir RPM (RedHat Package Manager) baséiert Linux Systemer.
Et erlaabt d'Benotzer a Systemadministrateuren einfach Software Packagen op engem System z'installéieren, ze aktualiséieren, ewechzehuelen oder ze sichen. Et gouf vum Seth Vidal ënner GPL (General Public License) als Open-Source entwéckelt a verëffentlecht, dat heescht datt jidderee kann erlaabt sinn de Code erofzelueden an ze kréien fir Bugs ze fixéieren an personaliséiert Packagen z'entwéckelen.
YUM benotzt vill Drëtt Partei Repositories fir Packagen automatesch z'installéieren andeems se hir Ofhängegkeetsprobleemer léisen.
Update: De yum Kommando gëtt duerch d'RPM-baséiert Verdeelungen ersat.
Fir e Package mam Numm Firefox z'installéieren, fuert just de Kommando hei ënnen, et wäert automatesch all erfuerderlech Ofhängegkeete fir Firefox fannen an installéieren.
# 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!
Deen uewe genannte Kommando freet d'Bestätegung ier Dir e Package op Ärem System installéiert. Wann Dir Packagen automatesch installéiere wëllt ouni eng Bestätegung ze froen, benotzt d'Optioun -y
wéi hei ënnendrënner Beispill gewisen.
# yum -y install firefox
Fir e Package komplett mat all Ofhängegkeeten ze läschen, fuert just de folgende Kommando wéi et hei ënnendrënner steet.
# 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!
Am selwechte Wee wäert de uewe genannte Kommando fir Bestätegung froen ier Dir e Paket ewechhuelt. Fir d'Bestätegungsprompt auszeschalten, füügt einfach d'Optioun -y
derbäi wéi hei ënnendrënner.
# yum -y remove firefox
Loosst eis soen datt Dir eng al Versioun vum MySQL Package hutt an Dir wëllt et op déi lescht stabil Versioun aktualiséieren. Gitt einfach de folgende Kommando aus, et wäert automatesch all Ofhängegkeetsprobleemer léisen an se installéieren.
# 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!
Benotzt d'Lëschtfunktioun fir de spezifesche Package mat engem Numm ze sichen. Zum Beispill fir no engem Package mam Numm OpenSSH ze sichen, benotzt de Kommando.
# 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
Fir Är Sich méi genee ze maachen, definéiert Package Nimm mat hirer Versioun, am Fall wou Dir wësst. Zum Beispill fir eng spezifesch Versioun OpenSSH-4.3p2 vum Package ze sichen, benotzt de Kommando.
# yum list openssh-4.3p2
[Dir kënnt och gären hunn: Wéi sécheren an Harden OpenSSH Server]
Wann Dir de genauen Numm vum Package net erënnert, benotzt dann d'Sichfunktioun fir all verfügbare Packagen ze sichen fir mam Numm vum Package ze passen deen Dir uginn hutt. Zum Beispill, fir all Packagen ze sichen déi dem Wuert passen.
# 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
Sot Dir wëllt d'Informatioun iwwer e Package wësse ier Dir se installéiert. Fir Informatioun iwwer e Package ze kréien, gitt just de Kommando ënnen.
# 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.
Fir all verfügbare Packagen an der Yum Datebank ze lëschten, benotzt de Kommando ënnen.
# yum list | less
Fir all installéiert Packagen op engem System ze lëschten, gitt just de Kommando hei ënnen, et weist all installéiert Packagen.
# yum list installed | less
Yum bitt Funktioun gëtt benotzt fir ze fannen zu wéi engem Package eng spezifesch Datei gehéiert. Zum Beispill, wann Dir den Numm vum Package wësse wëllt deen den /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
Fir erauszefannen wéi vill installéiert Packagen op Ärem System Updates verfügbar hunn, kontrolléiert fir de folgende Kommando ze benotzen.
# yum check-update
Fir Äre System aktuell mat all Sécherheets- a binäre Pakupdates ze halen, fuert de folgende Kommando. Et wäert all déi lescht Patches a Sécherheetsupdates op Ärem System installéieren.
# yum update
Am Linux sinn eng Zuel vu Packagen an eng bestëmmte Grupp gebündelt. Amplaz eenzel Pakete mat yum z'installéieren, kënnt Dir e bestëmmte Grupp installéieren, deen all déi verwandte Packagen installéiert, déi zu der Grupp gehéieren. Zum Beispill fir all verfügbare Gruppen ze lëschten, gitt just de folgende Kommando aus.
# 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
Fir eng bestëmmte Package Grupp z'installéieren, benotze mir d'Optioun als Groupinstall. Zum Beispill, fir MySQL Datebank z'installéieren, fuert just de Kommando hei ënnen 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!
Fir all existent installéiert Gruppepäck ze aktualiséieren, fuert just de folgende Kommando aus wéi et hei ënnendrënner steet.
# 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!
Fir all existent installéiert Grupp aus dem System ze läschen oder ze läschen, benotzt just de Kommando hei ënnen.
# 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!
Fir all aktivéiert Yum Repositories an Ärem System ze lëschten, benotzt déi folgend Optioun.
# 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
De folgende Kommando weist all aktivéiert an behënnert Yum Repositories um System.
# 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
Fir e bestëmmte Package aus engem spezifeschen aktivéierten oder behënnerte Repository z'installéieren, musst Dir --enablerepo
eng Optioun an Ärem yum Kommando benotzen. Zum Beispill fir de PhpMyAdmin Package z'installéieren, fuert just de Kommando 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!
Yum Utility bitt eng personaliséiert Shell wou Dir verschidde Befehle kënnt ausféieren.
# 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 >
Par défaut hält yum all d'Repository aktivéiert Packagedaten an /var/cache/yum/ mat all Ënnerverzeechnes, fir all cache Dateien aus dem aktivéierten Repository ze botzen, musst Dir de folgende Kommando regelméisseg ausféieren fir all Cache ze botzen an ze maachen sécher, datt et näischt onnéideg Plaz benotzt gëtt. Mir wëllen net d'Ausgab vum Kommando hei ënnen ginn, well mir gären cachéiert Daten behalen wéi se sinn.
# yum clean all
Fir all déi vergaang Transaktioune vum Yum Kommando ze gesinn, benotzt just de folgende Kommando.
# 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
Mir hu probéiert all d'Basis ze decken fir Yum Kommandoen mat hiren Beispiller ze förderen. Wann eppes Zesummenhang mat yum Kommandoen hu vläicht verpasst. Update eis w.e.g. duerch eis Kommentarfeld. Also, mir aktualiséieren ëmmer datselwecht op Basis vu Feedback kritt.