Inicio arrow Artículos arrow Linux arrow Instalación y configuración de YUM
Menú Principal
Lo más leído
Consigue Firefox
Usuarios
993 registrados
1 hoy
5 esta semana
138 este mes
Último: gabity...
Formulario de acceso



... Regenerar clave
... Registro
Instalación y configuración de YUM Imprimir E-Mail
domingo, 23 de julio de 2006

yum logoYUM (Yellow dog Updater, Modified) es un gestor automático de paquetería rpm. De forma totalmente mecánica, el programa es capaz de calcular y encontrar las dependencias entre paquetes, ver si están disponibles, descargarlas e instalarlarlas. A diferencia del clásico comando rpm, las actualizaciones de paquetería son tan simples como escribir una instrucción en la línea de comandos o pulsar el botón del ratón. 


Instalación

Si bien las distribuciones que pueden hacer uso de YUM ya traen este programa instalado por defecto, podemos descargar la última versión del programa de la página web que lo mantiene (linux.duke.edu/projects/yum/) o bien podemos usar la versión que venga en el disco de la distribución. Las últimas versiones de YUM requieren tener instalado Phyton y rpm para un correcto funcionamiento. Una vez descargada la última versión o localizado el paquete, procederemos a su instalación mediante el uso del comando rpm:

rpm -Uvh yum-2.6.1-0.fc5.noarch.rpm
Preparing... ########################## [100%]
   1:yum-2.6.########################## [100%]


Configuración

El fichero principal de configuración de YUM se encuentra en /etc/yum.conf y su estructura es muy sencilla:

Sección [main]: Donde se configuran las opciones globales del sistema, tales como el directorio de almacenamiento temporal (caché), el nivel de depuración, el archivo de log, etc. Dichas opciones se resumen en lo siguiente:

  • cachedir - Directorio de la caché de archivos de yum.
  • reposdir - Directorio donde buscar los archivos de los repositorios de YUM, por defecto /etc/yum.repos.d.
  • assumeyes - 1 ó 0, le dice a YUM si pedirá confirmación cuando la posible respuesta sea SI. Por defecto 0.
  • exclude - Lista de paquetes que serán excluidos de actualizar. Debe ser una lista separada por espacios, los comodines *, ? ,..... están permitidos.
  • exactarch - 1 ó 0, el valor 1 hace que YUM solo actualice los paquetes para la arquitectura que tenemos instalada, de este modo YUM no instalará un paquete i686 para actualizar un paquete i386.
  • obsoletes - 1 para que YUM busque en los paquetes obsoletos al actualizar, 0 para deshabilitar esta función. Por defecto 0.
  • distroverpkg - paquete usado para determinar la versión de la distribución instalada, puede ser cualquier paquete instalado. Por defecto redhat-release en las distribuciones con Fedora Core.
  • retries - Número de reintentos antes de devolver error. 0 no dejará de intentarlo nunca. Por defecto 6.
  • showdupesfromrepos - 1 para ver los paquetes duplicados en cualquier repositorio, 0 para ver solo la versión más reciente del paquete en cualquier repositorio. Por defecto 0.
  • installonlypkgs - Lista de paquetes que solo pueden ser instalados, no actualizados, la actualizaciones del kernel entran en esta categoría. Por defecto, kernel, kernel-smp, kernel-bigmem, kernel-enterprise, kernel-debug, kernel-unsupported.
  • gpgcheck - 1 ó 0. Dice a YUM si comprobar o no la firma gpg de los paquetes. Si se encuentra en la sección [main], este será el comportamiento para todos los repositorios y también para los paquetes rpm instalados localmente.

Sección [Repositorio]: En esta sección configuraremos cada repositorio (sitio de distribución de paquetería) particular. En las últimas distribuciones de Fedora Core, también podemos almacenar los repositorios por separado bajo la rama /etc/yum.repos.d/nombre_repositorio.repo. Las opciones que se refieren a esta sección/archivo son las siguientes:

  • [serverid] - Nombre único para cada repositorio, una sola palabra entre corchetes [].
  • name - Nombre para describir el repositorio.
  • baseurl - URL al directorio donde se encuentra el "encabezado" del repositorio. Puede ser una url http://, ftp:// o file:// . Se pueden especificar varias url de este modo:

    baseurl=url://server1/path/to/repository/
    url://server2/path/to/repository/
    url://server3/path/to/repository/


    No se puede usar mas de una opción baseurl en un repositorio.
  • gpgcheck - Igual que en [main], pero solo para este repositorio.
  • mirrorlist - Especifica una url que contiene una lista de baseurls.
  • exclude - Igual que en [main], pero solo para este servidor.
  • includepkgs - Lo contrario de exclude. Es una lista de los paquetes que queremos usar de este repositorio. Solo los paquetes indicados estarán disponibles.

Variables: Usadas en las opciones name, baseurl y los comandos del archivo de configuración, ayudan al mantenimiento del mismo. Dichas variables son las siguientes:

  • $releasever - Reemplaza el valor de la versión del paquete listado en distroverpkg. Lo que lo convierte en la versión del sistema (redhat-release).
  • $arch - Reemplaza la arquitectura listada por os.uname()[4] en Python.
  • $basearch - Reemplaza nuestra arquitectura base por la listada en archwork.py en YUM. Por ejemplo si $arch es i686, $basearch será i386.

Repositorios

Aunque en principio los paquetes oficiales de Fedora Core o Red Hat nos sirven perfectamente para mantener actualizado el sistema, es probable que necesitemos dar de alta otros repositorios para tener a nuestro alcance cierto software que no es provisto por las fuentes oficiales. Por ejemplo, dentro de la propia distribución de Fedora Core podemos encontrarnos con el repositorio Fedora Extras, que incluye toda la paquetería afectada por licencias especiales no incluída de serie en la distribución oficial. También es importante tener en cuenta que ciertos repositorios no son compatibles con la línea oficial de Fedora Core, ya sea porque no han sido aprobados por esta o porque, simplemente, incluyen versiones de software incompatible con los paquetes oficiales. Habremos de tener mucho cuidado a la hora de instalar software de esos repositorios, pues podemos estropear vínculos de paquetería que harían la actualización posterior algo muy complicado. Lo que sigue a continuación es un pequeño listado de alguno de esos repositorios extra que podemos incluir en nuestros archivos de configuración.:

Compatibles con Fedora Core:

  • Livna (http://rpm.livna.org/ ) - Incluye paquetes que por cuestiones de licencia no pueden ser incluídos en la verisón oficial de Fedora Core, sobre todo relacionados con drivers de tarjetas gráficas o codecs multimedia.
  • JPackage.org (http://jpackage.org/ ) - Mantiene paquetes relacionados con apliaciones en Java.

Incompatibles con Fedora Core:


Uso del programa

Instalado el programa y configuradas las opciones, es hora de tratar el uso de YUM. Si tecleamos el comando yum directamente en la consola y pulsamos la tecla Intro, obtendremos una salida similar a esta:

[root@myserver ~]# yum
You need to give some command

usage: yum [options] < update | install | info | remove | list |
    clean | provides | search | check-update | groupinstall |
    groupupdate | grouplist | groupinfo | groupremove |
    makecache | localinstall | erase | upgrade | whatprovides |
    localupdate | resolvedep | shell | deplist >

Aunque las opciones más usadas se reducen a menos de cinco, pasaremos a describir todas ellas a continuación. Hay que tener en cuenta que todos los comandos deberían llevar al final, si no se especifica lo contrario, el nombre del paquete o grupo de paquetes a tratar (por ejemplo yum install firefox o yum groupinstall "GNOME Desktop Environment"):

  • yum install, yum groupinstall - Instala la última versión del paquete o grupo de paquetes especificado, atendiendo a todas las dependencias necesarias.
  • yum update, yum groupupdate - Actualiza el paquete a la última versión y atiende todas las dependencias necesarias. Esta opción se puede ejecutar sin especificar ningún paquete, en cuyo caso la órden actualizará todos los paquetes actualizables que estén instalados en la máquina. Se puede añadir el flag --obsoletes al final y se tendrán en cuenta en la actualización todos los paquetes que pertenezcan a versiones anteriores, lo cual es bastante útil cuando queremos usar YUM para actualizar un sistema al completo).
  • yum checkupdate - Realiza la misma función que update, pero sólo comprueba si existen actualizaciones e informa de ello.
  • yum upgrade - Actualiza un sistema al completo. Equivale a la órden yum update --obsoletes
  • yum remove, yum erase - Elimina del sistema el paquete o grupo de paquetes especificado, así como todos los paquetes que dependen de él.
  • yum list, yum grouplist [opción] [expresión] - Ofrece información sobre los paquetes disponibles que coincidan con el argumento [expresión]. Dependiendo del valor de [opción], se devolverán resultados diferentes y si [opción] no se iguala a nada, se devolverán todos los paquetes disponibles sin filtro alguno. Podemos igualar [opción] a available, que lista sólo los paquetes disponibles en los repositorios; updates, que lista sólo los paquetes actualizables disponibles en los repositorios; installed, que lista sólo los paquetes que tenemos instalados en la máquina; extras, que lista los paquetes instalados y que no están disponibles en ningún repositorio; obsoletes, que lista los paquetes antiguos con respecto a los repositorios instalados en el sistema.
  • yum provides, yum whatprovides - Con esta órden podemos encontrar e paquete que proporciona una utilidad en concreto. Se puede usar el nombre completo del programa o parte del mismo.
  • yum search - Busca y lista paquetes que coincidan con la refrencia dada. Dicha búsqueda se realiza en todo el contenido del paquete, incluyendo el sumario o la descripción, así que podemos utilizar este comando para buscar paquetes de los que no sabemos el nombre pero sí qué es lo que hacen o para qué sirven.
  • yum info, yum groupinfo [opción] [expresión] - Ofrece una descripción detallada sobre los paquetes disponibles. Su uso es idéntico a  yum list.
  • yum clean [opción] - En el directorio especificado como caché en el arcivo de configuración, se guardan todos los paquetes rpm instalados o actualizados, así como información de cabeceras y otros datos temporales. La opción clean limpia la caché de YUM. Dependiendo del valor de [opción], se borrarán sólo los paquetes (packages), las cabeceras (headers),  los datos temporales en xml (metadata), la caché temporal (cache) o todo sin excepción (all).
  • yum localupdate - Actualiza paquetes tomando los rpm de una ruta local. Sólo se actualizarán aquellos paquetes que estén instalados y se resolverán las dependencias tomando como base los repositorios configurados.
  • yum deplist - Devuelve un listado de las dependencias y de los paquetes que proveen dichas dependencias para el argumento dado.
  • yum shell - YUM incluye un shell interactivo que permite la ejecución de varios comandos durante una misma sesión del programa. Dischos comandos se pueden pasar de forma manual o través de un archivo de lotes. Para una información más detallada de esta opción teclearemos man yum-shell.
  • yum resolvedep - Lista los paquetes que requieren de una dependencia dada. Se listarán varios paquetes por cada dependencia.

Antes de la opciones que acabamos de ver, pueden incluirse otras genéricas que nos ayudarán en situaciones determinadas. Dichas opciones incluyen uno o dos guiones antes de la palabra que las conforma:

  • -h, --help - Muestra la ayuda.
  • -y - Responde positivamente a todas las preguntas que haga el programa, siguiendo éste adelante sin pausa.
  • -c [archivo] - Especifica el archivo de configuración a usar. [archivo] será una ruta local o una url.
  • -t, --tolerant - El programa será tolerante con los errores en la línea de comando y no los devolverá si estos existen, aunque tampoco ejecutará nada si el comando es fallido.
  • -C - Usa sólo los paquetes que han sido almacenados en la caché local. Es útil cuando la actualización se hace en varias máquinas con la misma distribución, pudiendo una de ellas almacenar toda la caché y las demás actualizarse de dicha caché.
  • --exclude=[paquete] - Excluye de la órden dada el paquete o paquetes referenciados.
  • --enablerepro=[repositorio] - Habilita un repositorio determinado que ha sido deshabilitado en el archivo de configuración.
  • --disablerepo=[repositorio] - Deshabilita un repositorio determinado que ha sido habilitado en el archivo de configuración.

YUM en modo gráfico

De los distintos paquetes que nos permiten interactuar con YUM en un entorno gráfico, vamos a centrarnos en yumex (YUM Extender) por ser, a juicio del autor, el programa más estable y más soportado por el desarrollador en el momento de la redacción de este documento.

La instalación del programa, una vez que tenemos YUM funcionando a pleno rendimiento, no podría ser más fácil:

[root@myserver ~]# yum install yumex

Tras esto podemos iniciar nuestro entorno gráfico y buscar la aplicación en nuestro menú de aplicaciones o bien escribir yumex en la consola. Ambos procedimientos nos lanzarán una pantalla similar a esta: 

 

Yumex 01

 

yumex toma los archivos de configuración de YUM por defecto y, una vez terminados de cargar los datos de los repositorios, nos mostrará de forma gráfica todas las opciones a nuestra disposición. El programa es muy intuitivo y dejaremos que cada cual investigue por su cuenta sus numerosas opciones.

 

Yumex 02

 


Actulizando la versión de Fedora Core con YUM

A modo de pequeño epílogo, vamos a realizar la actualización de un sistema con Fedora Core 4 a su versión posterior mediante el uso de YUM. Para ello haremos uso de la opción upgrade que nos ofrece el programa. Los pasos a seguir para realizar dicha actualización son los siguientes:

  • Instalaremos el paquete rpm fedora-release correspondiente a la versión 5 de Fedora Core. Con esto actualizaremos la versión del sistema y YUM tomará los repositorios por defecto de la versión 5 en su actualización de paquetería:

    [root@myserver ~]# rpm -Uvh fedora-release-5-5.noarch.rpm

  • Actualizamos toda la paquetería a Fedora Core 5 (la velocidad de actualización dependerá de la velocidad de conexión a internet):

    [root@myserver ~]# yum -y upgrade

Si la actualización falla, y ya que la salida por consola en demasiado larga, podemos buscar el error capturando toda la salida y almacenándola en un fichero de texto. Para ello, ejecutaremos el siguiente comando, que almacenará toda la salida en el fichero /tmp/yum_upgrade:

[root@myserver ~]# yum upgrade 2>&1 | tee /tmp/yum_upgrade

En principio, los errores vienen en su mayoría de paquetes obsoletos que ya no cumplen con la dependencias adecuadas y que habrá que desinstalar antes de hacer la actualización. Posteriormente podemos volver a instalar dichos paquetes. Podemos generar un listado de dichos paquetes mediante la siguiente instrucción, a ejecutar siempre que hayamos guardado la salida mediante la instrucción anterior:

[root@myserver ~]# perl -ne 'print "$1\n" if ((/Error: Missing Dependency:.*is needed by package (.*)$/) || (/Error: Package (.*?) needs.*, this is not available./))' /tmp/yum_upgrade | sort | uniq

Si entre los paquetes devueltos aparece initscripts, estaremos ante un pequeño problema de dependencias insatisfechas por causa de un kernel demasiado antiguo. En este caso, lo recomendable sería arrancar la máquina con el último kernel instalado, borrar todos los demás y volver a ejecutar la actualización si ya están todos los errores solventados.

Para finalizar, reiniciaremos la máquina y el sistema habrá quedado actualizado. Todo ello en pocos minutos y casi sin parar los servicios.


Comentario[s]

Sólo los usuarios registrados pueden escribir comentarios.
Por favor, valídate o regístrate.

Powered by AkoComment 2.0!

 
< Anterior   Siguiente >