20 comandos de Linux YUM (Yellowdog Updater, Modified) para la gestión de paquetes

En este artículo, aprenderemos cómo instalar, actualizar, eliminar, encontrar paquetes, administrar paquetes y repositorios en sistemas Linux utilizando la herramienta YUM (Yellowdog Updater Modified) desarrollada por RedHat.

Los comandos de ejemplo mostrados en este artículo están probados prácticamente en nuestro servidor RHEL 8, puedes utilizar estos materiales con fines de estudio, certificaciones RHEL, o simplemente para explorar formas de instalar nuevos paquetes y mantener tu sistema actualizado.

El requisito básico de este artículo es que debes tener un entendimiento básico de comandos y un sistema operativo Linux funcional, donde puedas explorar y practicar todos los comandos enumerados a continuación.

¿Qué es YUM?

YUM (Yellowdog Updater Modified) es una herramienta de gestión de paquetes de código abierto basada en la línea de comandos y también gráfica para sistemas Linux basados en RPM (RedHat Package Manager).

Permite a los usuarios y administradores de sistema instalar, actualizar, eliminar o buscar paquetes de software en un sistema. Fue desarrollado y lanzado por Seth Vidal bajo la licencia GPL (Licencia Pública General) como un software de código abierto, lo que significa que cualquier persona puede descargar y acceder al código para corregir errores y desarrollar paquetes personalizados.

YUM utiliza numerosos repositorios de terceros para instalar paquetes automáticamente al resolver sus problemas de dependencias.

Actualización: El comando yum es reemplazado por el comando dnf, que es una versión de próxima generación de yum y se considera el reemplazo de YUM en la mayoría de las distribuciones más nuevas basadas en RPM.

1. Instalar un paquete con YUM

Para instalar un paquete llamado Firefox, simplemente ejecute el siguiente comando, que automáticamente encontrará e instalará todas las dependencias necesarias para 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!

El comando anterior solicitará confirmación antes de instalar cualquier paquete en su sistema. Si desea instalar paquetes automáticamente sin solicitar ninguna confirmación, utilice la opción -y como se muestra en el siguiente ejemplo.2. Eliminar un paquete con YUM

# yum -y install firefox

2. Eliminar un paquete con YUM

Para eliminar un paquete completamente con todas las dependencias, simplemente ejecute el siguiente comando como se muestra a continuación.

# 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 misma manera, el comando anterior pedirá confirmación antes de eliminar un paquete. Para desactivar el aviso de confirmación, simplemente agregue la opción -y como se muestra a continuación.

# yum -y remove firefox

3. Actualizar un paquete usando YUM

Digamos que tienes una versión desactualizada del paquete MySQL y deseas actualizarla a la última versión estable. Simplemente ejecute el siguiente comando, que resolverá automáticamente todos los problemas de dependencias e instalará lo necesario.

# 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. Listar un paquete usando YUM

Utilice la función list para buscar el paquete específico por su nombre. Por ejemplo, para buscar un paquete llamado OpenSSH, use el comando.

# 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

Para hacer tu búsqueda más precisa, define los nombres de los paquetes con sus versiones, en caso de que las conozcas. Por ejemplo, para buscar una versión específica OpenSSH-4.3p2 del paquete, use el comando.

# yum list openssh-4.3p2

[ También podría interesarte: Cómo asegurar y endurecer el servidor OpenSSH ]

5. Buscar un paquete usando YUM

Si no recuerdas el nombre exacto del paquete, entonces utiliza la función buscar para buscar todos los paquetes disponibles para que coincidan con el nombre del paquete que especificaste. Por ejemplo, para buscar todos los paquetes que coincidan con la palabra.

# 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. Obtener información sobre un paquete usando YUM

Digamos que te gustaría conocer la información sobre un paquete antes de instalarlo. Para obtener información sobre un paquete, simplemente emite el siguiente comando.

# 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. Lista de todos los paquetes disponibles usando YUM

Para listar todos los paquetes disponibles en la base de datos de Yum, use el siguiente comando.

# yum list | less

8. Lista de todos los paquetes instalados usando YUM

Para listar todos los paquetes instalados en un sistema, simplemente emita el siguiente comando, que mostrará todos los paquetes instalados.

# yum list installed | less

9. Función Yum Proporciona

La función proporciona de Yum se utiliza para encontrar a qué paquete pertenece un archivo específico. Por ejemplo, si te gustaría conocer el nombre del paquete que tiene el archivo /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. Verificar actualizaciones disponibles usando Yum

Para saber cuántos paquetes instalados en tu sistema tienen actualizaciones disponibles, verifica usando el siguiente comando.

# yum check-update

11. Actualizar el sistema usando Yum

Para mantener tu sistema actualizado con todas las actualizaciones de seguridad y paquetes binarios, ejecuta el siguiente comando. Instalará todas las últimas actualizaciones y parches de seguridad en tu sistema.

# yum update

12. Lista de todos los paquetes de grupo disponibles

En Linux, varios paquetes se agrupan en un grupo específico. En lugar de instalar paquetes individuales con yum, puedes instalar un grupo específico que instalará todos los paquetes relacionados que pertenecen al grupo. Por ejemplo, para listar todos los grupos disponibles, simplemente emite el siguiente comando.

# 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. Instalar Paquetes de Grupo

Para instalar un grupo de paquetes específico, utilizamos la opción como groupinstall. Por ejemplo, para instalar ” MySQL Database “, simplemente ejecute el siguiente comando.

# 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. Actualizar Paquetes de Grupo

Para actualizar cualquier grupo de paquetes instalado existente, simplemente ejecute el siguiente comando como se muestra a continuación.

# 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. Eliminar Paquetes de Grupo

Para eliminar o desinstalar cualquier grupo de paquetes existente del sistema, simplemente use el siguiente comando.

# 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. Listar Repositorios Yum Habilitados

Para listar todos los repositorios Yum habilitados en tu sistema, usa la siguiente opción.

# 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. Listar todos los Repositorios Yum Habilitados y Deshabilitados

El siguiente comando mostrará todos los repositorios yum habilitados y deshabilitados en el 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

17. Instalar un Paquete de un Repositorio Específico

Para instalar un paquete específico de un repositorio habilitado o deshabilitado, debes usar --enablerepo una opción en tu comando yum. Por ejemplo, para instalar PhpMyAdmin, simplemente ejecute el comando.

# 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. Shell interactivo de Yum

La utilidad Yum proporciona un shell personalizado donde puedes ejecutar múltiples comandos.

# 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. Limpiar la caché de Yum

Por defecto, yum mantiene todos los datos de paquetes de repositorios habilitados en /var/cache/yum/ con cada subdirectorio. Para limpiar todos los archivos almacenados en caché de los repositorios habilitados, necesitas ejecutar regularmente el siguiente comando para eliminar todos los datos en caché y asegurarte de que no se esté utilizando espacio innecesario. No queremos dar la salida del comando a continuación, porque nos gusta mantener los datos en caché tal como están.

# yum clean all

20. Ver historial de Yum

Para ver todas las transacciones pasadas del comando yum, simplemente usa el siguiente comando.

# 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

Hemos intentado cubrir todos los comandos básicos a avanzados de yum con sus ejemplos. Si algo relacionado con los comandos de yum puede haberse perdido. Por favor, actualícenos a través de nuestro cuadro de comentarios. Así, seguimos actualizando lo mismo en función de los comentarios recibidos.

Source:
https://www.tecmint.com/20-linux-yum-yellowdog-updater-modified-commands-for-package-mangement/