Lejos han quedado ya los tiempos en que se usaba la expresión “infierno de las dependencias” o que había que ir por ahí buscando herramientas de terceros o recurrir a rebuscados trucos para gestionar instalaciones y actualizaciones en una distribución Linux con paquetes rpm. Hoy en día la combinación rpm/yum de Fedora, Red Hat, CentOS y otras derivadas tiene poco (o nada) que envidiarle a la pareja dpkg/apt-get de Debian & co. En esta entradilla vamos a dar un pequeño repaso a las opciones más comunes y a alguna de las más útiles.
Para empezar, los comandos usados más frecuentemente son estos:
| Comando | |
|---|---|
Actualizar completamente el sistema. Las opciones --skip-broken --nogpgcheck y --assumeyes (o simplemente -y) son útiles |
yum update |
| Tratar de instalar o actualizar un paquete de un fichero local (no lo hace si faltan dependencias) | rpm -Uvh fichero.rpm |
| Instalar un paquete de un fichero local resolviendo las dependencias necesarias | yum localinstal fichero.rpm |
| Instalar un paquete de los repositorios y resolver las dependencias necesarias | yum install nombre_paquete |
| Tratar de eliminar un paquete (no lo hace si hay otros que dependen de él) | rpm -e nombre_paquete |
| Eliminar un paquete y todos los que dependan de él (pedirá confirmación) | yum remove nombre_paquete |
En un gran porcentaje de casos esto es todo lo que debemos conocer de ambos y lo que tendremos que usar de forma habitual. Pero existen muchas otras opciones útiles y/o interesantes:
| Comando | |
|---|---|
| Realiza un "downgrade" del paquete en fichero.rpm | rpm -Uvh --oldpackage fichero.rpm |
| Idem que el anterior, pero usando yum | yum dowgrade nombre_paquete |
| Lista las dependencias necesarias para el paquete | rpm -qpR fichero.rpm |
| Lista todos los ficheros (y su ubicación) que se han instalado con el paquete | rpm -ql nombre_paquete |
| Nos indica el paquete del que ha salido el fichero indicado | rpm -qf nombre_fichero |
| Busca paquetes cuyo nombre sea total o parcialmente el indicado | yum search nombre |
| Busca el paquete indicado (admite comodines en el nombre) y nos dice si está instalado o no y otros datos. | yum list nombre_paquete |
| Muestra el historial de uso reciente de yum | yum history |
Cuando queremos instalar un equipo con exactamente los mismos paquetes que otro dado, tenemos la posibilidad de crear una lista de paquetes instalados con el siguiente comando:
1 |
rpm -qa lista_paquetes.txt |
Para luego instalarlos en la segunda máquina de esta forma que nos cuentan en Unixcraft:
1 |
sudo yum -y install $(cat paquetes.txt) |
Para otras posibilidades, tienes buenas referencias aquí para yum y aquí y aquí para rpm (pero con cuidado, que he visto algunos ejemplos que usan opciones que ya no están disponibles, como --repackage) o, por supuesto, en las páginas del manual de cada una de ellas.
Además, yum cuenta con un amplio repertorio de plugins que le permiten mejorar u optimizar su trabajo. Puedes ver la lista de la que dispones en tus repositorios con alguno de los comandos que acabas de aprender (yum list yum-plugin* o yum search yum-plugin funcionarían). Aparte de los que vienen cargados con Fedora por defecto, estos son los que considero imprescindibles:
yum-plugin-fastestmirrorelige el repositorio óptimo de entre una lista de mirrors.yum-plugin-remove-with-leaveselimina también los paquetes de dependencias huérfanos cuando se borra un paqueteyum-plugin-downloadonlyañade la posibilidad de poder descargar un paquete de los repositorios sin realizar su instalación
Y nos falta aún por ver la forma de indicarle al sistema donde están los repositorios de software, o sea, el equivalente al archivo /etc/apt/sources.list de los Debian. Esto se hace en archivos con extensión .repo que deben de crearse en el directorio /etc/yum.repos.d. Lo normal es crear un archivo por cada repositorio o familia de estos. Aquí tenemos también diferentes opciones de personalización. Veamos un ejemplo:
1 2 3 4 5 6 7 8 |
[kde-testing] name=kde-testing # baseurl=http://ftp.heanet.ie/pub/kde-redhat/fedora/$releasever/$basearch/testing mirrorlist=http://apt.kde-redhat.org/apt/kde-redhat/fedora/mirrors-testing enabled=1 gpgkey=http://apt.kde-redhat.org/apt/kde-redhat/kde-redhat.RPM-GPG-KEY gpgcheck=1 skip_if_unavailable=1 |
En las páginas del manual de yum.conf (el archivo de configuración de esta herramienta) tienes explicadas estas opciones y otras muchas bajo el epígrafe de repository options.
Y para el que prefiera una utilidad gráfica y, como a mi, no le entusiasme KPackagekit (apper desde fedora 16), puede echarle un vistazo a yumex (mi favorito) o a smart.
