Este artículo describe cómo administrar paquetes con yum
en distribuciones basadas en Red Hat® Enterprise Linux®.
Requisitos
Debe tener los siguientes requisitos previos:
- Comprensión básica de Secure Shell (SSH)
- Sudo o acceso administrativo a su servidor
- Un servidor en la nube que ejecuta Red Hat Enterprise Linux 6 o posterior o CentOS 6 o posterior
Gestión de paquetes en Linux
El término gestión de paquetes en Linux describe la instalación, eliminación o actualización de software en su servidor Linux. Los paquetes se construyen usando código fuente que instala una pieza de software en su servidor. Los paquetes se compilan para permitir una fácil instalación en lugar de instalar cada componente desde la fuente.
Herramientas de paquetes en distribuciones RHEL
Las distribuciones basadas en RHEL® incluyen las siguientes dos formas de administración de paquetes:
-
rpm
se considera una herramienta de bajo nivel utilizada para instalar, eliminar y recopilar información, así como para crear paquetes para instalar en un servidor basado en RHEL. -
yum
se considera una herramienta de alto nivel que tiene la misma funcionalidad querpm
pero también resuelve las dependencias para permitir una instalación más fluida de .rpm paquetes.
Nota :Rackspace no admite la instalación de paquetes desde el origen.
Usando yum
El yum
es su herramienta principal para instalar y administrar el software en su servidor.
Recopilar información
Para ver los repositorios desde los que yum
extrae paquetes, ejecute el siguiente comando:
yum repolist
Este comando enumera los repositorios disponibles en su servidor:
# yum repolist
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
repo id repo name status
!drivesrvr drivesrvr 20
epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,314
ius/x86_64 IUS for Enterprise Linux 7 - x86_64 609
rackspace Rackspace Monitoring 1
rhel-x86_64-server-7 Red Hat Enterprise Linux Server (v. 7 for 64-bit x86_64) 29,118
rhel-x86_64-server-optional-7 RHEL Server Optional (v. 7 64-bit x86_64) 21,287
repolist: 64,3
Para buscar un paquete de sus repositorios, use el siguiente comando:
yum search <package name>
Nota :este comando localiza todas las instancias del <package name>
que están disponibles en sus repositorios. Esta lista puede ser bastante detallada, así que use el nombre completo del paquete, si lo sabe, para restringir su búsqueda.
Para obtener más información sobre un paquete, utilice el siguiente comando:
yum info <package name>
Este comando proporciona información sobre el paquete. Aquí hay un ejemplo de búsqueda de httpd
paquete:
# yum info httpd
Available Packages
Name : httpd
Version : 2.4.43
Release : 1.fc31
Architecture : x86_64
Size : 1.4 M
Source : httpd-2.4.43-1.fc31.src.rpm
Repository : updates
Summary : Apache HTTP Server
URL : https://httpd.apache.org/
License : ASL 2.0
Description : The Apache HTTP Server is a powerful, efficient, and extensible web server.
Para ver los paquetes actualmente instalados, ejecute el siguiente comando:
yum list installed
Este comando enumera todos los paquetes instalados en el sistema. Esta lista puede ser extensa. Si conoce el paquete que está buscando, puede usar grep
para filtrar su búsqueda como se muestra en el siguiente ejemplo:
yum list installed | grep httpd
Este comando proporciona una lista más manejable:
# yum list installed | grep httpd
httpd.x86_64 2.4.6-93.el7 @rhel-x86_64-server-7
httpd-tools.x86_64 2.4.6-93.el7 @rhel-x86_64-server-
Instalar paquetes
Para instalar un paquete, use el siguiente comando:
yum install <package>
Este comando consulta sus repositorios y abre el paquete para instalar. Durante el proceso de instalación, yum
intenta resolver las dependencias asociadas con el paquete que está instalando. Si yum
puede resolver las dependencias, muestra la salida y le pide que confirme la instalación. El siguiente ejemplo muestra la resolución de dependencias:
# yum install httpd
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
drivesrvr | 2.9 kB 00:00:00
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-93.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=========================================================================================================================
Package Arch Version Repository Size
=========================================================================================================================
Installing:
httpd x86_64 2.4.6-93.el7 rhel-x86_64-server-7 1.2 M
Transaction Summary
=========================================================================================================================
Install 1 Package
Total download size: 1.2 M
Installed size: 3.7 M
Is this ok [y/d/N]:
Nota :Cuando instala httpd
, no se requieren otras dependencias para instalar el paquete. En otras situaciones, puede haber dependencias adicionales requeridas para la instalación que yum
necesita instalarse. Si yum
no puede resolver las dependencias, la salida enumera los errores. Debe resolver estas dependencias para continuar con la instalación.
Paquetes de actualización
Para actualizar un paquete instalado, ejecute el siguiente comando:
yum update <package>
Este comando busca en el repositorio actualizaciones del paquete especificado, si está disponible.
Si hay una actualización disponible, el comando le muestra el cambio y solicita confirmación. En caso contrario, te informa que no hay nada que hacer:
# yum update httpd
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
drivesrvr | 2.9 kB 00:00:00
No packages marked for update
También puede usar el siguiente comando para activar una actualización para todos los paquetes en el sistema:
yum update
Este comando consulta los repositorios en busca de actualizaciones de los paquetes instalados en su servidor.
Importante :Este proceso intenta actualizar todos los paquetes en el sistema. Asegúrese de haber revisado su entorno antes de continuar porque los cambios podrían causar problemas inesperados con las aplicaciones como resultado de las actualizaciones.
Eliminar paquetes
Para eliminar un paquete instalado, use el siguiente comando:
yum remove <package name>
Este comando verifica los paquetes instalados, proporciona resultados y le pide que confirme el cambio:
# yum remove httpd
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-93.el7 will be erased
--> Processing Dependency: httpd-mmn = 20120211x8664 for package: mod_php73-7.3.18-1.el7.ius.x86_64
--> Running transaction check
---> Package mod_php73.x86_64 0:7.3.18-1.el7.ius will be erased
--> Finished Dependency Resolution
drivesrvr | 2.9 kB 00:00:00
Dependencies Resolved
======================================================================================================================
Package Arch Version Repository Size
======================================================================================================================
Removing:
httpd x86_64 2.4.6-93.el7 @rhel-x86_64-server-7 3.7 M
Removing for dependencies:
mod_php73 x86_64 7.3.18-1.el7.ius @ius 4.8 M
Transaction Summary
=======================================================================================================================
Remove 1 Package (+1 Dependent package)
Installed size: 8.6 M
Is this ok [y/N]:
Nota :Cuando eliminas httpd
, yum
también elimina el mod_php73
paquete, que depende de httpd
. Asegúrese de que la eliminación de un paquete no afecte negativamente a otras partes de su servidor.
Revisar historial y revertir cambios
En algunos casos, debe revisar las acciones realizadas con yum
herramienta.
Para ver el historial de yum
uso del comando, ejecute el siguiente comando:
yum history
Este comando proporciona una salida numerada que muestra las transacciones realizadas por yum
.
# yum history
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
ID | Login user | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
19 | <rack> | 2020-06-09 14:58 | Install | 2
18 | <rack> | 2020-06-09 14:57 | Erase | 2
17 | <rack> | 2020-06-09 14:56 | Install | 1
16 | <rack> | 2020-06-09 14:55 | Install | 4
15 | <rack> | 2020-06-09 14:55 | Erase | 2
14 | <rack> | 2020-06-09 14:54 | Erase | 1
13 | <rack> | 2020-06-09 14:50 | Install | 1
12 | <rack> | 2020-06-09 14:49 | Erase | 2
11 | root <root> | 2020-06-09 10:14 | I, U | 2
10 | root <root> | 2020-06-09 10:14 | Install | 2 EE
9 | <rack> | 2020-06-09 10:14 | Install | 4
8 | root <root> | 2020-06-09 10:14 | Install | 1 EE
7 | <rack> | 2020-06-09 10:14 | Install | 5
6 | root <root> | 2020-06-09 10:13 | Install | 4
5 | root <root> | 2020-06-09 10:13 | I, U | 18 <
4 | System <unset> | 2020-01-15 13:02 | Install | 1 >
3 | System <unset> | 2020-01-15 13:02 | Install | 1
2 | System <unset> | 2020-01-15 13:02 | Erase | 1
1 | System <unset> | 2020-01-15 12:55 | Install | 578
history list
Esta lista proporciona solo la fecha, la acción y el número del paquete alterado. Para obtener más información sobre una acción específica, puede consultar el ID
de la columna de la izquierda. Use el siguiente comando para ver información sobre la acción:
yum history info <ID>
Ejecutar este comando proporciona más información sobre lo que ocurrió durante esta transacción:
# yum history info 18
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
Transaction ID : 18
Begin time : Tue Jun 9 14:57:12 2020
Begin rpmdb : 609:12b0c5cdd97ae2f0a77a06403b7b16f3d404403c
End time : 14:57:13 2020 (1 seconds)
End rpmdb : 607:784f813e94127f71465085cd9437377514697243
User : <rack>
Return-Code : Success
Command Line : remove httpd
Transaction performed with:
Installed rpm-4.11.3-40.el7.x86_64 @anaconda/7.7
Installed subscription-manager-1.24.13-3.el7_7.x86_64 @base/7.7
Installed yum-3.4.3-167.el7.noarch @rhel-x86_64-server-7
Installed yum-rhn-plugin-2.0.1-10.el7.noarch @anaconda/7.7
Packages Altered:
Erase httpd-2.4.6-93.el7.x86_64 @rhel-x86_64-server-7
Erase mod_php73-7.3.18-1.el7.ius.x86_64 @ius
history info
Si necesita deshacer un cambio, debe usar el siguiente comando:
yum history undo <ID>
Este comando proporciona información sobre lo que cambia esta acción y solicita confirmación.
# yum history undo 13
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
Undoing transaction 13, from Tue Jun 9 14:50:18 2020
Install httpd-2.4.6-93.el7.x86_64 @rhel-x86_64-server-7
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-93.el7 will be erased
--> Processing Dependency: httpd-mmn = 20120211x8664 for package: mod_php73-7.3.18-1.el7.ius.x86_64
--> Running transaction check
---> Package mod_php73.x86_64 0:7.3.18-1.el7.ius will be erased
--> Finished Dependency Resolution
drivesrvr | 2.9 kB 00:00:00
Dependencies Resolved
======================================================================================================================
Package Arch Version Repository Size
======================================================================================================================
Removing:
httpd x86_64 2.4.6-93.el7 @rhel-x86_64-server-7 3.7 M
Removing for dependencies:
mod_php73 x86_64 7.3.18-1.el7.ius @ius 4.8 M
Transaction Summary
======================================================================================================================
Remove 1 Package (+1 Dependent package)
Installed size: 8.6 M
Is this ok [y/N]:
Si desea revertir todos los cambios en una transacción específica, use el siguiente comando:
yum history rollback <ID>
Este comando le muestra lo que cambia esta acción y solicita confirmación. Dependiendo de cuánto desee retroceder, esta lista puede ser extensa. El resultado es similar al siguiente ejemplo:
# yum history rollback 17
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
Rollback to transaction 17, from Tue Jun 9 14:56:03 2020
Undoing the following transactions: 18, 19
Reinstall httpd-2.4.6-93.el7.x86_64 @rhel-x86_64-server-7
Reinstall mod_php73-7.3.18-1.el7.ius.x86_64 @ius
drivesrvr | 2.9 kB 00:00:00
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-93.el7 will be reinstalled
---> Package mod_php73.x86_64 0:7.3.18-1.el7.ius will be reinstalled
--> Finished Dependency Resolution
Dependencies Resolved
=====================================================================================================================
Package Arch Version Repository Size
=====================================================================================================================
Reinstalling:
httpd x86_64 2.4.6-93.el7 rhel-x86_64-server-7 1.2 M
mod_php73 x86_64 7.3.18-1.el7.ius ius 1.6 M
Transaction Summary
=====================================================================================================================
Reinstall 2 Packages
Total download size: 2.8 M
Installed size: 8.6 M
Is this ok [y/d/N]:
Más información
Hay más opciones disponibles dentro de yum
. Puede ver las diferentes banderas y opciones en Linuxman
página para yum
en este enlace:página man de yum
Porque el yum
realiza cambios en el sistema, siempre debe asegurarse de haber probado su entorno antes de instalar o actualizar paquetes. Si es posible, asegúrese de tener una imagen utilizable para revertir en caso de problemas posteriores a la actualización.