20 ordres YUM per a la gestió de paquets de Linux
En aquest article, aprendrem a instal·lar, actualitzar, eliminar, trobar paquets, gestionar paquets i dipòsits en sistemes Linux mitjançant l'eina YUM (Yellowdog Updater Modified) desenvolupada per RedHat.
Les ordres d'exemple que es mostren en aquest article estan pràcticament provades a les nostres certificacions RHEL, o simplement per explorar maneres d'instal·lar nous paquets i mantenir el vostre sistema actualitzat.
El requisit bàsic d'aquest article és que heu de tenir una comprensió bàsica de les ordres i un sistema operatiu Linux que funcioni, on podeu explorar i practicar totes les ordres que s'enumeren a continuació.
Què és YUM?
YUM (Yellowdog Updater Modified) és una línia d'ordres de codi obert i una eina de gestió de paquets basada en gràfics per a sistemes Linux basats en RPM (RedHat Package Manager).
Permet als usuaris i administradors del sistema instal·lar, actualitzar, eliminar o cercar paquets de programari fàcilment en un sistema. Va ser desenvolupat i llançat per Seth Vidal sota GPL (Llicència Pública General) com a codi obert, el que significa que qualsevol pot descarregar-se i accedir al codi per corregir errors i desenvolupar paquets personalitzats.
YUM utilitza nombrosos repositoris de tercers per instal·lar paquets automàticament resolent els problemes de dependències.
Actualització: l'ordre yum es substitueix per les distribucions basades en RPM.
Per instal·lar un paquet anomenat Firefox, només cal que executeu l'ordre següent, trobarà i instal·larà automàticament totes les dependències necessàries per al Firefox.
# 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!
L'ordre anterior us demanarà confirmació abans d'instal·lar qualsevol paquet al vostre sistema. Si voleu instal·lar paquets automàticament sense demanar cap confirmació, utilitzeu l'opció -y
com es mostra a continuació.
# yum -y install firefox
Per eliminar completament un paquet amb totes les dependències, només cal que executeu l'ordre següent tal com es mostra a continuació.
# 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!
De la mateixa manera, l'ordre anterior demanarà confirmació abans d'eliminar un paquet. Per desactivar el missatge de confirmació, només cal que afegiu l'opció -y
tal com es mostra a continuació.
# yum -y remove firefox
Suposem que teniu una versió obsoleta del paquet MySQL i voleu actualitzar-la a la darrera versió estable. Només heu d'executar l'ordre següent, resoldrà automàticament tots els problemes de dependències i els instal·larà.
# 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!
Utilitzeu la funció de llista per cercar el paquet específic amb un nom. Per exemple, per cercar un paquet anomenat OpenSSH, utilitzeu l'ordre.
# 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
Per fer la cerca més precisa, definiu els noms dels paquets amb la seva versió, per si ho sabeu. Per exemple, per cercar una versió específica OpenSSH-4.3p2 del paquet, utilitzeu l'ordre.
# yum list openssh-4.3p2
[ També us pot agradar: Com protegir i endurir el servidor OpenSSH ]
Si no recordeu el nom exacte del paquet, feu servir la funció de cerca per cercar tots els paquets disponibles perquè coincideixin amb el nom del paquet que heu especificat. Per exemple, per cercar tots els paquets que coincideixen amb la paraula.
# 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
Digues que t'agradaria conèixer la informació sobre un paquet abans d'instal·lar-lo. Per obtenir informació sobre un paquet només heu d'emetre l'ordre següent.
# 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.
Per llistar tots els paquets disponibles a la base de dades Yum, utilitzeu l'ordre següent.
# yum list | less
Per llistar tots els paquets instal·lats en un sistema, només heu d'emetre l'ordre següent, mostrarà tots els paquets instal·lats.
# yum list installed | less
La funció Yum proporciona s'utilitza per trobar a quin paquet pertany un fitxer específic. Per exemple, si voleu saber el nom del paquet que té el fitxer /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
Per saber quants paquets instal·lats al vostre sistema tenen actualitzacions disponibles, comproveu utilitzar l'ordre següent.
# yum check-update
Per mantenir el vostre sistema actualitzat amb totes les actualitzacions de paquets binaris i de seguretat, executeu l'ordre següent. Instal·larà tots els darrers pedaços i actualitzacions de seguretat al vostre sistema.
# yum update
A Linux, una sèrie de paquets s'agrupen en un grup particular. En lloc d'instal·lar paquets individuals amb yum, podeu instal·lar un grup concret que instal·larà tots els paquets relacionats que pertanyen al grup. Per exemple, per llistar tots els grups disponibles, només heu d'emetre l'ordre següent.
# 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
Per instal·lar un grup de paquets concret, utilitzem l'opció com a groupinstall. Per exemple, per instal·lar MySQL Database, només cal que executeu l'ordre següent.
# 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!
Per actualitzar els paquets de grup instal·lats existents, només cal que executeu l'ordre següent, tal com es mostra a continuació.
# 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!
Per suprimir o eliminar qualsevol grup instal·lat existent del sistema, només cal que utilitzeu l'ordre següent.
# 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!
Per llistar tots els dipòsits Yum activats al vostre sistema, utilitzeu l'opció següent.
# 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
La següent comanda mostrarà tots els dipòsits yum activats i desactivats al sistema.
# 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
Per instal·lar un paquet concret des d'un dipòsit específic activat o desactivat, heu d'utilitzar --enablerepo
una opció a la vostra comanda yum. Per exemple, per instal·lar el paquet PhpMyAdmin, només heu d'executar l'ordre.
# 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!
La utilitat Yum proporciona un shell personalitzat on podeu executar diverses ordres.
# 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 >
De manera predeterminada, yum manté totes les dades dels paquets habilitats per al repositori a /var/cache/yum/ amb cada subdirectori, per netejar tots els fitxers de la memòria cau del dipòsit habilitat, heu d'executar l'ordre següent regularment per netejar tota la memòria cau i fer Assegureu-vos que no s'està utilitzant res d'espai innecessari. No volem donar la sortida de l'ordre següent, perquè ens agrada mantenir les dades a la memòria cau tal com estan.
# yum clean all
Per veure totes les transaccions anteriors de l'ordre yum, només cal que utilitzeu l'ordre següent.
# 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
Hem intentat cobrir totes les ordres bàsiques per avançar yum amb els seus exemples. Si alguna cosa relacionada amb les ordres yum pot haver perdut. Si us plau, actualitzeu-nos a través del nostre quadre de comentaris. Per tant, seguim actualitzant el mateix en funció dels comentaris rebuts.