Portada
wiki de fedora-ve

Actualmente nos encontramos trabajando arduamente en un wiki donde podrás encontrar bastante documentación disponible, este website de ahora en adelante contendrá solo unica y exclusivamente noticias y algunos contenidos más, los contenidos referentes a documentación poco a poco serán migrados al wiki.

  Te invitamos a colaborar en nuestro wiki, el wiki es un sistema colaborativo el cual nos permite a muchas personas trabajar sobre un mismo documento, al estilo de wikipedia.

 La dirección de nuestro wiki es:

 
Guía Yum (en desarrollo) PDF Imprimir E-Mail
Escrito por Gomix   
domingo, 17 de diciembre de 2006
Guía Yum

Guillermo Gómez

Caracas - Venezuela

Gomix

Guía Yum en Fedora

Fundamentos

Si bien RPM es el gestor base para los paquetes, el cálculo de las dependencias puede llevarnos a de vez cuando a jalarnos los pelos de la cabeza, de ahí la necesidad de aprender a usar YUM quién nos evitará tales malos ratos y que siempre y cuando tengamos un acceso a un repositorio YUM, podremos sonreír e instalar, desinstalar y actualizar cualquiera de los paquetes de software en nuestro Fedora o sistema basado en RPM.

YUM : Yellow dog Updater, Modified, software para actualizar, instalar y desinstalar paquetes en sistemas basados en RPM de forma automática.

La ventaja fundamental es el cálculo de las dependencias y en consecuencia su inclusión³n automática para poder instalar lo que queremos. Ejemplo:

[root@elbax ~]# yum install xfig

...

Dependencies Resolved

===========================

Package Arch Version

Repository Size

===========================

Installing:

xfig i386 3.2.4-17.3.fc5 fedora 4.7 M

Installing for dependencies:

openmotif i386 2.3.0-0.1.9.3 fedora 1.5 M

transfig i386 1:3.2.4-13.3 fedora 212 k

xpdf i386 1:3.01-12.1 fedora 2.7 M

xpdf-utils i386 1:3.01-12.1 fedora 349 k

Transaction Summary

====================================================

Install 5 Package(s)

Update 0 Package(s)

Remove 0 Package(s)

Total download size: 9.4 M

Is this ok [y/N]:

En este ejemplo queremos instalar xfig pero necesitamos una serie de dependencias no instaladas previamente en nuestros sistema.

Yum se ha dado cuenta de ello y ha incluido las dependencias para que podamos tener éxito, fácil no?

Bien, si esto es fácil, no dejen de probar:

yum remove <paquete>

yum update <paquete>

# Si no especifica paquete, podrá aplicar todas las actualizaciones disponibles

Luego tenemos a los primos gráficos (GUIs) Pirut y Pup que son frontales de Yum para actualizar nuestro sistema Fedora. Pirut se llama desde el menú Aplicaciones -> Agregar/Remover Software y Pup desde el menú Aplicaciones -> Herramientas del Sistema -> Software Updater. También existen otro par de primos mayores, yumex y gnome-yum que son herramientas más avanzadas que permiten más poder de control sobre yum desde el entorno X.

Guía Yum

Exclusión al actualizar

De tanto en tanto, o por cualquier razón, nos interesa excluir este o cual paquete en una actualización. Para ello use la opción --exclude, por ejemplo así:

# yum update --exclude=ekiga

Esto puede que sea necesario porque en un momento dado los espejos que usa no se actualizan lo suficientemente rápido y no quiere esperar, o simplemente no desea usar la nueva versión.

Listando

Ya que en la sección anterior anterior aprendimos a instalar, remover y actualizar software con Yum, veamos ahora un uso un poco más avanzado de Yum en la consola.

Veamos qué paquetes tenemos instalados:

[gomix@movix ~]$ yum list installed

Loading "installonlyn" plugin

Installed Packages

GConf2.i386 2.14.0-1 installed

GConf2-devel.i386 2.14.0-1 installed

GFS.i386 6.1.5-0.FC5.1 installed

GFS-kernel-smp.i686 2.6.15.1-5.FC5.33 installed

.... [muchos otros]

Veamos qué paquetes están disponibles para ser instalados en los repositorios configurados:

[gomix@movix ~]$ yum list available

Loading "installonlyn" plugin

Setting up repositories

Reading repository metadata in from local files

Available Packages

915resolution.i386 0.5.2-3.fc5 fedora-extras-ve

BackupPC.noarch 2.1.2-6.fc5 fedora-extras-ve

BibTool.i386 2.48-4.fc5 fedora-extras-ve

.... [muchos otros]

Finalmente, por ahora, veamos qué paquetes instalados tienen actualizaciones disponibles:

[gomix@movix ~]$ yum list updates

Loading "installonlyn" plugin

Setting up repositories

fedora-actualizaciones-ve [1/3]

fedora-extras-ve [2/3]

fedora-core-ve [3/3]

Reading repository metadata in from local files

Updated Packages

apr-util.i386 1.2.8-1.fc6 fedora-actualiza

cups.i386 1:1.2.7-1.5.fc6 fedora-actualiza

cups-libs.i386 1:1.2.7-1.5.fc6 fedora-actualiza

... [otros]

[gomix@movix ~]$

Grupos

Ya que hemos revisado varias de las opciones del programa yum, ahora revisaremos una que no es muy popular y que ciertamente es muy útil, y es la capacidad de Yum de manejar grupos de sw para instalar, actualizar, remover o listar.

[gomix@movix ~]$ yum grouplist

Loading "installonlyn" plugin

Setting up Group Process

Setting up repositories

Installed Groups:

Office/Productivity

Development Libraries

Editors

System Tools

Development Tools

GNOME Software Development

Text-based Internet

Base for rpm.livna.org RPM-Repository

X Software Development

GNOME Desktop Environment

Xine

Authoring and Publishing

Network Servers

Hardware Support

Games and Entertainment

Java Development

X Window System

Graphics

Web Server

Eclipse

Printing Support

Mail Server

Server Configuration Tools

Sound and Video

Administration Tools

MPlayer

Graphical Internet

Available Groups:

Engineering and Scientific

MySQL Database

Virtualization

Legacy Network Server

DNS Name Server

FTP Server

Legacy Software Development

Windows File Server

KDE Software Development

KDE (K Desktop Environment)

PostgreSQL Database

News Server

Done

Digamos que quiero comenzar a desarrollar en KDE (nadie me cree eso).

# yum groupinstall "KDE Software Development"

.... otros tantos mas ....

kdelibs i386 6:3.5.5-0.2.fc6 fedora-ve 18 M

kdenetwork i386 7:3.5.5-0.1.fc6 fedora-ve 12 M

kdepim i386 6:3.5.5-0.2.fc6 fedora-ve 19 M

kdeutils i386 6:3.5.5-0.1.fc6 fedora-ve 3.8 M

kdnssd-avahi i386 0.1.3-0.1.fc6 fedora-ve 43 k

kdnssd-avahi-devel i386 0.1.3-0.1.fc6 fedora-ve 11 k

pcre-devel i386 6.6-1.1 fedora-ve 175 k

sip-devel i386 4.4.5-3 fedora-ve 15 k


Transaction Summary

=======================================================

Install 24 Package(s)

Update 0 Package(s)

Remove 0 Package(s)


Total download size: 121 M

Is this ok [y/N]:

Obviamente haber averiguado todos y cada uno de los nombres e instalarlos uno a uno, aún con sus dependencias calculadas con yum hubiera sido un dolor de cabeza. Esto funciona para la remoción de grupos completos, por ejemplo, puede desinstalar KDE completo con una sola instrucción:

# yum groupremove "KDE (K Desktop Environment)"

También puede obtener información de los grupos.

# yum groupinfo "KDE (K Desktop Environment)"

...

Group: KDE (K Desktop Environment)

Description: KDE is a powerful, graphical user interface which includes a panel, desktop,

system icons, and a graphical file manager.

Mandatory Packages:

arts

kdebase

Default Packages:

im-chooser

kdeaddons

kdeartwork

kdeaccessibility

kdemultimedia

kdeutils

kdegraphics

desktop-printing

autorun

kdepim

kdemultimedia-extras-nonfree

kdenetwork

Optional Packages:

kdeadmin

Igual puede actualizar un grupo dado con por ejemplo:

# yum groupupdate "MySQL Database"

Para Atrás (rollback)

Ya no es tan común, sobre todo si ya es un administrador experimentado, pero puede pasar que deseemos echar atrás lo que hicimos, esto se denomina en inglés rollback. En ciertos entornos esto es mandatorio. Después de largo tiempo usando sistemas RPM finalmente y desde hace no mucho está disponible las facilidades necesarias en rpm y en yum para para poder echar atrás de forma automática y simple. Esto aún no permite tener varias versiones del mismo software, que yo sepa, en la base de datos rpm, es uno de los pocos requerimientos que no se maneja aún en rpm hasta donde sé.

Veamos entonces qué debemos hacer para lograr el poder echar para atrás con yum/rpm.

  1. Para configurar yum para que salve la información de roolback agregue la siguiente línea a su /etc/yum.conf.

tsflags=repackage

  1. Para configurar la utilidad de línea de comando rpm para que haga lo mismo, agregue la siguiente línea en /etc/rpm/macros.

%_repackage_all_erasures 1

  1. Instale, elimine y actualice a su voluntad, ya sea usando pup, pirut, yumex, yum, rpm, o el servicio automático de actualizaciones yum.

  2. Si y cuando desee echar atrás a un estado previo, realice una actualización rpm con la opción --rollback seguida de un especificador de fecha/hora. Algunos ejemplos son:

# rpm -Uhv --rollback '9:00 am'

# rpm -Uhv --rollback '4 hours ago'

# rpm -Uhv --rollback 'december 25'



La capacidad de echar pa'tras es de gran valor para empresas que operan bajo condiciones estrictas como las de telecomunicaciones, en donde se debe trabajar en condiciones de “ventanas de tiempo de mantenimiento”.

También ocurre que a veces hacemos actualizaciones sin muchas evaluaciones previas y llegamos a un punto donde la mejor solución simplemente es volver al estado anterior a la actualización.

No olvide que una actualización puede haber provocado decenas de actualizaciones de dependencias. El hacer el procedimiento manualmente puede tomarle simplemente mucho tiempo.

Note que no hay un comando yum para hacer el rollback, debe hacerse con rpm. Tampoco sé que se pueda hacerlo con algún gui de yum com pirut, pup, yumex o gnome-yum.

Configuración con Prioridad

Siguiendo con el uso avanzado de Yum, ahora veremos como podemos configurar nuestro Fedora para que use nuestros repositorios locales en cierto orden con prioridad sin descartar la lista de espejos externos. Sin más vea la configuración necesaria.

[fedora-core-ve]

name=Fedora Core $releasever - $basearch - Base

baseurl=http://mirepo.org/$releasever/$basearch/os/

http://otrorepo.org/$releasever/$basearch/os/

mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=core-$releasever&arch=$basearch

failovermethod=priority

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora

Primero note el uso de múltiples URL en baseurl. Debe hacerse como lo he puesto aquí, no utilice múltiples declaraciones baseurl, no funcionará adecuadamente.

Luego note el uso de la declaración failovermethod, este parámetro puede tener los valores 'roundrobin' o 'priority'. Por omisión el valor es 'roundrobin' que aleatoriamente selecciona un URL de la lista de URLs. El valor puesto a 'priority' hace que se comience por el primer URL de la lista de URLs. Aquí es importante notar que la lista de URLs se construye con los baseurl y luego de la lista obtenida de mirrorlist. Así entonces logramos lo que queríamos, buscamos primeros en nuestros repos, luego si fallan, en ese orden, se busca en los URL de la lista de espejos.

Extensiones Yum

El sitio para la centralización de configuración de las extensiones en Fedora es /etc/yum/pluginconf.d.



http://wiki.linux.duke.edu/YumPlugins

installonlyn

Debido a la naturaleza de kernel en donde con Yum siempre se hace una instalación en vez de una actualización, esta extensión permite ser configurada para mantener instalados “n” kernels y no infinitas versiones. Su configuración se encuentra en en /etc/yum/pluginconf.d/installonlyn.conf. La configuracón por omisión es:

[main]

# Lo siguiente habilita la extensión

enabled=1

# La siguiente línea establece la cantidad que se permiten instalados

tokeep=2

downloadonly

Ahora vamos a comentar acerca de un módulo adicional de Yum. Ah perdón, se me olvidaba decirles, Yum es modular y puede incorporar una serie de módulos adicionales con diferentes propósitos, este es uno de ellos.

# yum install yum-downloadonly

...

Dependencies Resolved

=========================================================

Package Arch Version Repository Size

=========================================================

Installing:

yum-downloadonly noarch 1.0.1-1.fc6 fedora-extras 5.9 k


Transaction Summary

=========================================================

Install 1 Package(s)

Update 0 Package(s)

Remove 0 Package(s)


Total download size: 5.9 k

Is this ok [y/N]: y

Veamos cómo podemos usarlo y recordemos que podemos usar Yum para obtener información general de los paquetes con yum info, aún si no están instalados:

# yum info yum-downloadonly

Loading "installonlyn" plugin

Loading "downloadonly" plugin

Setting up repositories

Reading repository metadata in from local files

Installed Packages

Name : yum-downloadonly

Arch : noarch

Version: 1.0.1

Release: 1.fc6

Size : 3.1 k

Repo : installed

Summary: Yum plugin to add downloadonly command option

Description:

This plugin adds a --downloadonly flag to yum so that yum will only download the packages and not install/update them.

Para los que no le pegan al inglés, una de las razones de esta publicación, la descripción lo dice todo, se agrega la opción --downloadonly a Yum. Intentemos usarla con un paquete no instalado (note la línea de carga del módulo, 'Loading "downloadonly" plugin').

# yum --downloadonly yum-kernel-module

Esto nos dará un error porque Yum espera un comando después de la opción. Así que ahora lo intentaremos correctamente con:

# yum install --downloadonly yum-kernel-module

Loading "installonlyn" plugin

Loading "downloadonly" plugin

Setting up Install Process

Setting up repositories

Reading repository metadata in from local files

Parsing package install arguments

Resolving Dependencies

...

Dependencies Resolved

==========================================

Package Arch Version Repository Size

==========================================

Installing:

yum-kernel-module noarch 1.0.1-1.fc6 fedora-extras-ve 7.0 k

Transaction Summary

==========================================

Install 1 Package(s)

Update 0 Package(s)

Remove 0 Package(s)

Total download size: 7.0 k

Is this ok [y/N]: y

Downloading Packages:

(1/1): yum-kernel-module- 100% |=========================| 7.0 kB 00:00

exiting because --downloadonly specified

Note ahora que yum termina. Ahora la pregunta es, ¿dónde está nuestro archivo rpm? La respuesta es que depende de la configuración de yum, pero la configuración de caja almacena todo en la carpeta /var/cache/yum/<repositorio>. Como en nuestro caso el archivo rpm descargado provenía de Fedora Extras, el nombre del directorio donde se almacenó es /var/cache/yum/extras.

# cd /var/cache/extras

# ls

cachecookie headers packages primary.xml.gz

primary.xml.gz.sqlite repomd.xml

# cd packages/

# ls

yum-kernel-module-1.0.1-1.fc6.noarch.rpm

Ahí está nuestro rpm descargado y podemos confirmar que no se ha instalado con :

# rpm -q yum-kernel-module

package yum-kernel-module is not installed

¿Qué pasa si el paquete tiene dependencias?

# yum --downloadonly install zaptel-utils

...

Dependencies Resolved

=========================================================

Package Arch Version Repository Size

=========================================================

Installing:

zaptel-utils i386 1.4.0-9.fc6 fedora-extras 32 k

Installing for dependencies:

zaptel-lib i386 1.4.0-9.fc6 fedora-extras 13 k

Transaction Summary

=========================================================

Install 2 Package(s)

Update 0 Package(s)

Remove 0 Package(s)

Total download size: 45 k

Is this ok [y/N]: y

Downloading Packages:

(1/2): zaptel-lib-1.4.0-9 100% |========| 13 kB 00:00

(2/2): zaptel-utils-1.4.0 100% |========| 32 kB 00:01

exiting because --downloadonly specified

Nuevamente yum hace lo correcto, descarga todo, pero no los instala.

# ls

yum-kernel-module-1.0.1-1.fc6.noarch.rpm

zaptel-lib-1.4.0-9.fc6.i386.rpm

zaptel-utils-1.4.0-9.fc6.i386.rpm

Asi que con esta extensión podemos entonces descargar los paquetes y sus dependencias para por ejemplo un computador que no tiene conexión a internet.

¿Qué pasa si el paquete ya está instalado?

# rpm -q httpd

httpd-2.2.3-5

# yum --downloadonly install httpd

...

Nothing to do

Y tiene sentido, ya está instalado. ¿Hay manera de forzar? No. Hablaremos de otro programa para resolver ese caso en una próxima ocasión.

Fastestmirror

Esta extensión está diseñada para ordenar la lista de espejos por velocidad de respuestas de cada uno antes de comenzar una descarga.

# yum install yum-fastestmirror

Dependencies Resolved

=============================================================================

Package Arch Version Repository Size

=============================================================================

Installing:

yum-fastestmirror noarch 1.0.2-2.fc6 fedora-extras-ve 9.9 k


Transaction Summary

=============================================================================

Install 1 Package(s)

Update 0 Package(s)

Remove 0 Package(s)


Total download size: 9.9 k

Is this ok [y/N]: y

Downloading Packages:

(1/1): yum-fastestmirror- 100% |=========================| 9.9 kB 00:00

Running Transaction Test

Finished Transaction Test

Transaction Test Succeeded

Running Transaction

Installing: yum-fastestmirror ######################### [1/1]


Installed: yum-fastestmirror.noarch 0:1.0.2-2.fc6

Complete!

Su configuración está en /etc/yum/pluginconf.d/fastestmirror.conf.

[main]

enabled=1

verbose=0

socket_timeout=3

hostfilepath=/var/cache/yum/timedhosts.txt

maxhostfileage=10

Al intentar una operación Yum, siempre ocurre este ordenamiento. Podemos medir su efectividad desactivando y activando la extensión y realizando la misma descarga y procurando que no se use el cache.

## Limpieza del cache

# yum clean packages

Loading "fastestmirror" plugin

Loading "installonlyn" plugin

Loading "downloadonly" plugin

5 packages removed

## Deshabilito fastestmirror en su archivo de config primero, descargo de fedora-ve.org

## Escogemos algun rpm a descargar con unos +/-10Megas para que se note la diff

## También agregamos -y para evitar el retardo de contestar de forma interactiva

# time yum -y --downloadonly install abiword

...

Totalc download size: 9.1 M

...

real 5m6.770s

user 0m11.469s

sys 0m1.660s

## Limpiamos el cache otra vez

# yum clean packages

Loading "fastestmirror" plugin

Loading "installonlyn" plugin

Loading "downloadonly" plugin

5 packages removed

## Vuelvo habilitar fastestmirror en su archivo de config

# yum -y --downloadonly install yumex

...

real 5m23.901s

user 0m11.926s

sys 0m1.845s

Curiosamente, de hecho no va más rápido. No conozco los detalles de cómo mide esta extensión la velocidad de los repositorios, pero lo cierto es que no parece muy efectivo. Aún así y de acuerdo a los experimentos que realice, si funciona de acuerdo a su propia lógica, es decir, sea como sea que mide los servidores, usa el mejor de acuerdo a esa medida, de ahí que si hay posibilidades de que nos vaya mejor. Una de las pruebas que hice fue verificar que esta extensión actúa después de armar la lista de servidores sin importar el método de failovermethod seleccionado en la configuración de los repositorios, es decir que funciona sin importar el orden de dicha lista, se vuelve a ordenar de acuerdo a la medida de velocidad y se escoge el “más rápido”.

Comentarios
Añadir nuevoBuscarRSS
Escribir comentario
Nombre:
Título:
Código UBB:
[b] [i] [u] [url] [quote] [code] [img] 
 
Security Image

Powered by JoomlaCommentCopyright (C) 2006 Frantisek Hliva. All rights reserved.Homepage: http://cavo.co.nr/

 
Siguiente >