Gestión de paquetes con RPM y Yum
Conceptos Claves
- Instalar, reinstalar, actualizar y eliminar paquetes con RPM y YUM.
- Obtener información sobre los paquetes RPM como versión, estado, dependencias, integridad y firmas.
- Determinar qué archivos proporciona un paquete, además de encontrar de cual paquete proviene un archivo específico.
Términos y utilidades
- rpm
- rpm2cpio
- /etc/yum.conf
- /etc/yum.repos.d/
- yum
- yumdownloader
RPM
Red Hat desarrollo RPM para su propia distribución. Red Hat lanzo el software bajo la licencia GPL (General Public License), entonces, otros lo han usado para sus propias distribuciones. Algunas distribuciones como Mandriva (anteriormente Mandrake) y Yellow Dog, están basadas en Red Hat, así que usan RPM así como otras partes de la distribución de Red Hat.
Nombres de paquetes en RPM
La convención para nombrar paquetes RPM es la siguiente:
nombrepaquete-a.b.c-arch.rpm
Nombre de paquete: El primer componente es el nombre del paquete, por ejemplo, samba-server para el servidor de archivos e impresoras Samba.
Numero de versión: El segundo componente (a.b.c), es el numero de versión, ej. 3.6.5.
Numero de Compilación: El numero de lanzamiento representa cambios menores, hechos por el encargado de mantener el paquete, no el autor. Estos cambios pueden ser nuevos scripts, cambios en archivos de configuración, etc.
Arquitectura: Código que representa la arquitectura. i386 representa un archivo compilado para cualquier cpu x86 desde 80386.
Uso de RPM
Para usar RPM, generalmente se combina una operación con una o mas opciones, -i, -U, -F y --rebuild requieren nombres de archivos. -q -V y -e generalmente usan el nombre del paquete.
Cuando se instala o actualiza un paquete, generalmente -U es la mejor opción ya que permite instalar un paquete sin desinstalar manualmente el viejo.
Algunas operaciones requieren el nombre del archivo paquete, mientras que otras solo el nombre del paquete
Operaciones de RPM
Operación | Descripción |
---|---|
-i | Instala el paquete. |
-U | Instala un nuevo paquete o actualiza el existente. |
-F o –freshen | Instala un paquete solo si existe una versión anterior. |
-q | Consulta un paquete, si esta instalado, que archivos contiene, etc. |
-V o –verify | Verifica que el paquete esta presente y no ha cambiado desde la instalación |
-e | Desinstala el paquete |
-b | Compila un paquete binario, habiendo recibido código fuente y archivos de configuración; migrado a rpmbuild a partir de versión 4.2 |
--rebuild | Compila un paquete binario, habiendo recibido un paquetes RPM; migrado a rpmbuild a partir de versión 4.2 |
--rebuilddb | Reconstruye la base de datos RPM para arreglar errores |
Opciones
Opción | Con operaciones | Descripción |
---|---|---|
--root directorio | Todas | Modifica el directorio raíz del sistema. |
--force | -i, -U , -F | Fuerza la instalación aunque sobrescriba archivos o paquetes |
-h o --hash | -i, -U , -F | Muestra una serie de signos de numeral (#) para indicar el progreso de la operación |
-v | -i, -U , -F | Se usa en conjunto con -h, para producir un numero uniforme de # por cada paquete. |
--nodeps | -i, -U , -F, -e | Indica no chequear las dependencias. |
--test | -i, -U , -F | Chequea dependencias, conflictos y otros problemas sin instalar el paquete |
--prefix ruta | -i, -U , -F | Indica el directorio para instalar el paquete (funciona solo con algunos paquetes) |
-a o --all | -q, -V | Consulta o Verifica todos los paquetes |
-f archivo o --file archivo | -q, -V | Consulta o Verifica el paquete que contiene cierto archivo |
-p archivo_de_paquete | -q | Consulta o verifica el paquete desinstalado |
-i | -q | Muestra información acerca del paquete. |
-R o --requires | -q | Muestra los archivos o los paquetes de los cuales depende |
-l --list | -q | Muestra los archivos que contiene el paquete |
Ejemplo
rpm -Uvh samba-3.6.12-163.1.i686.rpm
El comando anterior instala o actualiza el programa samba.
Yum
Yum es a las distribuciones basadas en Red Ha_t lo que _APT es a las distribuciones basadas en Debian.
La configuración general del sistema YUM se encuentra en /etc/yum.conf y los repositorios YUM configurados se encuentran declarados en /etc/yum.repos.d/.
Operaciones de Yum
Comando | Descripción |
---|---|
Install | Instala uno o mas paquetes por su nombre. También instala las dependencias |
Update | Actualiza uno o mas paquetes por su nombre. Si no se especifica ningún paquete, actualiza todos los paquetes presentes en el sistema. |
Check-update | Chequea si hay actualizaciones disponibles. Si las hay, yum muestra sus nombres versiones y repositorios. |
Upgrade | Trabaja como upgrade, pero con la bandera –obsolete. |
Remove o erase: | Remueve un paquete del sistema junto con sus dependencias. |
List | Muestra información sobre un paquete. |
Provides o whatprovides | Muestra información acerca de paquetes que proveen un programa especifico, como ser samba. |
Search | Busca nombres de paquetes, resúmenes descripciones de acuerdo a una palabra clave especifica. |
Info | Muestra información acerca de un paquete. |
Clean | Limpia el cache de directorios. Es aconsejable ejecutar este comando regularmente. |
shell | Ejecuta yum en modo shell. |
Resolvdep | Muestra paquetes que cumplan con la dependencias especificada. |
Localinstall | Instala los RPM locales que se especifiquen, usando los repositorios de Yum para resolver dependencias. |
Localupdate | Actualiza un paquete con un archivo local, usando los repositorios de Yum para resolver dependencias. |
Deplist | Muestra las dependencias de algún paquete que se especifique. |
Yumdownloader
Si no se quiere instalar un programa, pero se quiere obtener el paquete, se puede utilizar el comando yumdownloader, seguido del nombre del paquete. Esto puede ser útil cuando se tiene una computadora que no esta conectada a Internet, en este caso, se puede utilizar otro sistema para bajar el paquete, y luego instalarlo.
Rpm2cpio
En ocasiones, es posible que se quiera extraer datos de un paquete sin realmente instalar el paquete. Estos datos pueden ser código fuente o alguna otra cosa dentro del paquete.
Los paquetes rpm son en realidad archivos cpio modificados, la utilidad rpm2cpio nos permite extraer lo que se encuentra dentro de esos archivos.
Primero convertimos el paquete RPM en un archivo cpio
rpm2cpio samba-3.6.5.src.rpm > sambio.src.cpio
Luego extraemos el archivo cpio