Product SiteDocumentation Site

Fedora 18

Manual para gestión del software

La guía definitiva para la gestión del software

Edición 1

Guillermo Gómez Savino


Aviso Legal

Copyright © 2010 Red Hat, Inc. and others.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. The original authors of this document, and Red Hat, designate the Fedora Project as the "Attribution Party" for purposes of CC-BY-SA. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
For guidelines on the permitted uses of the Fedora trademarks, refer to https://fedoraproject.org/wiki/Legal:Trademark_guidelines.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
All other trademarks are the property of their respective owners.
Resumen
Este manual está dedicado a la gestión del software en Fedora. El lector adquirirá las habilidades necesarias para poder instalar, remover y actualizar el software de su sistema. Este manual esta diseñado para todos los niveles de lectores, desde usuarios de escritorio Fedora, hasta administradores de sistemas y desarrolladores Fedora.

Prefacio
1. Convenciones del Documento
1.1. Convenciones Tipográficas
1.2. Convenciones del documento
1.3. Notas y Advertencias
2. ¡Necesitamos sus comentarios!
1. Introducción
1.1. Propósito
1.2. Audiencia
1.3. Organización del manual
2. Introducción a la gestión del software
2.1. RPM
2.2. Repositorios de software
2.3. YUM
2.4. PackageKit
3. Las interfases GUI de gnome-packagekit
3.1. Añadir y quitar software con gpk-application
3.1.1. Estado de la aplicación
3.1.2. Listados
3.1.3. Instalación de paquetes
3.1.4. Desinstalación de paquetes
3.1.5. Filtros para listados
3.2. Alerta, actualizaciones disponibles
3.3. Actualizando con gpk-update-viewer
3.4. Ajuste de preferencias con gpk-prefs
3.5. Visualización de los registros con gpk-log
4. Apper, interfase GUI KDE PackageKit
4.1. Arranque de Apper
4.1.1. Búsqueda simple e instalar
4.1.2. Búsqueda simple y desinstalar
4.1.3. Cambios pendientes
4.2. Listas y Grupos
4.2.1. Listas
4.2.2. Grupos
4.3. Filtros de búsquedas
4.4. Actualizando software con Apper
4.5. Historial
4.6. Preferencias
5. Configuración de YUM
5.1. Configuración general
5.2. Variables yum
5.3. Manejo del cache
5.4. Configuración con prioridad
5.5. Control de ancho de banda
5.6. Configuración con proxy
5.7. Política multiarquitectura
5.8. Gestión de los repositorios yum
5.8.1. Agregar nuevos repositorios
5.8.2. Configuración manual de un repositorio
5.8.3. Remover repositorios
5.8.4. Los repositorios Fedora
5.8.5. Repositorios de terceros y personales
5.8.6. Lista de espejos y metalink
5.8.7. Configuración para protección de paquetes
6. Uso del comando yum
6.1. Comandos yum y su sintaxis
6.2. Los nombres de paquetes
6.3. El comando help
6.4. Listado de repositorios
6.5. Instalación de nuevo software
6.5.1. Instalar desde los repositorios habilitados
6.5.2. Error de dedo, mire las sugerencias
6.5.3. Instalar un RPM
6.5.4. Reinstalando software
6.6. Actualizando el software
6.6.1. Actualizar un paquete
6.6.2. Actualizar con un RPM
6.6.3. Volver a versión anterior
6.6.4. Actualización general
6.6.5. Verificación y listado de actualizaciones
6.6.6. Exclusión al actualizar
6.6.7. Evitar paquetes problemáticos al actualizar
6.7. Removiendo software
6.8. Obtener información de un paquete
6.9. Búsquedas y listados de paquetes
6.9.1. Búsqueda por nombre, descripción y resumen
6.9.2. Búsqueda por funcionalidad o archivo
6.9.3. Listado de paquetes instalados
6.9.4. Listado de paquetes disponibles
6.9.5. Listado de actualizaciones disponibles
6.9.6. Listado de paquetes recientes
6.9.7. Listado de paquetes foráneos
6.10. Habilitar repositorio al momento
6.11. Listar dependencias
6.12. Consulta al cache
6.13. Mostrar duplicados
6.14. Bloqueo existente
6.15. Grupos de software YUM
6.15.1. Listar grupos disponibles
6.15.2. Información de paquetes de grupo
6.15.3. Instalación y remoción de grupos
6.16. Registros e históricos YUM
6.16.1. La historia contada por las transacciones
6.16.2. ¿Undo?¡Redo!
6.16.3. Histórico corrupto
6.16.4. Identificación del responsable con sudo
6.16.5. Verificación de la base de datos rpm
6.17. yum shell
6.17.1. Comandos específicos yum shell
7. Extensiones yum
7.1. Instalación y configuración general de las extensiones
7.2. yum-plugin-aliases
7.2.1. Configuración
7.2.2. Ejemplos de uso
7.3. yum-plugin-auto-update-debug-info
7.3.1. Configuración
7.3.2. Ejemplos de uso
7.4. yum-plugin-changelog
7.4.1. Configuración
7.4.2. Ejemplos de uso
7.5. yum-plugin-downloadonly
7.5.1. Configuración
7.5.2. Ejemplos de uso
7.5.3. ¿Qué pasa si el paquete tiene dependencias?
7.5.4. ¿Qué pasa si el paquete ya está instalado?
7.6. yum-plugin-fastestmirror
7.6.1. Configuración
7.6.2. Ejemplos de uso
7.7. yum-plugin-filter-data
7.7.1. Configuración
7.7.2. Documentación
7.7.3. Ejemplos de uso
7.8. yum-plugin-fs-snapshot
7.8.1. Configuración
7.8.2. Documentación
7.9. yum-plugin-keys
7.9.1. Configuración
7.9.2. Ejemplos de uso
7.10. yum-plugin-list-data
7.10.1. Documentación
7.10.2. Configuración
7.10.3. Ejemplos de uso
7.11. yum-plugin-local
7.11.1. Configuración
7.11.2. Ejemplos de uso
7.12. yum-plugin-merge-conf
7.12.1. Configuración
7.12.2. Ejemplos de uso
7.13. yum-plugin-post-transaction-actions
7.13.1. Configuración
7.13.2. Ejemplos de uso
7.14. yum-plugin-priorities
7.14.1. Configuración
7.14.2. Ejemplos de uso
7.15. yum-plugin-protectbase
7.15.1. Configuración
7.15.2. Ejemplos de uso
7.16. yum-plugin-refresh-updatesd
7.16.1. Configuración
7.17. yum-plugin-remove-with-leaves
7.17.1. Configuración
7.17.2. Ejemplos de uso
7.18. yum-plugin-rpm-warm-cache
7.18.1. Configuración
7.19. yum-plugin-security
7.19.1. Configuración
7.19.2. Ejemplos de uso
7.20. yum-plugin-show-leaves
7.20.1. Configuración
7.20.2. Ejemlos de uso
7.21. yum-plugin-tmprepo
7.21.1. Configuración
7.21.2. Ejemplo de uso
7.22. yum-plugin-tsflags
7.22.1. Configuración
7.22.2. Ejemplos de uso
7.23. yum-plugin-upgrade-helper
7.23.1. Configuración
7.24. yum-plugin-verify
7.24.1. Configuración
7.24.2. Documentación
7.24.3. Ejemplos de uso
7.25. yum-plugin-versionlock
7.25.1. Configuración
7.25.2. Ejemplos de uso
7.26. yum-presto
7.26.1. Configuración
7.26.2. Ejemplos de uso
7.27. PackageKit-yum-plugin
7.27.1. Configuración
7.28. yum-langpacks
7.28.1. Configuración
7.29. Uso del comando yum y las extensiones
7.29.1. Desactivar las extensiones
7.29.2. Ejemplos de uso
8. Utilidades YUM
8.1. Autocompletado Bash
8.2. yum-updateonboot
8.2.1. Configuración
8.3. yumdownloader
8.4. package-cleanup
8.4.1. Ejemplos de uso
8.5. yum-complete-transaction
8.6. yum-builddep
8.7. yum-NetworkManager-dispatcher
8.8. yum-cron
8.8.1. Arranque y parada
8.8.2. Configuración
8.8.3. needs-restarting
8.8.4. find-repos-of-install
8.8.5. show-installed
9. Gestión avanzada de repositorios YUM
9.1. Creación de repositorios con createrepo
9.2. Consultar repositorios con repoquery
9.3. Gestión de grupos con yum-groups-manager
9.4. Creando espejos YUM con reposync
9.5. Repositorios explorables web con repoview
9.6. Dependencias no resueltas con repoclosure
9.7. Seguimiento de paquetes con repotrack
10. PackageKit CLI
10.1. pkcon
10.1.1. Documentación
10.1.2. Búsquedas
10.1.3. Instalar,actualizar y remover paquetes
10.1.4. Información sobre paquetes
10.1.5. Actualización general
10.1.6. Actualizaciones disponibles
10.1.7. Grupos
10.1.8. Repositorios
10.1.9. Descarga de paquetes
10.1.10. Uso de filtros
10.1.11. Transacciones
10.2. gpk-install-local-file
10.3. gpk-install-catalog
10.4. pkmon
10.5. PackageKit-command-not-found
11. Elementos de la gestión rpm
11.1. ¿Por qué evitar RPM?
11.2. Documentación en el paquete
11.3. Archivos de configuración del paquete
11.4. Propiedad de un archivo
11.5. Respaldo y reconstrucción de la base de datos
11.6. Importando llaves
11.7. Listar llaves instaladas
11.8. Listar dependencias de un paquete instalado
12. Técnicas para administradores de sistemas
12.1. Configuración remota
12.2. Soporte syslog
A. Historial de revisiones
13. Agradecimientos
13.1. Personales
13.2. Traducción
13.3. Revisores
Índice

Prefacio

1. Convenciones del Documento

Este manual utiliza varias convenciones para resaltar algunas palabras y frases y llamar la atención sobre ciertas partes específicas de información.
En ediciones PDF y de papel, este manual utiliza tipos de letra procedentes de Liberation Fonts. Liberation Fonts también se utilizan en ediciones de HTML si están instalados en su sistema. Si no, se muestran tipografías alternativas pero equivalentes. Nota: Red Hat Enterprise Linux 5 y siguientes incluyen Liberation Fonts predeterminadas.

1.1. Convenciones Tipográficas

Se utilizan cuatro convenciones tipográficas para llamar la atención sobre palabras o frases específicas. Dichas convenciones y las circunstancias en que se aplican son las siguientes:
Negrita monoespaciado
Utilizada para resaltar la entrada del sistema, incluyendo comandos de shell, nombres de archivo y rutas. También se utiliza para resaltar teclas claves y combinaciones de teclas. Por ejemplo:
Para ver el contenido del archivo my_next_bestselling_novel en su directorio actual de trabajo, escriba el comando cat my_next_bestselling_novel en el intérprete de comandos de shell y pulse Enter para ejecutar el comando.
El ejemplo anterior incluye un nombre de archivo, un comando de shell y una tecla clave. Todo se presenta en negrita-monoespaciado y distinguible gracias al contexto.
Las combinaciones de teclas se pueden distinguir de las teclas claves mediante el guión que conecta cada parte de una combinación de tecla. Por ejemplo:
Pulse Enter para ejecutar el comando.
Pulse Control+Alt+F2 para cambiar a la primera terminal virtual. Pulse Control+Alt+F1 para volver a su sesión de Ventanas-X.
La primera oración resalta la tecla clave determinada que se debe pulsar. La segunda resalta dos conjuntos de tres teclas claves que deben ser presionadas simultáneamente.
Si se discute el código fuente, los nombres de las clase, los métodos, las funciones, los nombres de variables y valores de retorno mencionados dentro de un párrafo serán presentados en Negrita-monoespaciado. Por ejemplo:
Las clases de archivo relacionadas incluyen filename para sistema de archivos, file para archivos y dir para directorios. Cada clase tiene su propio conjunto asociado de permisos.
Negrita proporcional
Esta denota palabras o frases encontradas en un sistema, incluyendo nombres de aplicación, texto de cuadro de diálogo, botones etiquetados, etiquetas de cajilla de verificación y botón de radio; títulos de menú y títulos del sub-menú. Por ejemplo:
Seleccionar SistemaPreferenciasRatón desde la barra del menú principal para lanzar Preferencias de Ratón. En la pestaña de Botones, haga clic en la cajilla ratón de mano izquierda y luego haga clic en Cerrar para cambiar el botón principal del ratón de la izquierda a la derecha (adecuando el ratón para la mano izquierda).
Para insertar un caracter especial en un archivo de gedit, seleccione desde la barra del menú principal AplicacionesAccessoriesMapa de caracteres. Luego, desde la barra de menúes de mapa de caracteres elija BúsquedaHallar…, teclee el nombre del caracter en el campo Búsqueda y haga clic en Siguiente. El caracter buscado se resaltará en la Tabla de caracteres. Haga doble clic en este caracter resaltado para colocarlo en el campo de Texto para copiar y luego haga clic en el botón de Copiar. Ahora regrese a su documento y elija EditarPegar desde la barra de menú de gedit.
El texto anterior incluye nombres de aplicación; nombres y elementos del menú de todo el sistema; nombres de menú de aplicaciones específicas y botones y texto hallados dentro de una interfaz gráfica de usuario, todos presentados en negrita proporcional y distinguibles por contexto.
Itálicas-negrita monoespaciado o Itálicas-negrita proporcional
Ya sea negrita monoespaciado o negrita proporcional, la adición de itálicas indica texto reemplazable o variable. Las itálicas denotan texto que usted no escribe literalmente o texto mostrado que cambia dependiendo de la circunstancia. Por ejemplo:
Para conectar a una máquina remota utilizando ssh, teclee ssh nombredeusuario@dominio.nombre en un intérprete de comandos de shell. Si la máquina remota es example.com y su nombre de usuario en esa máquina es john, teclee ssh john@example.com.
El comando mount -o remount file-system remonta el sistema de archivo llamado. Por ejemplo, para volver a montar el sistema de archivo /home, el comando es mount -o remount /home.
Para ver la versión de un paquete actualmente instalado, utilice el comando rpm -q paquete. Éste entregará el resultado siguiente: paquete-versión-lanzamiento.
Observe las palabras en itálicas y negrita sobre — nombre de usuario, domain.name, sistema de archivo, paquete, versión y lanzamiento. Cada palabra es un marcador de posición, tanto para el texto que usted escriba al ejecutar un comando como para el texto mostrado por el sistema.
Aparte del uso estándar para presentar el título de un trabajo, las itálicas denotan el primer uso de un término nuevo e importante. Por ejemplo:
Publican es un sistema de publicación de DocBook.

1.2. Convenciones del documento

Los mensajes de salida de la terminal o fragmentos de código fuente se distinguen visualmente del texto circundante.
Los mensajes de salida enviados a una terminal se muestran en romano monoespaciado y se presentan así:
books        Desktop   documentation  drafts  mss    photos   stuff  svn
books_tests  Desktop1  downloads      images  notes  scripts  svgs
Los listados de código fuente también se muestran en romano monoespaciado, pero se presentan y resaltan de la siguiente manera:
package org.jboss.book.jca.ex1;

import javax.naming.InitialContext;

public class ExClient
{
   public static void main(String args[]) 
       throws Exception
   {
      InitialContext iniCtx = new InitialContext();
      Object         ref    = iniCtx.lookup("EchoBean");
      EchoHome       home   = (EchoHome) ref;
      Echo           echo   = home.create();

      System.out.println("Created Echo");

      System.out.println("Echo.echo('Hello') = " + echo.echo("Hello"));
   }
}

1.3. Notas y Advertencias

Finalmente, utilizamos tres estilos visuales para llamar la atención sobre la información que de otro modo se podría pasar por alto.

Nota

Una nota es una sugerencia, atajo o enfoque alternativo para una tarea determinada. Ignorar una nota no debería tener consecuencias negativas, pero podría perderse de algunos trucos que pueden facilitarle las cosas.

Importante

Los cuadros con el título de importante dan detalles de cosas que se pueden pasar por alto fácilmente: cambios de configuración únicamente aplicables a la sesión actual, o servicios que necesitan reiniciarse antes de que se aplique una actualización. Ignorar estos cuadros no ocasionará pérdida de datos, pero puede causar enfado y frustración.

Advertencia

Las advertencias no deben ignorarse. Ignorarlas muy probablemente ocasionará pérdida de datos.

2. ¡Necesitamos sus comentarios!

Si encuentra un error tipográfico en este manual o si sabe de alguna manera de mejorarlo, nos gustaría escuchar sus sugerencias. Por favor complete un reporte en Bugzilla: http://bugzilla.redhat.com/bugzilla/ usando el producto Fedora Documentation.
Cuando envíe un reporte de error no olvide mencionar el identificador del manual: software-management-guide
Si tiene una sugerencia para mejorar la documentación, intente ser tan específico como sea posible cuando describa su sugerencia. Si ha encontrado un error, por favor incluya el número de sección y parte del texto que rodea el error para que podamos encontrarlo más fácilmente.

Capítulo 1. Introducción

Este manual es el producto de la experiencia y evolución de las herramientas para la gestión del software en Fedora. Los contenidos aquí vertidos son específicos a Fedora pero muchos de ellos son fácilmente aplicables y transportables a otros sistemas GNU/Linux basados en RPM. Incluso algunos capítulos son independientes de la distribución como lo son los contenidos dedicados a PackageKit y sus herramientas.

1.1. Propósito

Este manual pretende consolidar toda la información relevante con respecto al tema de la gestión de software en Fedora, a todos los niveles, de novato a experto. Este manual debe servir para los más conocedores como referencia general en el tema, para los novatos debe servir como guía de aprendizaje y podrán usar los primeros capítulos para resolver sus necesidades más elementales.

1.2. Audiencia

  • Usuario de escritorio
  • Usuarios avanzados
  • Administrador de sistemas GNU/Linux Fedora
  • Desarrolladores y empaquetadores Fedora

1.3. Organización del manual

  1. Introducción general a conceptos de gestión general del software.
  2. Gestión general de software con herramientas gráficas de escritorio (GUI).
  3. El sistema YUM y su configuración.
  4. Ganando poder en la línea de comandos con yum (CLI).
Este manual esta organizado de tal forma que primero se presentan los conceptos fundamentales, luego las herramientas gráficas de escritorio, luego las herramientas de consola y técnicas más avanzadas en el tema de la gestión del software.
Este manual fué diseñado así para que el recién iniciado pueda ir escalando o limitarse a leer las primeras secciones de esta manual y obtener el suficiente nivel de información necesaria para un usuario de escritorio casero. Si usted necesita más que las herramientas gráficas de escritorio, puede continuar la lectura y profundizar en la configuración y uso del sistema YUM hasta convertirse en un maestro de la gestión del software en Fedora.
En la medida que se avanza en el texto, se avanza en el nivel de complejidad y dificultad, escalando de la gestión del software de un sistema casero, a una red gestionada de estaciones de trabajo y servidores Fedora.

Capítulo 2. Introducción a la gestión del software

Todo sistema informático necesita un mecanismo para instalar y remover el software que utilizará para realizar sus funciones. ¿Pero qué es instalar software? Instalar software es colocar los documentos fuentes binarios ejecutables o no de dicho software en los lugares adecuados en el sistema destino.
Los sitios adecuados para instalar software en Fedora están sujetos al esquema definido por el Linux Filesystem Hierarchy Standard (FHS).
Luego de definido dónde se debe instalar el software, entonces podemos escoger la forma para realizar dicha instalación:
  • Manualmente, copiando y pegando con herramientas como cp, mv, scp.
  • Usando alguna herramienta como make.
    • Típicamente utilizado en instalaciones desde fuentes.
    • ./configure ; make ; make install
  • Usando alguna herramienta general de distribución de software.
    • gem install rubygem
    • cpan> install DateTime
  • Usando alguna herramienta de control de versiones, svn, cvs , git , etc.
    • git clone ...
    • svn co ...
    • cvs co ...
  • Usando las herramientas propias de la distribución.
    • yum install ...
    • aptitude install ...
Este manual es acerca de la última opción y en particular Fedora aunque muchos de los conceptos, herramientas y técnicas de este manual se pueden aplicar a otros sistemas. A continuación se resaltan algunos problemas de usar los otros métodos.
  1. Diversidad de herramientas para la misma tarea, ¿gem o cpan?
  2. Difícil averiguar qué software se tiene instalado.
  3. Difícil realizar actualizaciones al software instalado.
  4. No escala en la medida que se instala mucho software.
  5. Díficil o imposible de saber quién instaló un software determinado.
  6. Tiende a ser desordenado y a ensuciar el sistema en general.
  7. Rutas alteradas y sin certeza de que se esté usando el programa deseado.
Hay algunas pocas ventajas de usar mecanismos manuales o herramientas de gestión de software independientes de la plataforma, a saber:
  1. Soporte para múltiples versiones.
  2. Acceso a últimas versiones disponibles aguas arriba.
  3. Acceso a software privativo sin sustituto libre.
En general no se recomienda usar herramientas no nativas Fedora para la gestión de software en la medida que el software que usted necesita esté disponible en el formato RPM, incluso si es software privativo. También esas supuestas ventajas son muy cuestionables y realmente se insiste que no se usen dichos métodos salvo excepción y que sepa lo que está haciendo.
En Fedora y al igual que otras distribuciones GNU/Linux hoy día, la gestión del software ocurre en tres niveles que introduciremos a continuación:
Tabla 2.1. Tres capas en la gestión del software
Capa Componente Comentario
1 RPM Bajo nivel, gestión básica de dependencias
2 YUM Gestión de dependencias automáticas y repositorios
3 PackageKit Gestión GUI y Multi-distro

2.1. RPM

El formato RPM es la forma de encapsular todo el software de una aplicación dada, o datos en general, para el sistema de gestión de software RPM existente en Fedora y otras distribuciones Linux y otros sistemas Unix. El sistema RPM es tanto el formato del archivo como un sistema de gestión de software de bajo nivel basado en registros en base de datos.
Así entonces, la aplicación escogida puede ser suministrada por los desarrolladores en formato RPM compatible Fedora. Igualmente puede ser suministrada por el propio Proyecto Fedora si dicho software ha sido previamente empaquetado correctamente y validado legalmente como para formar parte de la distribución. Una tercera opción es que esté disponible en repositorios externos que se han dado a la tarea de empaquetar dicha aplicación en el formato RPM.
RPM permite instalar, desinstalar y actualizar paquetes de software con comandos simples. RPM mantiene una base de datos de los paquetes instalados así que se pueden invocar comandos de consulta y verificación en el sistema.

2.2. Repositorios de software

La definición de repositorio de software es fundamental, se pueden definir como una colección de software ordenado, clasificado y disponible para su uso con herramientas compatibles que lo usen para descargar software y manipular dicho software. Dichos repositorios tienen datos a usar y metadatos que procesar para por ejemplo realizar búsquedas sin recorrer rutas completas de forma remota.
La idea de repositorio es crucial en la historia de las distribuciones de GNU/Linux, Fedora es una de ellas. Lo que algunos conocen como "la distribución" o simplemente Fedora, es el DVD o LiveCD, más hoy día esta percepción está equivocada. Fedora es una distribución basada en repositorios y no limitada a lo que se escoge para construir una selección y distribución en un medio físico o método particular de acceso. Fedora son todos aquellos paquetes de software disponibles en los repositorios oficiales. El DVD o LiveCD correspondiente a la versión en curso de Fedora no es más ni menos que una selección particular y puesta en formato para su uso.
Los repositorios de software son entonces base hoy día para la distribución como tal pero además es una herramienta para los administradores de sistemas para desplegar sus sistemas y redes de forma más ordenada, controlada y segura. Cada administrador de sistema puede construir repositorios de software para distribuir el software requerido a redes de estaciones de trabajo o servidores.
También se pueden usar a manera de cache o espejo de los repositorios oficiales y evitar así el uso excesivo de Internet para la actualización e instalación de software en redes de estaciones y servidores Fedora. Más adelante se hará una parada en la creación de repositorios de software.
Es importante destacar que los repositorios que utiliza Fedora son repositorios YUM y que pueden estar disponibles por los métodos de acceso http:// , ftp:// y file://

2.3. YUM

YUM:: Yellow dog Updater, Modified, software de línea de comandos (CLI) para actualizar, instalar y desinstalar paquetes en sistemas basados en RPM de forma automática.
Si bien rpm es el gestor base de bajo nivel para los paquetes, su cálculo de dependencias es muy básico y puede fácilmente conducir a la situación conocida como "la pesadilla de las dependencias". Esta es la tarea fundamental que resuelve el sistema YUM, de ahí que aprender a usar yum evitará muchos malos ratos y que siempre y cuando se tenga acceso a un repositorio YUM, se podrá sonreír e instalar, desinstalar y actualizar cualquiera de los paquetes de software en nuestro sistema basado en RPM sin complicaciones debido a las dependencias.
La ventaja fundamental es el cálculo de las dependencias y en consecuencia su inclusión automática para poder instalar el paquete de software deseado, sin embargo no está limitado a ello y desde su diseño inicial a nuestros días, ha ganado una gran cantidad de extensiones que le permiten casi remplazar por completo a la herramienta rpm en la línea de comandos.
Luego existen programas gráficos GUIs como gpk-application y gpk-update-viewer que son frontales de YUM para gestionar el software de nuestro sistema basado en RPM, como por ejemplo Fedora, Red Hat o Centos. Estas aplicaciones son parte de la suite denominada PackageKit.
También existe Yumex que es una herramienta GUI más avanzada que ofrece más poder de control sobre YUM desde el entorno X.
En cualquiera de los casos, la gestión del software es una operación sensible para el sistema y en consecuencia se requiere de privilegios suficientes para poder llevar a cabo dichas operaciones, típicamente debe ser root.
yum es la herramienta de consola principal del sistema YUM. En muchos casos es suficiente utilizar las herramientas GUI de alto nivel, en otros casos puede ser insuficiente o simplemente imposible de usar, por ejemplo un servidor sin entorno GUI (X), por ello aprender a usar la herramienta yum tiene doble beneficio, mayor poder y mayor alcance. Para hacer justicia hay que mencionar que PackageKit también incluye herramientas tipo consola en cuyo caso la discusión es si usar dichas herramientas multidistro versus las herramientas nativa como yum. La documentación para dicho cliente en consola es escasa y aún no le recomendamos su uso y se prefieren las herramientas nativas, en nuestro caso, yum.

2.4. PackageKit

PackageKit es un sistema diseñado para instalar y actualizar software en su computador fácilmente. El objetivo es unificar todas las herramientas gráficas (GUIs) utilizadas en las diferentes distribuciones GNU/Linux.
PackageKit es un sistema de gestión del software para múltiples plataformas utilizando las herramientas nativas de cada una de ellas y que no pretende sustituirlas pero si crear una nueva capa de abstracción en esta tarea de la gestión del software entre distintos tipos de sistemas y así facilitar esa tarea para los usuarios y administradores.
De acuerdo a su descripción PackageKit es una capa de abstracción D-Bus que permite a la sesión de usuario gestionar los paquetes de forma segura utilizando una API multi-distro.
En este manual se describirá PackageKit desde la óptica de Fedora que es un sistema gestionado con yum para la instalación de software. Con PackageKit y sus aplicaciones gráficas podrá resolver las tareas básicas fundamentales de la gestión del software en su sistema Fedora.
En Fedora PackageKit es el sistema estandar para la gestión del software en entornos GUI por lo que la siguiente nota de instalación es en el caso excepcional de que no tenga instalado PackageKit.
$ su -c "yum install PackageKit gnome-packagekit"

Capítulo 3. Las interfases GUI de gnome-packagekit

Normalmente las interfases GUI gnome-packagekit se instalan por omisión en Fedora como escritorio, de todas formas, en el caso de que no sea así, para su instalación haga con privilegios de root:
$ su -c "yum install gnome-packagekit"

3.1. Añadir y quitar software con gpk-application

gpk-application es la interfase GUI hecha para GNOME y es el GUI estandar Fedora para gestión del software desde su versión 9 y luce como se muestra abajo. gpk-application se utiliza para instalar, remover y buscar paquetes de software en los sistemas Fedora y sus repositorios.
Pantallazo de gpk-application
Figura 3.1. gpk-application

En GNOME3, la mejor forma de invocar esta aplicación es buscándola y luego tal vez agregándola como favorita. Para buscar gpk-application presione la tecla Win, la combinación Alt-F1 o vaya al menú de actividades en la esquina izquierda superior de su escritorio. Tipee "aña" y obtendrá un resultado similar al pantallazo siguiente. En el pantallazo también se muestra el menú contextual que se obtiene de presionar clic derecho sobre el icono para agregar como aplicación favorita.
Pantallazo de GNOME3 buscando por "aña", de añadir.
Figura 3.2. Buscando gpk-application en GNOME3

3.1.1. Estado de la aplicación

Antes de comenzar a detallar las operaciones que se pueden realizar con gpk-application, es importante notar el estado del sistema en cuanto a la gestión del software se refiere, es decir, el sistema debe por ejemplo hacer consultas a los repositorios externos para lograr un listado actualizado de aplicaciones disponibles, entonces, debemos esperar que dicha acción se culmine con éxito o que falle, no se desespere haciendo clic aquí y allá, sólo generará nuevas transacciones que se irán apilando. Abajo un pantallazo resaltando en un cruadro azul el reporte del estado de la aplicación.
Pantallazo de gpk-application estado de la aplicación
Figura 3.3. gpk-application estado de la aplicación

3.1.2. Listados

En la ventana principal de la aplicación se pueden observar tres paneles, el primero resaltado en rojo es para seleccionar el listado de paquetes deseado, el segundo, en azul, es para mostrar el listado de paquetes incluyendo el estado de cada paquete, si está tildado ya está instalado, el tercer panel enmarcado resaltado en verde, se utiliza para mostrar detalles del paquete seleccionado en el segundo panel.
Pantallazo de gpk-application listados
Figura 3.4. gpk-application listados

3.1.2.1. Colecciones de paquetes

Este listado muestra colecciones de paquetes, es decir, cada entrada en el listado representa muchos paquetes relacionados entre sí de cierta forma particular. Si se instala una colección, se instalan todos los paquetes base de esa colección.
Pantallazo de gpk-application colecciones de paquetes
Figura 3.5. gpk-application colecciones de paquetes

3.1.2.2. Paquetes nuevos

Este listado muestra los paquetes más recientes agregados a los repositorios de software.
Pantallazo de gpk-application paquetes nuevos
Figura 3.6. gpk-application paquetes nuevos

3.1.2.3. Colecciones populares

Sigue en la lista de selección de paquetes, despúes de Colecciones de paquetes, Paquetes Nuevos y Paquetes Selecionados, se encuentra una variedad selecta de colecciones específicas de software populares. Si se selecciona alguna de dichas colecciones se pueden visualizar todos los paquetes que se incluyen en esa colección en particular.
Abajo el ejemplo después de seleccionar el listado de paquetes que conforman la selección Escritorio GNOME.
Pantallazo de gpk-application colecciones populares
Figura 3.7. gpk-application colecciones populares

3.1.3. Instalación de paquetes

En todos los listados de gpk-application se reporta el estado del paquete o colección de paquetes, tildado equivale a instalado o por instalar, si no está tildado no está instalado o está agendado para desintalar, observe el cambio del icono y la activación de los botones Limpiar y Aplicar .
Pantallazo de gpk-application marcado para instalar
Figura 3.8. gpk-application marcado para instalar

Este procedimiento lo puede repetir para seleccionar múltiples paquetes a instalar en una sola transacción.
Pantallazo de gpk-application marcados para instalar
Figura 3.9. gpk-application marcados para instalar

Es posible revisar los Paquetes seleccionados haciendo clic en la entrada del mismo nombre en la lista de Colecciones de paquetes.
Pantallazo de gpk-application paquetes seleccionados
Figura 3.10. gpk-application paquetes seleccionados

Al finalizar su selección de paquetes y colecciones a instalar presione el botón Aplicar para proceder con las transacciones agendadas, en este caso, instalar software nuevo. El sistema calculará las dependencias y las notificará de ser necesario para aprobación e instalación.
gpk-application notificando dependencias que son necesarias instalar
Figura 3.11. gpk-application notificación dependencias al instalar

gpk-application notificado dependencias que son necesarias actualizar
Figura 3.12. gpk-application notificación dependencias al instalar

Si presiona el botón Limpiar, gpk-application olvidará todas las selecciones agendadas. En Paquetes seleccionados es posible corregir la selección individualmente. Es importante notar que gpk-application no permite agendar la remoción de paquetes de software si ha comenzado por agregar para instalar.
Si se acepta la instalación de las dependencias y se presiona el botón Instalar, continuará el progreso de las transacciones agendadas. Ya que gestionar el software del sistema es una operación privilegiada, debe suministrar las credenciales del superusuario root antes de que el proceso pueda proseguir.
Pantallazo de gpk-application autenticación root
Figura 3.13. gpk-application autenticación root

Si no tiene dicha autorización, hable con el administrador de su sistema. Luego de autorizado gpk-application llevará a cabo las transacciones programadas que se resumen con la descarga e instalación de los paquetes.
Pantallazo de gpk-application descargando
Figura 3.14. gpk-application descargando

Pantallazo de gpk-application instalando
Figura 3.15. gpk-application instalando

3.1.4. Desinstalación de paquetes

De forma análoga a la instalación, la desinstalación de paquetes con gpk-application es un proceso de listar, remover las tildes para agendar la desinstalación y aplicar, abajo los pantallazos correspondientes.
Pantallazo de gpk-application marcado para desinstalar
Figura 3.16. gpk-application marcado para desinstalar

Luego la correspondiente notificación de los dependientes a desinstalar.
Pantallazo de gpk-application notificación dependencias al desinstalar
Figura 3.17. gpk-application notificación dependencias al desinstalar

Por brevedad no se muestra nuevamente la pantalla para autorización y sólo se muestra el progreso de las acciones.
Pantallazo de gpk-application probando desinstalación
Figura 3.18. gpk-application probando desinstalación

Pantallazo de gpk-application desinstalando
Figura 3.19. gpk-application desinstalando

3.1.5. Filtros para listados

Para limitar la cantidad de entradas en los listados existe la posibilidad de aplicar filtros y así facilitar en primera instancia el alcance de la exploración de paquetes.
El primer filtro es para limitar el listado a los paquetes instalados o disponibles.
Pantallazo de gpk-application filtro instalado
Figura 3.20. gpk-application filtro instalado

El segundo filtro es para limitar el listado a los paquetes de usuario final o de desarrollo.
Pantallazo de gpk-application filtro desarrollo
Figura 3.21. gpk-application filtro desarrollo.

El tercer filtro es para limitar el listado a los paquetes que son de entorno gráfico o texto. Tenga en cuenta que PackageKit utiliza heurística para determinar si un paquete es una aplicación «gráfica», y puede equivocarse si un paquete tiene dependencias tales como gtk2+.
Pantallazo de gpk-application filtro gráfico
Figura 3.22. gpk-application filtro gráfico.

El cuarto filtro es para limitar el listado de acuerdo a si se considera software libre o no, se considera software libre según lo que aparece en http://fedoraproject.org/wiki/Licensing.
Pantallazo de gpk-application filtro libre
Figura 3.23. gpk-application filtro libre.

Hay tres opciones más para filtrar:
Ocultar subpaquetes
De esta forma no se listan los paquetes "hijos", sólo los "padres".
Solamente paquetes nuevos
Se listan los paquetes disponibilizados recientemente en los repositorios.
Solamente paquetes nativos
Sólo se listarán los paquetes que coincidan con la arquitectura del sistema.

3.2. Alerta, actualizaciones disponibles

Cuando existan actualizaciones disponibles, aparecerá una notificación como la que se muestra en el pantallazo a continuación. En ella podrá invocar directamente gpk-update-viewer y proceder con la instalación o no de dichas actualizaciones.
Notificación de nuevas actualizaciones disponibles
Figura 3.24. GNOME3 alerta actualizaciones disponibles

3.3. Actualizando con gpk-update-viewer

gpk-update-viewer permite listar las actualizaciones disponibes y actualizar el sistema. Usualmente gpk-update-viewer es invocado desde la alerta de notificación de nuevas actualizaciones.
Pantallazo de gpk-update-viewer
Figura 3.25. gpk-update-viewer

Si desea invocar manualmente puede buscar por "actualización" o mirando en las aplicaciones Herramientas del Sistema.
Actualización de Software
Figura 3.26. GNOME3 Aplicaciones - Herramientas del Sistema

3.4. Ajuste de preferencias con gpk-prefs

gpk-prefs permite establecer las preferencias del sistema con respecto a las actualizaciones de software y los repositorios de software habilitados. Su ventana principal se divide en dos pestañas.
La primera es para las preferencias de las actualizaciones.
Pantallazo de gpk-prefs
Figura 3.27. gpk-prefs Actualizar configuración

La segunda pestaña permite configurar los repositorios que se utilizarán como fuentes de software.
Pantallazo de gpk-prefs
Figura 3.28. gpk-prefs Repositorios de software

A esta segunda pestaña de gpk-prefs tambén se le puede acceder directamente desde gpk-application en su menú sistema.
Pantallazo de gpk-application menú sistema repositorios de software
Figura 3.29. gpk-application menú sistema repositorios de software

Si desea localizar gpk-prefs para su invocación manual desde GNOME3 o para agregarlo como aplicación favorita, busque por su nombre "gpk-prefs" y debería obtener un resultado similar al pantallazo siguiente.
Pantallazo GNOME3 buscando gpk-prefs
Figura 3.30. Localizando gpk-prefs en GNOME3

3.5. Visualización de los registros con gpk-log

gpk-log es una aplicación para visualizar los registros de actividad relativos a la gestión del software, abajo un pantallazo.
Pantallazo de gpk-log
Figura 3.31. gpk-log.

Desde gpk-application se puede invocar gráficamente esta aplicación. Por supuesto puede invocar gpk-log desde el shell o cualquier otra forma de ejecución de comando. Para el momento de redacción esta aplicación no aparece listada como aplicación de escritorio.
Pantallazo de gpk-application menú sistema registro de software
Figura 3.32. gpk-application menú sistema registro de software

Capítulo 4. Apper, interfase GUI KDE PackageKit

apper es la aplicación que incluye el gestor gráfico (GUI) de PackageKit para el entorno de escritorio KDE. Instalado por omisión en el grupo "KDE Compilación de Software" que representa la instalación del entorno de escritorio y un gran conjunto de aplicaciones KDE. En el caso de que no tenga este soporte en su entorno KDE, para su instalación haga con privilegios de root:
$ su -c "yum install apper"

4.1. Arranque de Apper

Por supuesto hay varias maneras de lanzar la aplicación apper, una es navegando el menú Lanzador de Aplicaciones+Aplicaciones+AdministraciónGestión de software
Entrada de menú Apper
Figura 4.1. Entrada de menú Apper

Otra forma más rápida es buscar por el mismo meńu el patrón apper o gestión.
Búsqueda de apper en el menú
Figura 4.2. Búsqueda de apper en el menú

Una tercera forma es acceder a apper desde "Preferencias del Sistema" de KDE, bajo la agrupación "Adminitración del sistema, la entrada se identifica como "Gestion de software".
apper en preferencias del sistema
Figura 4.3. apper en preferencias del sistema

Luego de localizado la entrada de menú de apper puede hacerle clic para invocarlo.
Pantallazo inicial de apper
Figura 4.4. Pantallazo inicial de apper

4.1.1. Búsqueda simple e instalar

Para poder entonces instalar un paquete de software adicional debemos localizarlo primero de entre los repositorios de software disponibles, para ello vamos a hacer una búsqueda simple con el patrón fwsnort.
Búsqueda simple con apper
Figura 4.5. Búsqueda simple con apper

Moviendo el ratón sobre el área de acción del paquete aparece el botón Instalar, si se le hace clic, se agrega el paquete a la lista de cambios pendientes. Podemos entonces realizar más búsquedas simples para agregar más paquetes de la misma manera y finalmente presionar el botón Aplicar para ejecutar la transacción y efectuar los cambios pendientes, en este caso de instalación del software deseado.
Botón instalar en el área de acción en búsqueda con apper
Figura 4.6. Botón instalar en el área de acción en búsqueda con apper

4.1.2. Búsqueda simple y desinstalar

De forma similar al procedimiento de búsqueda simple e instalación previo, se puede entonces buscar paquetes de software ya instalados y entonces marcarlos para que sean desinstalados.
Búsqueda simple para desinstalar con apper
Figura 4.7. Búsqueda simple para desinstalar con apper

Sólo necesita presionar el botón Eliminar para agregar el paquete de software seleccionado en los cambios pendientes como una transacción de remoción de software instalado.

4.1.3. Cambios pendientes

Es posible agendar transacciones de instalación y remoción al mismo tiempo, sin embargo, deberá autenticarse dos veces, internamente ambas transacciones se manejan por separado de forma secuencial. Igualmente se le recuerda que tanto las operaciones de instalación y remoción de software son acciones privilegiadas y se le requerirá que tenga a la mano la contraseña del superusuario.
Cambios pendientes en apper
Figura 4.8. Cambios pendientes en apper

Una vez que se han seleccionado paquetes para instalar y/o remover, podemos hacer entonces clic en Aplicar para proceder con las acciones correspondientes, en ambos casos necesitando autenticar a apper con el sistema para la instalación y remoción de software del sistema.
apper necesita autenticarse para instalar
Figura 4.9. apper necesita autenticarse para instalar

apper necesita autenticarse para remover
Figura 4.10. apper necesita autenticarse para remover

4.2. Listas y Grupos

En la vistal principal se pueden identificar dos bloques de información clasificados como Listas y Grupos.
Pantallazo inicial de apper
Figura 4.11. Pantallazo inicial de apper

4.2.1. Listas

Las Listas que se incluyen son Actualizaciones y Software Instalado.
En ambas listas es posible agendar una acción, ya sea instalar, remover o actualizar el paquete de software correspondiente.
Para el caso particular de la listas de actualizaciones disponibles es posible seleccionar todas las actualizaciones con un solo clic.
Lista de actualizaciones disponibles en apper
Figura 4.12. Lista de actualizaciones disponibles en apper

Lista del software instalado en apper
Figura 4.13. Lista del software instalado en apper

4.2.2. Grupos

Los grupos de software son también listados de paquetes pero agrupados por cierto criterio específico. Abajo un pantallazo de los grupos disponibles.
Cada icono representa una lista de paquetes de software a partir de la cual se puede seleccionar para instalar o remover software.
Grupos de software en apper
Figura 4.14. Grupos de software en apper

Si por ejemplo seleccionamos Xfce, obtendremos un listado similar a lo que se muestra en el pantallazo siguiente.
Listado de software bajo categoría Entornos de escritorio Xfce en apper
Figura 4.15. Listado de software bajo categoría Entornos de escritorio Xfce en apper

4.3. Filtros de búsquedas

Para limitar los listados de paquetes que genera apper, es posible aplicar filtros de búsquedas. Los filtros disponibles son:
  • Instalados
  • Desarrollo
  • Gráficos
  • Libres
  • Ocultar subpaquetes
  • Sólo los paquetes más nuevos
  • Sólo los paquetes nativos
Filtros de búsquedas en apper
Figura 4.16. Filtros de búsquedas en apper

4.4. Actualizando software con Apper

Ya previamente se ha mostrado como apper puede listar y aplicar actualizaciones para el software instalado en el sistema por medio de la lista Actualizaciones en la vista principal. A partir de allí se puede seleccionar individualmente los paquetes a actualizar o todos.
Adicionalmente apper provee un icono de alerta de actualizaciones, si hace clic sobre dicho icono, usted será llevado a la pantalla del listado de actualizaciones disponibles pero con la única diferencia de que todas las actualizaciones están preseleccionadas.
Icono de alerta de apper para las actualizaciones de software
Figura 4.17. Icono de alerta de apper para las actualizaciones de software

Lista de actualizaciones disponibles en apper
Figura 4.18. Lista de actualizaciones disponibles en apper

El menú emergente del icono de alerta de apper le permite buscar e instalar actualizaciones al hacer clic en el menú Revisar actualizaciones y lanzar la configuración de preferencias de apper al hacer clic en el menú Configurar.
También puede decidir Ocultar las notificaciones en el escritorio. El icono de alerta volverá a aparecer si están configuradas las alertas en las preferencias y justo después de que se verifiquen si hay nuevas actualizaciones disponibles.
Menú emergente del icono de apper
Figura 4.19. Menú emergente del icono de apper

4.5. Historial

En el historial podemos visualizar las transacciones de la gestión de software tanto de instalaciones, remociones y actualizaciones en nuestro sistema.
Lista de transacciones apper
Figura 4.20. Historial de transacciones apper

4.6. Preferencias

En el área de las preferencias de apper puede ajustar una serie de parámetros para su operación. Tiene dos pestañas, Ajustes generales y Origenes del software, abajo un los pantallazos correspondientes.
Ajustes generales de apper
Figura 4.21. Ajustes generales de apper

Las opciones son bastante autoexplicativas por lo que no nos detendremos a detallarlas a cada una.
Origenes del software
Figura 4.22. Origenes del software

En particular en esta última sección podrá habilitar y deshabilitar los repositorios de software que desee con un solo clic.

Capítulo 5. Configuración de YUM

En esta sección del manual se revisará la configuración del sistema YUM para poder comprender su funcionamiento como un todo.
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/.
Para comprender las configuraciones analizaremos estos archivos de configuración una vez que Fedora esté instalado. Para configuraciones más avanzadas puede siempre consultar las páginas en línea de manual man yum y man yum.conf.

5.1. Configuración general

Para comenzar, invoque su editor de texto favorito y abra el archivo de configuración general de yum, /etc/yum.conf, obtendrá un contenido similar a lo que se muestra abajo.
/etc/yum.conf
[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=2

#  This is the default, if you make this bigger yum won't see if the metadata
# is newer on the remote and so you'll "gain" the bandwidth of not having to
# download the new metadata and "pay" for it by yum not having correct
# information.
#  It is esp. important, to have correct metadata, for distributions like
# Fedora which don't keep old packages around. If you don't like this checking
# interupting your command line usage, it's much better to have something
# manually check the metadata once an hour (yum-updatesd will do this).
# metadata_expire=90m

# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
El primer aspecto notable del archivo de configuración de yum es su estructura de bloques de secciones identificados por corchetes como [sección]. Esta estructura se repite al momento de configurar los repositorios. En este caso yum.conf en la sección [main] define el comportamiento general del sistema YUM y establece las directivas base, por ejemplo, de dónde se encuentran el cache. Se comentan abajo cada una de las directivas mencionadas.
cachedir
Directorio donde YUM debe almacenar su cache y archivos db. El valor por omisión es /var/cache/yum.
keepcache
Ya sea ‘1’ o ‘0’. Determina si YUM debe o no mantener el cache de los encabezados y paquetes después de una instalación exitosa. Valor por omisión es ’1’ (mantener los archivos).
debuglevel
Nivel de mensajes de depuración en la salida. El rango práctico es de 0-10. El valor por omisión es ‘2’. .
logfile
Ruta completa al nombre de archivo donde YUM debe escribir sus actividades.
exactarch
Ya sea ‘1’ o ‘0’. Puesto a ‘1’ provoca que por ejemplo yum update solo actualice los paquete de arquitectura que haya instalado, es decir, con esta opción habilitada el comando yum no instalará un paquete i686 para actualizar un paquete i386. Por omisión el valor es ‘1’..
obsoletes
Esta opción sólo tiene efecto durante una actualización. Habilita la lógica de procesamiento de obsolescencias YUM. Es útil cuando se realizan actualizaciones de nivel de distribución (upgrade). Vea también la documentación del comando yum upgrade para más detalles. Opción en la línea de comando: --obsoletes.
gpgcheck
Ya sea ‘1’ o ‘0’. Esto le indica a YUM si debe o no realizar una verficación de firma GPG en los paquetes. Cuando está habilitado en la sección [main], establece el comportamiento por omisión para todos los repositorios. Esta opción también determina si una instalación de un archivo local RPM será verificado por su firma GPG o no. El valor por omisión es ‘0’.
plugins
Ya sea ‘0’ o ‘1’. Conmutador global para habilitar o deshabilitar las extensiones (plugins) de YUM. Por omisión su valor es ‘0’ (extensiones deshabilitadas). Vea la sección PLUGINS del manual yum(8) para más información acerca de la instalación de extensiones YUM.
metadata_expire
Duración en segundos después del cual los metadatos caducarán. Así entonces si los metadatos actuales descargados son menos segundos de antiguo, entonces yum no actualizará dichos metadatos a partir del repositorio. Si encuentra que yum no está descargando la información para actualizaciones tan frecuente como usted quisiera, disminuya el valor de este parámetro. También puede cambiar del formato por omisión en segundos a días, horas o minutos agregando d,h o m respectivamente al valor especificado. El valor por omisión es 1.5 hours (horas), para complementar yum-updatesd ejecutándose una vez por hora. También es posible usar la palabra never implicando que los metadatos nunca expirarán.
Debido a la naturaleza de cierto software, en particular el kernel, se requiere que se puedan tener instalados más de una versión a la vez por diferentes razones, los siguientes parámetros son de relevancia en esos casos.
installonlypkgs
Lista de paquetes que deben ser instalados siempre, nunca actualizados. Los kernel en particular caen en esta categoría. Por omisión el valor es kernel, kernel-smp, kernel-bigmem, kernel-enterprise, kernel-debug, kernel-unsupported.
installonly_limit
Cantidad de paquetes listados en installonlypkgs que se deben mantener instalados al mismo tiempo. Poner este valor a 0 deshabilita la funcionalidad. Por omisión el valor es ’2’.
Estas son sólo algunas directivas de configuración del sistema YUM, para más, man yum.conf. Dentro de yum.conf puede incluir la configuración de los repositorios pero esa forma de configuración está en desuso y se prefiere utilizar archivos individuales en /etc/yum.repos.d/ que serán detallados más adelante en este manual.

5.2. Variables yum

Existe una cantidad de variables yum disponibles que pueden ser usadas en los archivos de configuración del sistema YUM. Su uso está disponible en varias opciones de configuración como name, baseurl y en el uso de los comandos.
$releasever
Será remplazado con el valor de la versión del paquete especificado por distroverpkg. Por omisión es la versión del paquete redhat-release. En Fedora es fedora-release.
$arch
Se sustituye con la arquitectura de su sistema y de acuerdo a os.uname() en Python.
$basearch
Es remplazada por la arquitectura base en yum. Por ejemplo, si su $arch is i686 , $basearch será i386.
$uuid
Será remplazada con un uuid único y persistente para esta máquina. El valor generado será almacenado en /var/lib/yum/uuid y reusado hasta que este archivo sea eliminado.
$YUM0-$YUM9
Estas variables serán remplazadas con el valor de la variable shell del mismo nombre. Si la variable de entorno shell no existe, entonces la variable en el archivo de configuración no será remplazada.
A partir de yum version 3.2.28 cualquier archivo en /etc/yum/vars se convierte en una variable con el nombre igual al nombre del archivo y sobrescribe cualquiera de las variables previamente descritas arriba.
Asegúrese que los archivos en /etc/yum/vars sean legibles ya que no habrá alertas o errores de no ser así. De los archivos sólo será leída la primera línea he ignorados los caracteres nueva línea. Note que no hay chequeo de existencia de caracteres extraños.

5.3. Manejo del cache

Por omisión las versiones actuales de yum eliminan los archivos de datos y los paquetes que han descargado justo después de que han sido utilizados exitosamente en una operación yum dada. Esto minimiza la cantidad de espacio de almacenamiento requerido para operar, sin embargo usted puede habilitar el sistema cache para que yum retenga los archivos que ha descargado. Las ventajas de hacer cache se pueden resumir en:
  1. Mejora en el desempeño.
  2. Puede realizar operaciones sin conexión de red.
  3. Puede copiar paquetes del cache y reusarlos a voluntad.
Por omisión yum almacena los archivos temporales en /var/cache/yum/ con un subdirectorio por repositorio configurado. El directorio packages/ dentro de cada subdirectorio mantiene los paquetes puestos en el cache. Por ejemplo, /var/cache/yum/x86_64/13/fedora/packages mantiene los paquetes descargados del repositorio fedora.
Para habilitar el uso del cache use la directiva keepcache en /etc/yum.conf.
/etc/yum.conf
[main]
cachedir=/var/cache/yum
keepcache=1
gpgcheck=1
plugins=1
...
Para limpiar el cache debe utilizar el comando yum clean con alguna de sus opciones:
yum clean expire-cache
Elimina los datos locales si es necesario para cada repositorio. Esto significa que yum revalidará el cache para cada repo, si el cache es válido nada será eliminado.
yum clean packages
Elimina los paquetes del cache.
yum clean headers
Elimina los archivos de encabezados del cache.
yum clean metadata
Elimina todos los archivos que yum utiliza para determinar la disponibilidad de paquetes. Usar este comando forzará a yum a descargar la próxima vez que se ejecute todos los metadatos necesarios.
yum clean dbcache
Elimina el cache sqlite utilizado para acelerar el acceso a los metadatos. Usar este comando forzará la descarga de los metadatos yum la próxima vez que éste se ejecute.
yum clean rpmdb
Elimina el cache de los datos provenientes de rpmdb local.
yum clean plugins
Le indica a las extensiones habilitadas que eliminen sus datos de cache.
yum clean all
Ejecuta todos los comandos anteriores.

5.4. Configuración con prioridad

Siguiendo con la configuración yum, se demostrará cómo configurar Fedora para que yum use los repositorios en cierto orden con prioridad sin descartar la lista de espejos externos. Sin más vea la configuración necesaria.
[fedora]
name=Fedora $releasever - $basearch
failovermethod=priority
baseurl=http://mirepo.org/$releasever/$basearch/os/
        http://otrorepo.org/$releasever/$basearch/os/
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch
enabled=1
metadata_expire=7d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
Primero note el uso de múltiples URL en baseurl. Debe hacerse como se ha 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 se logra el objetivo deseado, buscar primero en los repositorios locales, luego si fallan, en el orden especificado, se busca en los URL de la lista de espejos.

5.5. Control de ancho de banda

En redes gestionadas de estaciones o servidores existe la necesidad de controlar el uso del ancho de banda disponible para el uso de cada sistema YUM, también es útil para usuarios que desean mantener al sistema YUM bajo control en particular cuando están haciendo alguna otra cosa que requiere ancho de banda.
La solución es simple, configurar yum para que se controle en el uso del ancho de banda, abajo se muestra un ejemplo de yum.conf con los parámetros relevantes. throttle puede ser un valor absoluto o un valor porcentual, en ese último caso, bandwidth especifica el 100% del ancho de banda disponible en bytes/seg.
Si desea deshabilitar el control, ponga throttle=0.
# Ajustes para control de ancho de banda
# 70% de 512kbps ~ 358Kbps tope
throttle=70%
bandwidth=64000

5.6. Configuración con proxy

En redes gestionadas donde existe un proxy HTTP que regula qué estaciones y servidores pueden tener acceso a las redes externas o internas con por ejemplo el protocolo HTTP, yum debe ser configurado adecuadamente para que pueda utilizar los recursos del proxy para poder acceder a los repositorios de software necesarios.
En yum.conf puede utilizar las siguientes tres directivas:
proxy
URL del servidor proxy que debe usar yum.
proxy_username
Nombre de usuario a utilizar con el servidor proxy.
proxy_password
Contraseña para este servidor proxy..
Recuerde que YUM puede utilizar repositorios disponibles vía HTTP y FTP por lo que no necesariamente se trata de un servidor proxy HTTP.
Estractos relevantes con configuración ejemplo en /etc/yum.conf:
    proxy=http://proxy.dominio.com:puerto
    proxy_username=dragon
    proxy_password=secreto

5.7. Política multiarquitectura

En el caso de que el sistema soporte paquetes multiarquitectura, por ejemplo x86_64, es posible instalar una o ambas versiones de un paquete dado. Para definir qué hacer en general se debe definir el parámetro de configuración multilib_policy.
multilib_policy all|best
all significa que yum instalará todas las posibles arquitecturas de cualquier paquete que desee instalar. Entonces yum install foo instalará foo.i386 y foo.x86_64 en sistemas x86_64, si están disponibles. best significa instalar solamente la mejor arquitectura para esta plataforma.
Estractos relevantes con configuración ejemplo en /etc/yum.conf:
    multilib_policy best

5.8. Gestión de los repositorios yum

Cuando se instala un sistema Fedora, los archivos que declaran los repositorios base se encuentran ya instalados y los repositorios base habilitados y disponibles, de hecho Anaconda durante el proceso de instalación le puede haber dado la oportunidad de habilitar algunos otros repositorios. En esta sección se revisarán las formas de agregar nuevos repositorios y las formas de ajustar sus configuraciones de forma particular para que se ajusten a las necesidades del administrador.

5.8.1. Agregar nuevos repositorios

Se usan dos métodos para agregar nuevos repositorios, el más conveniente para el administrador de sistemas, es el suministro de los archivos que configuran el repositorio por medio de un archivo instalable rpm o por medio del suministro del archivo de configuración de texto simple .repo provisto por los propietarios del repositorio en cuestión.
Ejemplo con archivo rpm que configura el repositorio deseado:
$ su -
<contraseña>
# rpm -vhi http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
Ejemplo con archivo de texto simple .repo:
$ su -
<contraseña>
# cd /etc/yum.repos.d/
# wget http://repos.fedorapeople.org/repos/mmcgrath/nagios/fedora-nagios.repo
....
Saving to: “fedora-nagios.repo”

100%[======================================>] 220         --.-K/s   in 0s      

2010-07-30 18:30:14 (24.9 MB/s) - “fedora-nagios.repo” saved [220/220]
Ciertamente siempre es posible lanzar su editor de texto favorito y comenzar una configuración manual.

5.8.2. Configuración manual de un repositorio

A continuación se revisará a nivel de ejemplo la configuración manual de un archivo .repo en particular para ver sus detalles y poder tomar control de cada uno de ellos.
/etc/yum.repos.d/fedora.repo
[fedora]
name=Fedora $releasever - $basearch
failovermethod=priority
baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch
enabled=1
metadata_expire=7d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch

[fedora-debuginfo]
name=Fedora $releasever - $basearch - Debug
failovermethod=priority
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/debug/
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-debug-$releasever&arch=$basearch
enabled=0
metadata_expire=7d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch

[fedora-source]
name=Fedora $releasever - Source
failovermethod=priority
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/source/SRPMS/
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-source-$releasever&arch=$basearch
enabled=0
metadata_expire=7d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
Como es común en muchos archivos de configuración Linux, las líneas que comienzan con # son comentarios y no son interpretados por yum.
Cada sección [nombre] define un repositorio yum, luego dentro de cada definición de repositorio puede sobrescribirse el comportamiento general de yum con directivas de alcance global para el manejo en particular de este repositorio o agregarse nuevas directivas específicas de alcance repositorio.
[fedora]  << identificador de repositorio
name=Fedora $releasever - $basearch
baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/
#mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
El identificador de repositorio debe ser único.
name
Una cadena (nombre) de caracteres que describe el repositorio para el humano.
baseurl
Debe ser un URL que apunta al directorio donde residen el directorio yum ‘repodata’. Puede ser un URL tipo http://, ftp:// o file://. Se pueden especificar múltiples URLs en una declaración, la mejor forma de hacerlo es así:
[repositoryid]
name=Algún nombre para este repositorio
baseurl=url://server1/ruta/al/repositorio/
        url://server2/ruta/al/repositorio/
        url://server3/ruta/al/repositorio/
Puede utilizar autenticación básica HTTP prefijando "usuario:contraseña@" al nombre del servidor en la línea baseurl, por ejemplo baseurl=http://usuario@passwd@example.com/.
mirrorlist
Especifica un URL que apunta a un archivo que contiene un lista de baseurls. Puede utilizar esta declaración en vez de baseurl.
enabled
Puede ser ‘1’ o ‘0’. Esto le indica a yum de si usar o no este repositorio.
gpgcheck
Puede ser ‘1’ o ‘0’. Esto le indica a yum si debe o no realizar una verificación de firma GPG en los paquetes obtenidos desde este repositorio.
gpgkey
Un URL que apunta a un archivo que contiene la llave ASCII GPG para el repositorio. Esta opción se utiliza si yum necesita una llave pública para verificar los paquetes y la llave requerida no ha sido importada en la base de datos RPM. Si se coloca esta opción yum automáticamente importará la llave especificada por el URL. yum le preguntará antes por su confirmación para instalar la llave a menos que haya especificado assumeyes. Igualmente se pueden listar mútliples URLs en la misma forma que se hizo para baseurl.
failovermethod
Puede ser ‘roundrobin’ o ‘priority’. ‘roundrobin’ selecciona aleatoriamente un URL de la lista de URLs para comenzar y proceder luego con otro seleccionado de igual forma si falla el contacto con el servidor seleccionado. ‘priority’ empieza en orden por el primer baseurl listado y los utiliza secuencialmente en caso de falla al intentar contactar al servidor. Si no se especifica, el valor por omisión es ‘priority’.

5.8.3. Remover repositorios

Para remover el repositorio xxx debe remover su configuración de los archivos .repo en /etc/yum.repos.d/*.repo. Ahora bien, cada archivo .repo puede y usualmente tiene definido más de un repositorio yum en él, pero también es usual que todos ellos estén relacionados entre sí de forma "binarios", "fuentes" y "debug-info", es decir, el .repo incluye la configuración de tres repositorios yum ligados entre sí. Si es así simplemente elimine el archivo .repo, ejemplo rpmfusion-fusion-free.repo, si no, tenga la precaución de sólo borrar las secciones adecuadas en los archivos correspondientes para eliminar los repositorios que desea, use el editor de texto de su preferencia.
/etc/yum.repos.d/rpmfusion-free.repo
[rpmfusion-free]
name=RPM Fusion for Fedora $releasever - Free
baseurl=http://download1.rpmfusion.org/free/fedora/releases/$releasever/Everything/$basearch/os/
#mirrorlist=http://mirrors.rpmfusion.org/mirrorlist?repo=free-fedora-$releasever&arch=$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora

[rpmfusion-free-debuginfo]
name=RPM Fusion for Fedora $releasever - Free - Debug
#baseurl=http://download1.rpmfusion.org/free/fedora/releases/$releasever/Everything/$basearch/debug/
mirrorlist=http://mirrors.rpmfusion.org/mirrorlist?repo=free-fedora-debug-$releasever&arch=$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora

[rpmfusion-free-source]
name=RPM Fusion for Fedora $releasever - Free - Source
#baseurl=http://download1.rpmfusion.org/free/fedora/releases/$releasever/Everything/source/SRPMS/
mirrorlist=http://mirrors.rpmfusion.org/mirrorlist?repo=free-fedora-source-$releasever&arch=$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora

5.8.4. Los repositorios Fedora

Los repositorios Fedora vienen incluidos en el paquete fedora-release. Actualmente los archivos .repo incluidos son:
/etc/yum.repos.d/fedora.repo
/etc/yum.repos.d/fedora-updates.repo
/etc/yum.repos.d/fedora-updates-testing.repo
fedora.repo declara los siguientes tres repositorios:
  • [fedora]
  • [fedora-debuginfo]
  • [fedora-source]
fedora-updates.repo declara los siguientes tres repositorios:
  • [updates]
  • [updates-debuginfo]
  • [updates-source]
fedora-updates-testing.repo declara los siguientes tres repositorios:
  • [updates-testing]
  • [updates-testing-debuginfo]
  • [updates-testing-source]
De estos nueve repositorios, por omisión están habilitados:
  • [fedora]
  • [updates]
El resto está deshabilitado y son utilizados por desarrolladores, programadores y probadores para mejorar los programas existentes en dichos repositorios.
En particular es interesante que usted habilite [updates-testing] si desea apoyar en la tarea de probar nuevos programas que están siendo publicados en Fedora. El repositorio [updates-testing] es un paso previo al repositorio [updates] donde ya se considera estable y se declara así para que los usuarios estén alertas de que pudieran tener problemas menores. Si usted posee una cuenta Fedora FAS, entonces podrá votar y otorgar un karma positivo o negativo de acuerdo a su experiencia con el nuevo programa bajo pruebas en bodhi.
Para los desarrolladores Fedora existe un paquete adicional que agrega otro archivo .repo con repositorios Fedora, /etc/yum.repos.d/fedora-rawhide.repo, el conocido como rawhide.
$ su -c "yum install fedora-release-rawhide"
Instale fedora-release-rawhide solamente si sabe lo que está haciendo, nunca deje este repositorio habilitado por omisión si es novato, en este repositorio es donde ocurre el desarrollo Fedora y las versiones que allí se encuentran no se garantizan ni siquiera que funcionen. Por omisión todos los repositorios rawhide están deshabilitados cuando instala el paquete fedora-release-rawhide.
fedora-rawhide.repo declara los siguientes tres repositorios:
  • [rawhide]
  • [rawhide-debuginfo]
  • [rawhide-source]

5.8.5. Repositorios de terceros y personales

En la historia de Fedora han existido muchos repositorios yum externos provistos por terceros para suplir aquellos paquetes que no estaban por una u otra razón en Fedora. En muchos casos estos repositorios han sido de ayuda, en muchos otros no y han producido mucha confusión en el usuario regular.
La calidad de dichos repositorios no está garantizada ni probada ni avalada de ninguna manera por el Proyecto Fedora. Si usted decide usar alguno de estos repositorios de terceros o personales, usted está de su cuenta.
En general Proyecto Fedora desalienta el uso de dichos repositorios de terceros en la medida de lo posible. Además, mantener esta política de uso de la menor cantidad de repositorios necesaria, le incrementará la posibilidad de no sufrir problemas al momento de actualizar su sistema de una versión Fedora a otra.
En cuanto a la disponibilidad o no de cierto software en los repositorios Fedora, en general lo que se anima es a contribuir directamente con el Proyecto Fedora si se cumplen los lineamientos correspondientes.
Cuando Proyecto Fedora desarrolla una nueva versión, no toma en cuenta los repositorios externos de terceros o personales y sólo ofrece soporte para los paquetes provistos oficialmente en sus repositorios oficiales.
En resumen, pueden existir repositorios de terceros con excelente calidad y compatibilidad con Fedora, y otros que no y que sólo le crearán problemas. Use con cuidado, a su riesgo y con habilitación de dicho repositorio al momento y para asuntos puntuales.
$ su -c "yum install --enablerepo=drivers nvidia-driver"

5.8.6. Lista de espejos y metalink

Las opciones de configuración mirrorlist y metalink están relacionadas entre sí en yum Fedora y esta sección ofrecerá una revisión de sus respectivos funcionamientos por separado así como su relación.
La configuración del repositorio fedora de caja contiene la siguiente directiva mirrorlist:
...
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&
arch=$basearch
...
Utilizando el remplazo de variables correspondiente, $releasever=f13 y $basearch=x86_64, por ejemplo, y utilizando un explorador web para descargar, se puede obtener el siguiente documento xml.
<?xml version="1.0" encoding="utf-8"?>
<metalink version="3.0" xmlns="http://www.metalinker.org/" type="dynamic" pubdate="Sat, 21 Aug 2010 14:10:47 GMT" generator="mirrormanager" xmlns:mm0="http://fedorahosted.org/mirrormanager">
  <files>
    <file name="repomd.xml">
      <mm0:timestamp>1274247846</mm0:timestamp>
      <size>4400</size>
      <verification>
        <hash type="md5">fa0f764c57ba5b15be4e188efe9d8494</hash>
        <hash type="sha1">c83b44fb1ccf030b7b81ae9bf34572d714ab4e1a</hash>
        <hash type="sha256">7b00cc2cf43ff34baedcc16c389a015f2aad5e35f725708b5afef56bdb1e13f6</hash>
        <hash type="sha512">2d1f5bcde26213d9ead4b5847501f9315d9391b73eabdd56dd1b45e6307ccd46b4d218c2bcf750364449fba25f0f0bb6305b61716c134bfdcabd0db4e4ba1c45</hash>
      </verification>
      <resources maxconnections="1">
        <url protocol="http" type="http" location="BR" preference="100" >http://fedora.c3sl.ufpr.br/linux/releases/13/Everything/x86_64/os/repodata/repomd.xml</url>
        <url protocol="ftp" type="ftp" location="BR" preference="100" >ftp://fedora.c3sl.ufpr.br/fedora-enchilada/linux/releases/13/Everything/x86_64/os/repodata/repomd.xml</url>
        <url protocol="rsync" type="rsync" location="BR" preference="100" >rsync://fedora.c3sl.ufpr.br/fedora/linux/releases/13/Everything/x86_64/os/repodata/repomd.xml</url>
        <url protocol="http" type="http" location="BR" preference="99" >http://mirror.ispbrasil.com.br/fedora/releases/13/Everything/x86_64/os/repodata/repomd.xml</url>
        <url protocol="http" type="http" location="BR" preference="98" >http://fedora.pop.com.br/linux/releases/13/Everything/x86_64/os/repodata/repomd.xml</url>
        <url protocol="http" type="http" location="CR" preference="97" >http://mirrors.ucr.ac.cr/fedora/releases/13/Everything/x86_64/os/repodata/repomd.xml</url>
      </resources>
    </file>
  </files>
</metalink>
En este caso es visible que no se trata simplemente de una lista de baseurls. Las definiciones de ambas opciones de configuración se explicitan abajo.
mirrorlist
Especifica el URL a un archivo que contiene una lista de baseurls. Puede utilizar en sustitución o como complemento a la opción baseurl. Se pueden usar variables con esta opción.
metalink
Especifica un URL a un archivo metalink que dirige a un archivo repomd.xml, se genera una lista de espejos para el repositorio convirtiendo los espejos del archivo repomd.xml a baseurl. El archivo metalink también contiene la marca de tiempo de los datos en repomd.xml, la longitud y suma de verificación de repomd.xml. Los datos son verificados versus el archivo repomd.xml descargado y toda la información proveniente del archivo metalink debe hacer coincidencia. metalink puede ser utilizado como sustituto o complemento de baseurl. Se pueden usar variables con esta directiva. Esta opción deshabilita la opción mirrorlist.
Pero además en ambas secciones de la documentación se hace mención a un hack especial acerca de que el URL de mirrorlist contenga la palabra "metalink" y entonces el valor de mirrorlist es copiado a metalink (si metalink no está definido). Fedora por omisión usa este hack, esta es su relación.
En general la configuración de caja de Fedora debería siempre ofrecer la mejor familia de repositorios disponibles cercanos a la instalación del usuario, note que arriba toda la lista proviene de Brasil y el usuario es de Venezuela, y en Venezuela no hay ningún espejo Fedora. En mirrormanager de Fedora se utiliza información geográfica y de ahí este listado.
Sin embargo, por ejemplo, Brasil no está mejor conectado a Venezuela que Venezuela con EEUU. De ahí que los venezolanos prefieren usar los espejos en EEUU por razones de velocidad. Si se usa el plugin yum-fastest-mirror, esta extensión sólo usa la lista de baseurls calculados para escoger el repositorio, entonces, nunca se utilizará otros repositorios diferentes a los Brasileros, solución, hackear y reconfigurar mirrorlist y/o metalink.
Una opción es simplemente colocar una lista de repositorios especificando varios baseurl, pero cuáles son. ¿Hay forma de automatizar? Por supuesto también interesa que los repositorios estén sincronizados con los fuentes.
mirrorlist_expire
Especifica el tiempo en segundos después del cual la lista local de espejos en cache expira. Si la lista local es más antigua a esta tiempo, yum descargará una nueva lista.

5.8.7. Configuración para protección de paquetes

Esta funcionalidad fue recientemente agregada a yum a partir de una extensión denominada yum-plugin-protect-packages y evita que yum se desinstale él mismo así como evita que remueva otros paquetes protegidos. De caja yum es el único paquete protegido pero por extensión esto automáticamente protege todo aquello de lo que depende yum (rpm, python, glibc, etc.). Así entonces esta funcionalidad es muy buena incluso sin la necesidad de construir listas cuidadosas de paquetes importantes.
De forma estandar se bloquea la desinstalación de yum y sus dependencias pero si se desea agregar y proteger otros paquetes, se deben crear archivos /etc/yum/protected.d/*.conf y agregar un nombre de paquete por línea en cada uno de ellos.
Situación ejemplo, se desea proteger el paquete postgresql. Configure creando o editando un archivo .conf, por ejemplo rdbms.conf en el directorio adecuado.
$ vi /etc/yum/protected.d/rbdms.conf
  postgresql
:wq
Verifique probando que yum ahora no puede desinstalar por error el paquete configurado.
# yum remove postgresql 
Complementos cargados:aliases, changelog, fastestmirror, filter-data, keys, list-data, presto, refresh-packagekit, verify
Configurando el proceso de eliminación
Resolviendo dependencias
--> Ejecutando prueba de transacción
---> Paquete postgresql.i686 0:8.4.4-1.fc13 definido para ser eliminado
--> Procesando dependencias: postgresql = 8.4.4-1.fc13 para el paquete: postgresql-devel-8.4.4-1.fc13.i686
--> Procesando dependencias: postgresql = 8.4.4-1.fc13 para el paquete: postgresql-server-8.4.4-1.fc13.i686
--> Ejecutando prueba de transacción
---> Paquete postgresql-devel.i686 0:8.4.4-1.fc13 definido para ser eliminado
---> Paquete postgresql-server.i686 0:8.4.4-1.fc13 definido para ser eliminado
--> Resolución de dependencias finalizada
Error: Trying to remove "postgresql", which is protected
 Podría intentar utilizar el comando --skip-broken para sortear el problema
Podría intentar ejecutar: rpm- Va --nofiles --nodigest
El mensaje de error es bastante claro, no se ha podido desinstalar. Para poder desinstalar es necesario remover el nombre del paquete de rdbms.conf.

Capítulo 6. Uso del comando yum

6.1. Comandos yum y su sintaxis
6.2. Los nombres de paquetes
6.3. El comando help
6.4. Listado de repositorios
6.5. Instalación de nuevo software
6.5.1. Instalar desde los repositorios habilitados
6.5.2. Error de dedo, mire las sugerencias
6.5.3. Instalar un RPM
6.5.4. Reinstalando software
6.6. Actualizando el software
6.6.1. Actualizar un paquete
6.6.2. Actualizar con un RPM
6.6.3. Volver a versión anterior
6.6.4. Actualización general
6.6.5. Verificación y listado de actualizaciones
6.6.6. Exclusión al actualizar
6.6.7. Evitar paquetes problemáticos al actualizar
6.7. Removiendo software
6.8. Obtener información de un paquete
6.9. Búsquedas y listados de paquetes
6.9.1. Búsqueda por nombre, descripción y resumen
6.9.2. Búsqueda por funcionalidad o archivo
6.9.3. Listado de paquetes instalados
6.9.4. Listado de paquetes disponibles
6.9.5. Listado de actualizaciones disponibles
6.9.6. Listado de paquetes recientes
6.9.7. Listado de paquetes foráneos
6.10. Habilitar repositorio al momento
6.11. Listar dependencias
6.12. Consulta al cache
6.13. Mostrar duplicados
6.14. Bloqueo existente
6.15. Grupos de software YUM
6.15.1. Listar grupos disponibles
6.15.2. Información de paquetes de grupo
6.15.3. Instalación y remoción de grupos
6.16. Registros e históricos YUM
6.16.1. La historia contada por las transacciones
6.16.2. ¿Undo?¡Redo!
6.16.3. Histórico corrupto
6.16.4. Identificación del responsable con sudo
6.16.5. Verificación de la base de datos rpm
6.17. yum shell
6.17.1. Comandos específicos yum shell
Una vez configurado el sistema YUM, puede usar la herramienta en la línea de comandos (CLI) yum. Por supuesto Fedora incluye una configuración por omisión completamente funcional al momento de instalarse como punto de partida así que no necesita leer toda la sección acerca de su configuración para comenzar. Se demostrará con ejemplos y exposición de parámetros comunes útiles y necesarios en las tareas diarias del administrador de sistemas Fedora.

6.1. Comandos yum y su sintaxis

Si se revisa la página del manual, man yum, se encontrará la siguiente definición para el uso de yum:
yum [options] [command] [package ...]
De la sintaxis entonces se sabe que existen opciones y comandos yum, seguido de una lista de nombres de paquetes. Se mezclarán a continuación a lo largo del desarrollo de este manual diferentes comandos y opciones de yum pero es de suma importancia destacar su diferencia ya que no todas las opciones aplican a todos los comandos. La referencia primaria es la página del manual de yum (man yum). Una opción rápida para obtener ayuda es simplemente teclear el comando yum para que se muestre la ayuda en línea acerca de su uso, por ejemplo, abajo la salida del comando yum y de acuerdo a las extensiones instaladas en un sistema Fedora dado, se listan los comandos y opciones:
$ yum
Necesita ingresar algún comando
Usage: yum [options] COMMAND

List of Commands:

check          Verifica si hay problemas en la base de datos (rpmdb)
check-update   Verifica la existencia de actualizaciones de paquetes
clean          Elimina los datos del caché
deplist        Muestra las dependencias que necesita un paquete
distribution-synchronization Sincroniza los paquetes instalados a las últimas versiones disponibles
downgrade      desactualizar un paquete a una versión anterior
erase          Elimina uno o varios paquetes de su sistema
groups         Muestra, o usa, la información de grupos
help           Muestra un mensaje de ayuda del uso
history        Mostrar, o utilizar, el historial de la transacción
info           Muestra detalles acerca de un paquete o de un grupo de paquetes
install        Instala uno o varios paquetes en su sistema
list           Muestra un paquete o grupos de paquete
load-transaction carga una transacción guardada desde un archivo
makecache      Genera el caché de metadatos
provides       Localiza el paquete que ofrezca el valor indicado
reinstall      reinstalar un paquete
repolist       Muestra los repositorios de software configurados
search         Busca detalles en los paquetes para la cadena indicada
shell          Ejecuta una shell de Yum interactiva 
update         Actualiza uno o varios paquetes en su sistema
upgrade        Actualiza los paquetes tomando en cuenta los obsoletos
version        Muestra una versión para la máquina y/o los repositorios disponibles.


Options:
  -h, --help            muestra este mensaje de ayuda y cierra
  -t, --tolerant        sea tolerante con los errores
  -C, --cacheonly       se ejecuta completamente a partir del caché, pero no
                        lo actualiza
  -c [config file], --config=[config file]
                        configurar ubicación de archivo
  -R [minutes], --randomwait=[minutes]
                        tiempo máximo de espera del comando
  -d [debug level], --debuglevel=[debug level]
                        nivel de depuración de la salida
  --showduplicates      muestra duplicados en los repositorios, y en los
                        comandos para mostrar/buscar
  -e [error level], --errorlevel=[error level]
                        nivel de error de la salida
  --rpmverbosity=[debug level name]
                        nivel de depuración de salida para rpm
  -q, --quiet           operación discreta
  -v, --verbose         operación detallada
  -y, --assumeyes       responde "sí" a todas las preguntas
  --assumeno            responder no para todas las preguntas
  --version             muestra la versión de Yum y finaliza
  --installroot=[path]  define la raíz de instalación
  --enablerepo=[repo]   activa uno o más repositorios (los comodines son
                        permitidos)
  --disablerepo=[repo]  desactiva uno o más repositorios (los comodines son
                        permitidos)
  -x [package], --exclude=[package]
                        excluya paquete(s) de acuerdo a su nombre o glob
  --disableexcludes=[repo]
                        deshabilita la posibilidad de exclusión desde main,
                        para un repositorio o para todos
  --obsoletes           habilita el proceso de paquetes obsoletos durante las
                        actualizaciones
  --noplugins           deshabilita los complementos de Yum
  --nogpgcheck          deshabilita la verificación de firmas GPG
  --disableplugin=[plugin]
                        deshabilita complementos de acuerdo a su nombre
  --enableplugin=[plugin]
                        habilita complementos de acuerdo a su nombre
  --skip-broken         ignora paquetes con problemas de resolución de
                        dependencias
  --color=COLOR         controla la utilización de colores
  --releasever=RELEASEVER
                        define el valor de $releasever en los aarchivos de
                        configuración de yum y de los repositorios
  --setopt=SETOPTS      define una configuración arbitraria y opciones de los
                        repositorios

  Opciones de complementos:

Nota

Todas las salidas de los comandos yum en este manual pueden variar ligeramente dependiendo de la versión Fedora que tenga instalada así como de las extensiones yum que tenga habilitadas para el momento de la ejecución.

6.2. Los nombres de paquetes

Cuando se deba referir a un nombre de paquete para instalar, actualizar, remover, listar, obtener información, etc., puede especificar el nombre del paquete con alguno de los siguientes formatos:
  • nombre
  • nombre.arq
  • nombre-ver
  • nombre-ver-lib
  • nombre-ver-lib.arq
  • nombre-epoca:ver-lib.arq
  • epoca:nombre-ver-lib.arq
Por ejemplo:
# yum remove kernel-2.4.1-10.i686
Removerá esa versión específica de kernel y arquitectura.
# yum list available ’foo*’
Listará todos los paquetes disponibles que hagan coincidencia con el patrón 'foo*'. Las comillas simples evitarán la expansión shell.
Use el nombre corto en los comandos yum. Esto provoca que yum automáticamente seleccione el paquete más reciente en los repositorios que haga coincidencia para la arquitectura en su computadora.
Especifique el nombre con alguno de los otros formatos para invalidar el comportamiento por omisión de yum y forzarlo a usar el paquete que haga coincidencia con lo que especifique ya sea de versión o arquitectura. Tome esta decisión solamente cuando sepa que la selección por omisión tenga un bug o alguna otra falla que lo haga inutilizable en su sistema.

6.3. El comando help

yum incluye el comando help para ofrecer una ayuda mínima en línea y se usa agregando el comando del que se quiere obtener ayuda, algunos ejemplos a continuación:
# yum help install
install PAQUETE...

Instala uno o varios paquetes en su sistema

apodos: install-n, install-na, install-nevra
# yum help erase
erase PACKAGE...

Elimina uno o varios paquetes de su sistema

apodo: remove

6.4. Listado de repositorios

Siempre que se hace referencia en esta manual a repositorios habilitados, es importante poder identificarlos desde la línea de comandos sin tener que revisar manualmente los archivos .repo. El comando yum tiene el subcomando adecuado para la tarea con sus respectivas opciones, repolist.
# yum repolist enabled
id del repositorio                        nombre del repositorio          estado
fedora                                    fedora                          27.042
updates-released                          updates                              0
Igualmente se pueden listar los repositorios deshabilitados o simplemente todos los repositorios:
# yum repolist disabled
id del repositorio                         nombre del repositorio               
fedora-debug                               fedora-debug                         
updates-debug                              updates-debug                        
local                                      local                                
# yum repolist all
id del repositorio               nombre del repositorio       estado
fedora                           fedora                       habilitado: 27.042
fedora-debug                     fedora-debug                 deshabilitado
updates-debug                    updates-debug                deshabilitado
updates-released                 updates                      habilitado:      0
local                            local                        deshabilitado

6.5. Instalación de nuevo software

El comando yum install es lo que usted debe utilizar para instalar la última versión del paquete o grupo de paquetes designados y al mismo tiempo asegurar que todas las dependencias sean satisfechas en el proceso.
Se deben especificar los nombres de paquetes deseados, si el o los nombres no se consiguen, se asumen que dichos nombres son "shell glob" y cualquier correspondencia que se consiga en los repositorios será instalada.
Si el nombre no especifica ningún paquete, entonces se realiza una búsqueda.
Si el nombre de paquete comienza con un - entonces cualquier coincidencia de paquete sera removido del sistema.

6.5.1. Instalar desde los repositorios habilitados

$ su -c "yum install tmux"
<contraseña>
Resolviendo dependencias
--> Ejecutando prueba de transacción
---> Paquete tmux.x86_64 0:1.6-1.fc17 debe ser instalado
--> Procesando dependencias: libevent-2.0.so.5()(64bit) para el paquete: tmux-1.6-1.fc17.x86_64
--> Ejecutando prueba de transacción
---> Paquete libevent.x86_64 0:2.0.14-2.fc17 debe ser instalado
--> Resolución de dependencias finalizada

Dependencias resueltas

================================================================================
 Package           Arquitectura    Versión                Repositorio     Tamaño
================================================================================
Instalando:
 tmux              x86_64          1.6-1.fc17             fedora          206 k
Instalando para las dependencias:
 libevent          x86_64          2.0.14-2.fc17          fedora          160 k

Resumen de la transacción
================================================================================
Instalar  1 Paquete (+1 Paquete dependiente)

Tamaño total de la descarga: 366 k
Tamaño instalado: 1.1 M
Está de acuerdo [s/N]:Descargando paquetes:
--------------------------------------------------------------------------------
Total                                            42 kB/s | 366 kB     00:08     
Ejecutando verificación de transacción
Ejecutando prueba de transacción
La prueba de transacción ha sido exitosa
Ejecutando transacción
  Instalando    : libevent-2.0.14-2.fc17.x86_64                             1/2 
  Instalando    : tmux-1.6-1.fc17.x86_64                                    2/2 
  Comprobando   : libevent-2.0.14-2.fc17.x86_64                             1/2 
  Comprobando   : tmux-1.6-1.fc17.x86_64                                    2/2 

Instalado:
  tmux.x86_64 0:1.6-1.fc17                                                      

Dependencia(s) instalada(s):
  libevent.x86_64 0:2.0.14-2.fc17                                               

¡Listo!
En este ejemplo se desea instalar la aplicacion tmux pero se necesita una dependencia no instalada previamente en el sistema.
yum se ha dado cuenta de ello y ha incluido la dependencia necesaria para poder tener éxito en la tarea encomendada.

6.5.2. Error de dedo, mire las sugerencias

Es posible que al querer instalar un paquete de software no se sepa a ciencia cierta el nombre del paquete correspondiente en Fedora o se cometa un error de dedo en la especificación del nombre del paquete deseado, en estos casos yum incluye una búsqueda y sus resultados como sugerencias:
$ su -c "yum install zim"
<contraseña>
No existe disponible ningún paquete zim.
  * Tal vez quería decir: Zim
Error: Nada para hacer
Note la sugerencia de que tal vez lo que quiso decir era "Zim" en vez de "zim". Además note que la identificación de los nombres de paquetes es sensible al mayusculado.

6.5.3. Instalar un RPM

En el caso de que le suministren un archivo RPM puede utilizar el mismo comando yum install, que es equivalente al obsoleto comando yum localinstall, así:
$ su -c "yum localinstall psad-2.1.4-1.i386.rpm"
o
$ su -c "yum install psad-2.1.4-1.i386.rpm"
De esta forma si hay dependencias, yum las calculará e instalará. Una opción adicional frecuentemente necesaria es --nogpgcheck para los casos de que cree sus propios RPM y no firme los paquetes o no haya importado la firma gpg correspondiente al anillo de firmas autorizadas.
$ su -c "yum --nogpgcheck install psad-2.1.4-1.i386.rpm"

Exija paquetes firmados

Si el proveedor del paquete no lo firma, no es realmente recomendable que lo use a menos que tenga absoluta confianza del origen del paquete, exija a las casas de software que firmen sus paquetes por razones de seguridad e importe la firma correspondiente.
$ su -c "rpm --import /ruta/a_la/llave/GPG"
El comando yum localinstall se mantiene por herencia pero está en desuso, use la forma yum install.

6.5.4. Reinstalando software

El comando yum reinstall reinstalará exactamente la misma versión del paquete actualmente instalado sin considerar los paquetes de actualización. Esto no funciona con paquetes "installonly" como los kernels. yum reinstall opera sobre grupos de software también, archivos, provides y listas de archivos al igual que el comando yum install. Este comando es útil en casos en el que se haya corrompido la instalación del paquete, por ejemplo, se han perdido los manuales o los propios binarios han sido removidos por mal manejo.
# yum check-update litmus
litmus.x86_64                    0.13-5.fc17                     updates-testing
# yum list installed litmus
Paquetes instalados
litmus.x86_64                        0.13-4.fc17                         @fedora
# yum reinstall litmus
Resolviendo dependencias
--> Ejecutando prueba de transacción
---> Paquete litmus.x86_64 0:0.13-4.fc17 debe ser reinstalado
--> Resolución de dependencias finalizada

Dependencias resueltas

================================================================================
 Package          Arquitectura     Versión               Repositorio      Tamaño
================================================================================
Reinstalando:
 litmus           x86_64           0.13-4.fc17           fedora            53 k

Resumen de la transacción
================================================================================
Reinstalar  1 Paquete

Tamaño total de la descarga: 53 k
Tamaño instalado: 205 k
Está de acuerdo [s/N]:
Descargando paquetes:
Ejecutando prueba de transacción
La prueba de transacción ha sido exitosa
Ejecutando transacción
  Instalando    : litmus-0.13-4.fc17.x86_64                                 1/1 
  Comprobando   : litmus-0.13-4.fc17.x86_64                                 1/1 

Instalado:
  litmus.x86_64 0:0.13-4.fc17                                                   

¡Listo!
Note en este procedimiento que sigue existiendo una nueva versión y se ha reinstalado exactamente la misma versión previamente instalada, esta es la funcionalidad de yum reinstall.

6.6. Actualizando el software

En general yum update es el comando requerido para intentar actualizar un paquete o grupo de paquetes previamente instalado. El commando yum update verifica que el o los paquetes que se desean actualizar estén instalados, esto es una diferencia al comportamiento que muestra el comando rpm -U paquete.rpm.
$ su -c "yum update zzuf"
El (los) paquete(s) zzuf se encuentra(n) disponible(s), pero no se ha(n) instalado.
No se han seleccionando paquetes para ser actualizados

6.6.1. Actualizar un paquete

Esta opción como ya se ha adelantado es natural e intuitivo con yum, vea el siguiente ejemplo simple de uso especificando un paquete a actualizar.
$ su -c "yum update vim-common"
Resolviendo dependencias
--> Ejecutando prueba de transacción
---> Paquete vim-common.x86_64 2:7.3.444-1.fc17 debe ser actualizado
--> Procesando dependencias: vim-common = 2:7.3.444-1.fc17 para el paquete: 2:vim-enhanced-7.3.444-1.fc17.x86_64
---> Paquete vim-common.x86_64 2:7.3.515-1.fc17 debe ser una actualización
--> Ejecutando prueba de transacción
---> Paquete vim-enhanced.x86_64 2:7.3.444-1.fc17 debe ser actualizado
---> Paquete vim-enhanced.x86_64 2:7.3.515-1.fc17 debe ser una actualización
--> Resolución de dependencias finalizada

Dependencias resueltas

================================================================================
 Package           Arquitectura
                               Versión               Repositorio          Tamaño
================================================================================
Actualizando:
 vim-common        x86_64      2:7.3.515-1.fc17      updates-testing      5.4 M
Actualizando para las dependencias:
 vim-enhanced      x86_64      2:7.3.515-1.fc17      updates-testing      956 k

Resumen de la transacción
================================================================================
Actualizar  1 Paquete (+1 Paquete dependiente)

Tamaño total de la descarga: 6.3 M
Está de acuerdo [s/N]:Descargando paquetes:
--------------------------------------------------------------------------------
Total                                           113 kB/s | 6.3 MB     00:57     
Ejecutando verificación de transacción
Ejecutando prueba de transacción
La prueba de transacción ha sido exitosa
Ejecutando transacción
  Actualizando  : 2:vim-common-7.3.515-1.fc17.x86_64                        1/4 
  Actualizando  : 2:vim-enhanced-7.3.515-1.fc17.x86_64                      2/4 
  Limpieza      : 2:vim-enhanced-7.3.444-1.fc17.x86_64                      3/4 
  Limpieza      : 2:vim-common-7.3.444-1.fc17.x86_64                        4/4 
  Comprobando   : 2:vim-enhanced-7.3.515-1.fc17.x86_64                      1/4 
  Comprobando   : 2:vim-common-7.3.515-1.fc17.x86_64                        2/4 
  Comprobando   : 2:vim-common-7.3.444-1.fc17.x86_64                        3/4 
  Comprobando   : 2:vim-enhanced-7.3.444-1.fc17.x86_64                      4/4 

Actualizado:
  vim-common.x86_64 2:7.3.515-1.fc17                                            

Dependencia(s) actualizada(s):
  vim-enhanced.x86_64 2:7.3.515-1.fc17                                          

¡Listo!

6.6.2. Actualizar con un RPM

Este es un caso similar al de instalación desde un archivo rpm, en este caso se ha suministrado un archivo rpm para actualizar una versión previamente instalada.
$ su -c "yum update psad-2.1.4-1.i386.rpm"
La forma yum localupdate se mantiene por herencia pero está obsoleta, use yum update de ahora en adelante.

6.6.3. Volver a versión anterior

yum downgrade está disponible y permite volver a la versión justamente anterior previa del software especificado disponible en los repositorios.
# yum downgrade litmus
Resolviendo dependencias
--> Ejecutando prueba de transacción
---> Paquete litmus.x86_64 0:0.13-4.fc17 debe ser una desactualización
---> Paquete litmus.x86_64 0:0.13-5.fc17 debe ser eliminado
--> Resolución de dependencias finalizada

Dependencias resueltas

================================================================================
 Package          Arquitectura     Versión               Repositorio      Tamaño
================================================================================
Desactualizando:
 litmus           x86_64           0.13-4.fc17           fedora            53 k

Resumen de la transacción
================================================================================
Desactualizar  1 Paquete

Tamaño total: 53 k
Está de acuerdo [s/N]:Descargando paquetes:
Ejecutando verificación de transacción
Ejecutando prueba de transacción
La prueba de transacción ha sido exitosa
Ejecutando transacción
  Instalando    : litmus-0.13-4.fc17.x86_64                                 1/2 
  Limpieza      : litmus-0.13-5.fc17.x86_64                                 2/2 
  Comprobando   : litmus-0.13-4.fc17.x86_64                                 1/2 
  Comprobando   : litmus-0.13-5.fc17.x86_64                                 2/2 

Eliminado(s):
  litmus.x86_64 0:0.13-5.fc17                                                   

Instalado:
  litmus.x86_64 0:0.13-4.fc17                                                   

¡Listo!

Mejor con repo updates-testing o con extensión yum-plugin-local.

El repositorio [updates] sólo mantiene la última versión del paquete, entonces, para usar yum downgrade de forma confiable debe habilitar el repositorio [updates-testing] y entonces hacer yum update ... y luego si no resulta, se puede entonces revertir hacia la versión anterior en [updates] o en el mismo repo [fedora] con yum downgrade ....
Otra alternativa es mantener un repositorio local con todas las versiones previamente instaladas con por ejemplo la extensión yum-plugin-local.

6.6.4. Actualización general

Si lo que se desea es actualizar el sistema y todas sus aplicaciones instaladas, use el comando siguiente:
$ su -c "yum update"

6.6.5. Verificación y listado de actualizaciones

Este comando yum permite saber si el sistema tiene actualizaciones pendientes que pueden ser aplicadas.
$ su -c "yum check-update"
bash.x86_64                     4.2.28-1.fc17                    updates-testing
cpp.x86_64                      4.7.0-5.fc17                     updates-testing
gcc.x86_64                      4.7.0-5.fc17                     updates-testing
gcc-c++.x86_64                  4.7.0-5.fc17                     updates-testing
gdb.x86_64                      7.4.50.20120120-46.fc17          updates-testing
glibc.x86_64                    2.15-37.fc17                     updates-testing
glibc-common.x86_64             2.15-37.fc17                     updates-testing
glibc-devel.x86_64              2.15-37.fc17                     updates-testing
glibc-headers.x86_64            2.15-37.fc17                     updates-testing
gpgme.x86_64                    1.3.0-8.fc17                     updates-testing
kernel-headers.x86_64           3.3.4-5.fc17                     fedora         
krb5-libs.x86_64                1.10-6.fc17                      updates-testing
libevent.x86_64                 2.0.18-1.fc17                    updates-testing
libgcc.x86_64                   4.7.0-5.fc17                     updates-testing
libgomp.x86_64                  4.7.0-5.fc17                     updates-testing
libstdc++.x86_64                4.7.0-5.fc17                     updates-testing
libstdc++-devel.x86_64          4.7.0-5.fc17                     updates-testing
litmus.x86_64                   0.13-5.fc17                      updates-testing
openldap.x86_64                 2.4.31-1.fc17                    updates-testing
pam.x86_64                      1.1.5-6.fc17                     updates-testing
pcre.x86_64                     8.21-5.fc17                      updates-testing
rpm.x86_64                      4.9.1.3-7.fc17                   updates-testing
rpm-build.x86_64                4.9.1.3-7.fc17                   updates-testing
rpm-build-libs.x86_64           4.9.1.3-7.fc17                   updates-testing
rpm-libs.x86_64                 4.9.1.3-7.fc17                   updates-testing
rpm-python.x86_64               4.9.1.3-7.fc17                   updates-testing
vim-filesystem.x86_64           2:7.3.515-1.fc17                 updates-testing
Se puede preguntar por si hay actualizaciones de un paquete en específico.
$ su -c "yum check-update litmus"
litmus.x86_64                    0.13-5.fc17                     updates-testing

6.6.6. Exclusión al actualizar

De tanto en tanto se da el caso que es necesario excluir este o cual paquete durante el proceso de actualización, es posible que se desee mantener la versión actual, luego se mostrará otra técnica para esta situación particular. Use la opción --exclude, así:
$ su -c "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 o no puede esperar, o simplemente no desea o no puede usar la nueva versión.
Si desea excluir paquetes de yum de manera que éstos no puedan ser actualizados de forma permanente, se debe modificar yum.conf agregando la directiva exclude. Puede usar una lista de nombres de paquetes separados por coma.
[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
metadata_expire=1800
installonly_limit=2
exclude=pidgin, amsn, emesene, paquete
Además, puede excluir paquetes de repositorios específicos, agregando el exclude en el archivo .repo correspondiente, localizado en /etc/yum.repos.d/nombre_del_repo.repo

6.6.7. Evitar paquetes problemáticos al actualizar

En ciertas situaciones se pueden obtener problemas de dependencias que eviten procesar una actualización de software, si desea hacer una actualización evitando dichos paquetes y sus dependencias, use la opción --skip-broken. Con ello no resolverá los problemas de dependencias, pero al menos tendrá el sistema lo más actualizado posible hasta que se logre conseguir la solución.
$ su -c "yum udpate --skip-broken"
...
  tracker                 x86_64          0.12.3-2.fc16   updates-testing 1.2 M
  verne-backgrounds-kde   noarch         15.92.1-1.fc16       fedora      7.2 k
  verne-kde-theme         noarch         15.91.0-1.fc16       fedora      1.6 M
  wine-alsa               x86_64          1.3.29-1.fc16   updates-testing 118 k
  yajl                    i686            1.0.12-1.fc16       fedora       30 k
     
Ignorando (problemas de dependencias):
  gmyth                   x86_64          0.7.1-16.fc16       fedora       76 k
  grub2                   x86_64          1:1.99-6.fc16       fedora      1.2 M
  libmatroska             x86_64          1.2.0-1.fc16        fedora      133 k
  libupnp                 x86_64          1.6.13-2.fc16       fedora       87 k

Resumen de la transacción
==============================================================================
   Instalar     87 Packages
   Upgrade    1245 Packages
				  Tamaño total: 1.6 G
				  Está de acuerdo [s/N]:

6.7. Removiendo software

Para la desinstalación de software las cosas son igual de simples, use el comando yum remove.
$ su -c "yum remove libmodman"
Resolviendo dependencias
--> Ejecutando prueba de transacción
---> Paquete libmodman.x86_64 0:2.0.1-4.fc17 debe ser eliminado
--> Procesando dependencias: libmodman.so.1()(64bit) para el paquete: libproxy-0.4.7-4.fc17.x86_64
--> Ejecutando prueba de transacción
---> Paquete libproxy.x86_64 0:0.4.7-4.fc17 debe ser eliminado
--> Resolución de dependencias finalizada

Dependencias resueltas

================================================================================
 Package           Arquitectura   Versión                 Repositorio     Tamaño
================================================================================
Eliminando:
 libmodman         x86_64         2.0.1-4.fc17            @fedora          56 k
Eliminando para las dependencias:
 libproxy          x86_64         0.4.7-4.fc17            @fedora         158 k

Resumen de la transacción
================================================================================
Eliminar  1 Paquete (+1 Paquete dependiente)

Tamaño instalado: 215 k
Está de acuerdo [s/N]:Descargando paquetes:
Ejecutando verificación de transacción
Ejecutando prueba de transacción
La prueba de transacción ha sido exitosa
Ejecutando transacción
  Eliminando    : libproxy-0.4.7-4.fc17.x86_64                              1/2 
  Eliminando    : libmodman-2.0.1-4.fc17.x86_64                             2/2 
  Comprobando   : libproxy-0.4.7-4.fc17.x86_64                              1/2 
  Comprobando   : libmodman-2.0.1-4.fc17.x86_64                             2/2 

Eliminado(s):
  libmodman.x86_64 0:2.0.1-4.fc17                                               

Dependencia(s) eliminada(s):
  libproxy.x86_64 0:0.4.7-4.fc17                                                

¡Listo!
También se puede utilizar la forma:
# su -c "yum erase libmodman"

6.8. Obtener información de un paquete

Es posible consultar los detalles de un paquete en particular con el comando yum info.
$ yum info squid
Paquetes disponibles
Nombre        : squid
Arquitectura        : x86_64
Período       : 7
Versión     : 3.2.0.16
Lanzamiento     : 1.fc17
Tamaño        : 2.3 M
Repositorio        : fedora
Resumen     : The Squid proxy caching server
URL         : http://www.squid-cache.org
Licencia     : GPLv2+ and (LGPLv2+ and MIT and BSD and Public Domain)
Descripción :Squid is a high-performance proxy caching server for Web clients,
           : supporting FTP, gopher, and HTTP data objects. Unlike traditional
           : caching software, Squid handles all requests in a single,
           : non-blocking, I/O-driven process. Squid keeps meta data and
           : especially hot objects cached in RAM, caches DNS lookups, supports
           : non-blocking DNS lookups, and implements negative caching of failed
           : requests.
           : 
           : Squid consists of a main server program squid, a Domain Name System
           : lookup program (dnsserver), a program for retrieving FTP data
           : (ftpget), and some management and client tools.

Si existe más de un paquete que hace coincidencia con el nombre de paquete o glob, puede entonces que el comando yum info muestre la información de cada uno de ellos. En el ejemplo a continuación hay una nueva versión de rpm disponible en los repositorios aún no instalada, yum info lista ambos paquetes y su respectiva información.
$ yum info rpm
Paquetes instalados
Nombre        : rpm
Arquitectura        : x86_64
Versión     : 4.9.1.3
Lanzamiento     : 6.fc17
Tamaño        : 2.0 M
Repositorio        : installed
Desde el repositorio   : fedora
Resumen     : The RPM package management system
URL         : http://www.rpm.org/
Licencia     : GPLv2+
Descripción :The RPM Package Manager (RPM) is a powerful command line driven
           : package management system capable of installing, uninstalling,
           : verifying, querying, and updating software packages. Each software
           : package consists of an archive of files along with information
           : about the package like its version, a description, etc.

Paquetes disponibles
Nombre        : rpm
Arquitectura        : x86_64
Versión     : 4.9.1.3
Lanzamiento     : 7.fc17
Tamaño        : 993 k
Repositorio        : updates-testing
Resumen     : The RPM package management system
URL         : http://www.rpm.org/
Licencia     : GPLv2+
Descripción :The RPM Package Manager (RPM) is a powerful command line driven
           : package management system capable of installing, uninstalling,
           : verifying, querying, and updating software packages. Each software
           : package consists of an archive of files along with information
           : about the package like its version, a description, etc.

6.9. Búsquedas y listados de paquetes

En esta sección se revisarán métodos de búsquedas y listados de paquetes con yum.

6.9.1. Búsqueda por nombre, descripción y resumen

El comando yum search ofrece el listado de resultados de los paquetes producto de la búsqueda por coincidencia de cadena de caracteres en la descripción, resumen y nombre del paquete rpm. Veamos su uso con un ejemplo:
$ yum search imap
==================== Nombre/Resumen que coinciden con: imap ====================
asterisk-voicemail-imap.x86_64 : Store voicemail on an IMAP server
cyrus-imapd.x86_64 : A high-performance mail server with IMAP, POP3, NNTP and
                   : SIEVE support
cyrus-imapd-devel.i686 : Cyrus IMAP server development files
cyrus-imapd-devel.x86_64 : Cyrus IMAP server development files
cyrus-imapd-utils.x86_64 : Cyrus IMAP server administration utilities
imap-upload.noarch : A tool for uploading a local mbox file to IMAP4 server
imapfilter.x86_64 : A flexible client side mail filtering utility for IMAP
                  : servers
imapsync.noarch : Tool to migrate email between IMAP servers
offlineimap.noarch : Powerful IMAP/Maildir synchronization and reader support
perl-Mail-IMAPClient.noarch : An IMAP Client API
perl-Net-IMAP-Simple.noarch : Simple IMAP account handling
perl-Net-IMAP-Simple-SSL.noarch : Simple IMAP account handling with SSL
php-imap.x86_64 : A module for PHP applications that use IMAP
up-imapproxy.x86_64 : University of Pittsburgh IMAP Proxy
uw-imap.x86_64 : UW Server daemons for IMAP and POP network mail protocols
uw-imap-devel.i686 : Development tools for programs which will use the UW IMAP
                   : library
uw-imap-devel.x86_64 : Development tools for programs which will use the UW IMAP
                     : library
uw-imap-static.x86_64 : UW IMAP static library
uw-imap-utils.x86_64 : UW IMAP Utilities to make managing your email simpler
dovecot.i686 : Secure imap and pop3 server
dovecot.x86_64 : Secure imap and pop3 server
getmail.noarch : POP3, IMAP4 and SDPS mail retriever with Maildir delivery
imp.noarch : The Internet Messaging Program: webmail access to IMAP/POP3
           : accounts
isync.x86_64 : Tool to synchronize IMAP4 and Maildir mailboxes
python-twisted-mail.x86_64 : SMTP, IMAP and POP protocol implementation together
                           : with clients and servers
roundcubemail.noarch : Round Cube Webmail is a browser-based multilingual IMAP
                     : client
zarafa-gateway.x86_64 : POP3/IMAP Gateway for the Zarafa Collaboration Platform

  Nombre y resumen que coinciden con  y sólo , use "buscar todo" para todo.

6.9.2. Búsqueda por funcionalidad o archivo

El comando yum provides o su alias yum whatprovides es otra forma de buscar en la base de datos de paquetes. En este caso se busca qué paquete provee cierta funcionalidad o archivo. Use un nombre específico o sintaxis tipo file-glob wildcards para listar los paquetes disponibles o instalados que proveen la funcionalidad o archivo buscado.
$ yum provides /etc/httpd/conf/httpd.conf
httpd-2.2.22-4.fc17.x86_64 : Apache HTTP Server
Repositorio        : fedora
Resultado obtenido desde:
Nombre del archivo    : /etc/httpd/conf/httpd.conf
$ yum provides ruby
ruby-1.9.3.194-10.1.fc17.i686 : An interpreter of object-oriented scripting
                              : language
Repositorio        : fedora

6.9.3. Listado de paquetes instalados

El comando yum list installed muestra el listado de los paquetes actualmente instalados en el sistema.
$ yum list installed
Paquetes instalados
audit-libs.x86_64               2.2.1-1.fc17                 @fedora/$releasever
authconfig.x86_64               6.2.1-1.fc17                 @fedora/$releasever
basesystem.noarch               10.0-6.fc17                  @fedora/$releasever
bash.x86_64                     4.2.24-2.fc17                @fedora/$releasever
binutils.x86_64                 2.22.52.0.1-10.fc17          @fedora/$releasever
bzip2.x86_64                    1.0.6-4.fc17                 @fedora/$releasever
bzip2-libs.x86_64               1.0.6-4.fc17                 @fedora/$releasever
ca-certificates.noarch          2012.81-1.fc17               @fedora/$releasever
chkconfig.x86_64                1.3.59-1.fc17                @fedora/$releasever
cloog-ppl.x86_64                0.15.11-3.fc17.1             @fedora/$releasever
coreutils.x86_64                8.15-6.fc17                  @fedora/$releasever
lib.x86_64                     1.2.5-6.fc17                 @fedora/$releasever
...
[muchos otros]

6.9.4. Listado de paquetes disponibles

Es posible listar los paquetes que están disponibles para ser instalados a partir de los repositorios configurados:
$ yum list available
Paquetes disponibles
0xFFFF.x86_64                            0.3.9-6.fc17                     fedora
389-admin.x86_64                         1.1.29-1.fc17                    fedora
389-admin-console.noarch                 1.1.8-3.fc17                     fedora
389-admin-console-doc.noarch             1.1.8-3.fc17                     fedora
389-adminutil.x86_64                     1.1.15-2.fc17                    fedora
389-adminutil-devel.x86_64               1.1.15-2.fc17                    fedora
389-console.noarch                       1.1.7-2.fc17                     fedora
389-ds.noarch                            1.2.2-2.fc17                     fedora
...
[muchos otros]

6.9.5. Listado de actualizaciones disponibles

Es posible listar los paquetes instalados que tienen actualizaciones disponibles en los repositorios habilitados:
$ yum list updates
Paquetes actualizados
kernel-headers.x86_64               3.3.7-1.fc17                updates-released
libblkid.x86_64                     2.21.2-1.fc17               updates-released
libmount.x86_64                     2.21.2-1.fc17               updates-released
libuuid.x86_64                      2.21.2-1.fc17               updates-released
systemd.x86_64                      44-12.fc17                  updates-released
systemd-sysv.x86_64                 44-12.fc17                  updates-released
util-linux.x86_64                   2.21.2-1.fc17               updates-released

6.9.6. Listado de paquetes recientes

Es posible listar qué nuevos paquetes han sido agregados recientemente a los repositorios configurados usando la opción recent del comando list:
$ yum list recent
Paquetes añadidos recientemente
empathy.x86_64                         3.4.2-1.fc17             updates-released
fedora-release-notes.noarch            17.1.0-1.fc17            updates-released
finch.i686                             2.10.4-1.fc17            updates-released
finch.x86_64                           2.10.4-1.fc17            updates-released
finch-devel.i686                       2.10.4-1.fc17            updates-released
finch-devel.x86_64                     2.10.4-1.fc17            updates-released
grubby.x86_64                          8.12-1.fc17              updates-released
libpurple.i686                         2.10.4-1.fc17            updates-released
...
[muchos otros]

6.9.7. Listado de paquetes foráneos

Este listado puede llegar a ser muy importante ya que lista todos los paquetes instalados que no están disponibles en los repositorios configurados y habilitados. Probablemente se bajó un rpm de un servidor web de terceros y se instaló, un paquete totalmente ajeno a los repositorios configurados y habilitados. También puede que por razones de problemas de dependencias algunos paquetes antiguos aún vivan en su sistema sin que usted lo sepa. También existe la posibilidad de que haya habilitado el repositorio updates-testing, o cualquier otro, temporalmente e instalado algún paquete desde dicho repositorio y luego se ha vuelto a deshabilitar dicho repositorio.
$ yum list extras
Paquetes extra
gdb.x86_64                     7.4.50.20120120-46.fc17          @updates-testing
kernel-headers.x86_64          3.3.6-3.fc17                     @updates-testing
openldap.x86_64                2.4.31-2.fc17                    @updates-testing
systemd.x86_64                 44-9.fc17                        @updates-testing
systemd-sysv.x86_64            44-9.fc17                        @updates-testing

6.10. Habilitar repositorio al momento

Es común que se tengan repositorios deshabilitados, por ejemplo, los de fuentes rpm o los repositorios con paquetes bajo prueba, dada la circunstancia es necesario habilitarlos y realizar alguna acción yum, por ejemplo buscar información de algún paquete en rawhide, use --enablerepo y habilite al momento:
$ yum info --enablerepo=rawhide bro
Paquetes disponibles
Nombre        : bro
Arquitectura        : i686
Versión     : 1.5.1
Lanzamiento     : 5.fc18
Tamaño        : 1.9 M
Repositorio        : rawhide
Resumen     : Open-source, Unix-based Network Intrusion Detection System
URL         : http://bro-ids.org
Licencia     : BSD
Descripción :Bro is an open-source, Unix-based Network Intrusion Detection
           : System (NIDS) that passively monitors network traffic and looks for
           : suspicious activity. Bro detects intrusions by first parsing
           : network traffic to extract is application-level semantics and then
           : executing event-oriented analyzers that compare the activity with
           : patterns deemed troublesome. Its analysis includes detection of
           : specific attacks (including those defined by signatures, but also
           : those defined in terms of events) and unusual activities (e.g.,
           : certain hosts connecting to certain services, or patterns of failed
           : connection attempts).

6.11. Listar dependencias

Con yum es muy fácil listar las dependencias de un paquete dado.
$ yum deplist rubygems
paquete: rubygems.noarch 1.8.24-1.fc17
 dependencia: /usr/bin/ruby
   provider: ruby.x86_64 1.9.3.194-10.1.fc17
   provider: ruby.i686 1.9.3.194-10.1.fc17
 dependencia: ca-certificates
   provider: ca-certificates.noarch 2012.81-1.fc17
 dependencia: ruby(abi) = 1.9.1
   provider: ruby-libs.x86_64 1.9.3.194-10.1.fc17
   provider: ruby-libs.i686 1.9.3.194-10.1.fc17
 dependencia: rubygem(io-console) >= 0.3
   provider: rubygem-io-console.x86_64 0.3-10.1.fc17
 dependencia: rubygem(rdoc) >= 3.9.4
   provider: rubygem-rdoc.noarch 3.12-3.fc17
   provider: rubygem-rdoc.x86_64 3.9.4-10.1.fc17

6.12. Consulta al cache

Si se requiere consultar la base de datos de paquetes y no tiene conexión de red con los repositorios configurados, se puede especificar la opción -C para que sólo se actúe sobre los datos cacheados localmente. Los datos en el cache debe estar vigentes y la acción requerida no debe implicar una descarga de la red. Ejemplo simple, búsqueda de paquete:
$ yum -C search squid
=================== Nombre/Resumen que coinciden con: squid ====================
lightsquid.noarch : Light, small, and fast log analyzer for squid proxy
lightsquid-apache.noarch : Web Controls for lightsquid
squid.x86_64 : The Squid proxy caching server
squid-sysvinit.x86_64 : SysV initscript for squid caching proxy
squidGuard.x86_64 : Filter, redirector and access controller plugin for squid
calamaris.noarch : Squid native log format (NLF) analyzer and report generator
libecap.i686 : Squid interface for embedded adaptation modules
libecap.x86_64 : Squid interface for embedded adaptation modules

  Nombre y resumen que coinciden con  y sólo , use "buscar todo" para todo.

6.13. Mostrar duplicados

En operación con configuración estandar, yum sólo considera la última versión de un paquete dado. Para poder visualizar las versiones previas, hay que habilitar la posibilidad de listar los duplicados:
[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
gpgcheck=1
plugins=1
# Mostrar duplicados 
showdupesfromrepos=1
Un ejemplo de los resultados se muestra a continuación.
showdupesfromrepos=0
$ su -c "yum list available vorbis-tools"
...
Paquetes disponibles
vorbis-tools.i686                    1:1.2.0-8.fc12                     updates
showdupesfromrepos=1
$ su -c "yum list available vorbis-tools"
...
Paquetes disponibles
vorbis-tools.i686                    1:1.2.0-6.fc12                     fedora 
vorbis-tools.i686                    1:1.2.0-8.fc12                     updates
También es posible sólo habilitar al momento con el uso de la opción --showduplicates en la línea de comando.
$ su -c "yum list available vorbis-tools --showduplicates"
...
Paquetes disponibles
vorbis-tools.x86_64                  1:1.2.0-7.fc13                   fedora 
vorbis-tools.x86_64                  1:1.2.0-8.fc13                   updates

6.14. Bloqueo existente

Si obtiene el siguiente mensaje al ejecutar un comando yum:
$ su -c "yum install xxx*"
Complementos cargados:aliases, presto, verify
Bloqueo existente en /var/run/yum.pid: otra copia se encuentra en ejecución como pid 12588.
Otra aplicación tiene retenido el bloqueo de Yum; esperándolo para salir... 
La otra aplicación es: yum
Memoria : 101 M RSS (400 MB VSZ)
Iniciado: Sun Sep 26 07:59:51 2010 - 12:05 atrás
Estado  : Ininterrumplible, pid: 12588
Es porque existe otra instancia yum ejecutándose o muerta. El origen de esta situación es que el sistema YUM no soporta concurrencia con todas las operaciones. Una circunstancia en que suele ocurrir esto es cuando yum-updatesd está en ejecución. Resuelva con:
$ su -
contraseña
# service yum-updatesd stop
<mis operaciones yum>
# service yum-updatesd start
Esto sólo funciona si yum-updatesd es el causante de que el sistema esté ocupado. Si es otra aplicación yum, simplemente espere, y sólo en última instancia, si presume que dicha aplicación está muerta y no responde:
$ su -
Contraseña:
# kill -kill <pid>
Donde <pid> es el identificador de proceso de la otra aplicación.

6.15. Grupos de software YUM

Ahora se revisarán los comandos y configuraciones YUM relacionadas a grupos de software que ciertamente son muy útiles y que se refieren a la capacidad del sistema de manejar grupos de paquetes de software para listar, instalar, actualizar o remover dichos grupos de software en una única transacción yum.
En general la sintaxis de los subcomandos yum groups disponibles específicos son:
  • list [hidden] [groupwildcard] [...].
  • info group1 [...].
  • install group1 [group2] [...].
  • update group1 [group2] [...].
  • remove group1 [group2] [...].
  • summary.
Alternativamente se pueden utilizar los siguientes comandos base especificando el nombre de grupo por medio del prefijo "@" para indicar que se trata de un nombre de grupo y no de un nombre de paquete.
* install @group1 [@group2] [...]
* update @group1 [@group2] [...]
* remove @group1 [@group2] [...]

6.15.1. Listar grupos disponibles

Para listar los grupos YUM disponibles use yum groups list.
$ yum groups list
Grupos instalados:
   Editores
   Herramientas del sistema 
   Milkymist
Grupos disponibles:
   Administradores de Ventana
   Agrupamiento
   Aplicaciones Médicas
   Autoría y publicación
   ...
   [otros]
Grupos de idioma disponibles:
   Bodo Support [brx]
   Dogri Support [doi]
   Manipuri Support [mni]
   Santali Support [sat]
   ...
   [otros]
Listo

6.15.2. Información de paquetes de grupo

Para obtener información de los grupos y de sus paquetes constitutivos use yum groups info.
$ yum groups info "Entorno de escritorio GNOME"
Grupo: Entorno de escritorio GNOME
 Descripción: GNOME es una interfaz gráfica de usuario potente que incluye un panel, un escritorio, iconos del sistema y administrador de archivos gráficos.
 Paquetes obligatorios:
   control-center
   dconf
   gnome-panel
   gnome-session
   ...
 Paquetes predeterminados:
   NetworkManager-gnome
   NetworkManager-openconnect
   NetworkManager-openvpn
   NetworkManager-pptp
   ...
 Paquetes opcionales:
   alacarte
   byzanz
   dasher
   esc
   ...
 Paquetes condicionales:
   imsettings-gnome
   pinentry-gtk
   scim-bridge-gtk

6.15.3. Instalación y remoción de grupos

Cada grupo de software YUM contiene una lista de paquetes componentes mandatorios, opcionales y predeterminados. Al aplicar el comando para instalación de grupo YUM a continuación, usted deberá especificar cuáles de esos paquetes serán tomados en cuenta. El valor por omisión de este parámetro de configuración es "default, mandatory", es decir, se instalarán los componentes etiquetados como mandatorios y predeterminados. La directiva para configuración en yum.conf es group_package_types:
[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
...
# Ajuste para instalar todos los paquetes de un grupo yum
group_package_types=default, mandatory, optional
Aclarado cuáles paquetes del grupo deseado se pueden instalar, un ejemplo de instalación de grupo, en este caso Agrupamiento o Clustering.
$ su -c "yum groups install 'Agrupamiento'"
Resolviendo dependencias
...
--> Resolución de dependencias finalizada

Dependencias resueltas

================================================================================
 Package                   Arquitectura
                                   Versión               Repositorio      Tamaño
================================================================================
Instalando:
 ipvsadm                   x86_64  1.26-4.fc17           fedora            41 k
 pacemaker                 x86_64  1.1.7-2.fc17          fedora           362 k
Instalando para las dependencias:
 OpenIPMI-libs             x86_64  2.0.18-13.fc17        fedora           466 k
 cifs-utils                x86_64  5.5-1.fc17            updates-testing   67 k
 cluster-glue              x86_64  1.0.6-9.fc17.1        fedora           229 k
 cluster-glue-libs         x86_64  1.0.6-9.fc17.1        fedora           121 k
 ...
 [otros]

Resumen de la transacción
================================================================================
Instalar  2 Paquetes (+42 Paquetes dependientes)

Tamaño total de la descarga: 8.8 M
Tamaño instalado: 28 M
Está de acuerdo [s/N]:s
Descargando paquetes:
--------------------------------------------------------------------------------
Total                                            85 kB/s | 8.8 MB     01:45     
Ejecutando verificación de transacción
Ejecutando prueba de transacción
La prueba de transacción ha sido exitosa
Ejecutando transacción
  Instalando    : libqb-0.13.0-1.fc17.x86_64                               1/44 
  Instalando    : libtool-ltdl-2.4.2-3.fc17.x86_64                         2/44 
  Instalando    : cluster-glue-libs-1.0.6-9.fc17.1.x86_64                  3/44 
  Instalando    : libxslt-1.1.26-9.fc17.x86_64                             4/44 
  ...

  Comprobando   : xfsprogs-3.1.8-1.fc17.x86_64                             1/44 
  Comprobando   : 1:net-snmp-libs-5.7.1-4.fc17.x86_64                      2/44 
  Comprobando   : cluster-glue-1.0.6-9.fc17.1.x86_64                       3/44 
  ...

Instalado:
  ipvsadm.x86_64 0:1.26-4.fc17          pacemaker.x86_64 0:1.1.7-2.fc17         
Dependencia(s) instalada(s):
  OpenIPMI-libs.x86_64 0:2.0.18-13.fc17                                         
  cifs-utils.x86_64 0:5.5-1.fc17                                                
  cluster-glue.x86_64 0:1.0.6-9.fc17.1                                          
  ...

¡Listo!
Obviamente averiguar todos y cada uno de los nombres de paquetes e instalarlos uno a uno, aún con sus dependencias calculadas con yum hubiera sido un dolor de cabeza demostrando así la gran utilidad de los grupos yum en la gestión del software.
Igual puede actualizar un grupo dado previamente instalado con por ejemplo:
$ su -c "yum groups update 'Base de datos MySQL'"
Para la remoción, tenemos la opción de usar groups remove, por ejemplo puede desinstalar todo el entorno de escritorio GNOME completo con una sola instrucción:
$ su -c "yum groups remove 'Entorno de escritorio de GNOME'"
A diferencia del procedimiento que hace groupinstall, groupremove removerá todos los paquetes sin tomar en cuenta su tipo, es decir, sin tomar en cuenta la configuración establecida por group_package_types. Es importante resaltar que un paquete dado puede estar en más de un grupo a la vez, así que la secuencia groups install X Y seguida de groups remove Y no necesariamente es igual a solamente hacer groups install X.

6.16. Registros e históricos YUM

yum soporta el registro de su actividad por medio de un archivo configurable por medio de la directiva logfile en la sección [main] de yum.conf.
[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
...
Una muestra de este archivo se muestra a continuación.
# tail /var/log/yum.log
Jul 30 20:39:37 Installed: fedora-packager-0.5.1.0-1.fc12.noarch
Jul 31 06:28:07 Updated: libpurple-2.7.2-1.fc12.i686
Jul 31 06:28:08 Updated: finch-2.7.2-1.fc12.i686
Jul 31 06:28:09 Updated: schroedinger-1.0.8-4.fc12.i686
Jul 31 06:28:32 Updated: pidgin-2.7.2-1.fc12.i686
Jul 31 06:28:33 Updated: iftop-0.17-11.fc12.i686
Jul 31 06:28:33 Updated: perl-Git-1.7.2-1.fc12.noarch
Jul 31 06:28:39 Updated: git-1.7.2-1.fc12.i686
Jul 31 06:42:49 Erased: yum-plugin-allowdowngrade
Aug 02 11:26:10 Erased: iftop

6.16.1. La historia contada por las transacciones

El comando yum history cubre la necesidad de registrar y reportar lo que hemos hecho en nuestro sistema a nivel de la gestión del software. El usuario puede con este comando visualizar qué ha ocurrido en las transacciones recientes.
Para que este comando esté operativo debe configurar el booleano history_record en yum.conf. El habilitar esta funcionalidad le requiere algo de espacio en el sistema y tiempo de procesamiento pero permite obtener mucha información de lo que ha ocurrido en el tiempo. Por omisión este booleano está habilitado por lo que realmente no debe tocar su configuración, si lo hace es para deshabilitar esta funcionalidad.

6.16.1.1. Listado de las transacciones

Listado de las veinte transacciones más recientes.
En general puede usar la forma yum history list donde simplemente yum history es un alias para el mismo comando.
$ yum history
...
ID     | Registro de usuario      | Día y hora       | Acción(es)     | Modific
-------------------------------------------------------------------------------
  1347 | Guillermo <gomix>        | 2012-05-01 05:20 | Erase          |    1   
  1346 | Guillermo <gomix>        | 2012-05-01 05:19 | Install        |    1  <
  1345 | Guillermo <gomix>        | 2012-04-29 08:45 | E, I, U        |  246 >E
  1344 | Guillermo <gomix>        | 2012-04-29 07:29 | Install        |    1   
  1343 | Guillermo <gomix>        | 2012-04-25 05:31 | Erase          |    1   
  1342 | Guillermo <gomix>        | 2012-04-17 11:15 | Install        |    1   
  1341 | Guillermo <gomix>        | 2012-04-17 09:47 | E, I, U        |  160 EE
  1340 | Guillermo <gomix>        | 2012-04-12 15:23 | Install        |    1   
  1339 | Guillermo <gomix>        | 2012-04-08 07:10 | Erase          |    1   
  1338 | Guillermo <gomix>        | 2012-04-08 07:10 | Install        |    1   
  1337 | Guillermo <gomix>        | 2012-04-04 06:47 | Update         |    1   
  1336 | Guillermo <gomix>        | 2012-03-30 14:39 | Update         |   15 EE
  1335 | Guillermo <gomix>        | 2012-03-30 14:05 | Erase          |    2   
  1334 | Guillermo <gomix>        | 2012-03-30 13:57 | Install        |    1   
  1333 | Guillermo <gomix>        | 2012-03-30 13:53 | Install        |    1 EE
  1332 | Guillermo <gomix>        | 2012-03-30 13:41 | Erase          |    2   
  1331 | Guillermo <gomix>        | 2012-03-30 13:38 | Install        |    2 EE
  1330 | Guillermo <gomix>        | 2012-03-30 13:32 | Install        |    1   
  1329 | Guillermo <gomix>        | 2012-03-30 13:28 | Erase          |    2   
  1328 | Guillermo <gomix>        | 2012-03-30 13:26 | Install        |    2 EE
history list
Listado de todas las transacciones, obviamente sólo mostraremos unas cuantas aquí por razones de espacio.
$ yum history list all
...
ID     | Registro de usuario      | Día y hora       | Acción(es)     | Modific
-------------------------------------------------------------------------------
  1347 | Guillermo <gomix>        | 2012-05-01 05:20 | Erase          |    1   
  1346 | Guillermo <gomix>        | 2012-05-01 05:19 | Install        |    1  <
  1345 | Guillermo <gomix>        | 2012-04-29 08:45 | E, I, U        |  246 >E
  ...
  ...
  ...
  1310 | Guillermo <gomix>        | 2012-03-07 10:13 | Erase          |    7   
  1309 | Guillermo <gomix>        | 2012-03-07 10:08 | Erase          |    2   
  1308 | Guillermo <gomix>        | 2012-03-05 11:56 | Install        |    1   
  ...
  ...
  ...
Listado de un rango de transacciones, use los identificadores para indicar el comienzo y fin del rango deseado.
$ yum history list 370..379
...
ID     | Registro de usuario      | Día y hora       | Acción(es)     | Modific
-------------------------------------------------------------------------------
   379 | Guillermo <gomix>        | 2010-08-27 09:37 | Update         |    1   
   378 | Guillermo <gomix>        | 2010-08-27 09:36 | Downgrade      |    1   
   377 | Guillermo <gomix>        | 2010-08-27 09:14 | Erase          |    1   
   376 | Guillermo <gomix>        | 2010-08-27 08:58 | Update         |    3   
   375 | Guillermo <gomix>        | 2010-08-27 08:51 | Install        |    1   
   374 | Guillermo <gomix>        | 2010-08-27 07:40 | Install        |    1   
   373 | Guillermo <gomix>        | 2010-08-27 06:42 | Install        |    1   
   372 | Guillermo <gomix>        | 2010-08-27 06:11 | Install        |    1   
   371 | Guillermo <gomix>        | 2010-08-26 17:29 | Install        |    1   
   370 | Guillermo <gomix>        | 2010-08-26 08:43 | Erase          |    1   
history list
Los listados producidos en formato tabular contienen los siguientes datos en cada fila:
ID
Un valor entero que identifica una transacción particular.
Registro de usuario
El nombre del usuario cuya sesión de login fue utilizada para iniciar la transacción. Esta información es típicamente presentada como Nombre Completo <nombre de usuario>. Para transacciones que no fueron iniciadas por un usuario, tal como las actualizaciones automáticas, se reporta System <unset>.
Día y hora
La fecha y hora cuando de la transacción. .
Acción(es)
Una lista de acciones que fueron ejecutadas durante la transacción y de acuerdo a como se describen en la tabla más abajo "Valores posibles del campo Acción(es)".
Modific
La cantidad de paquetes afectados por la transacción , posiblemente seguido de información adicional y de acuerdo a lo indicado por la tabla "Valores posibles del campo Modific".
Tabla 6.1. Valores posibles del campo Acción(es)
Acción Abreviatura Descripción
Downgrade D Al menos un paquete ha sido degradado a una versión más antigua.
Erase E Al menos un paquete ha sido removido.
Install I Al menos un nuevo paquete ha sido instalado.
Obsoleting O Al menos un paquete ha sido marcado como obsoleto.
Reinstall R Al menos un paquete ha sido reinstalado.
Update U Al menos un paquete ha sido actualizado a una nueva versión.

Tabla 6.2. Valores posibles del campo Modific
Símbolo Descripción
< Antes de que la transacción terminara, la base de datos rpmdb fue alterada fuera Yum.
> Después de que la transacción terminara, la base de datos rpmdb fue alterada fuera de Yum.
* La transacción falló al finalizar.
# La transacción terminó exitosamente pero yum devolvió un código de salida no cero.
E La transacción terminó exitosamente pero se mostró un error o alerta.
P La transacción terminó exitosamente pero ya existían problemas previos en la base de datos rpmdb.
s La transacción terminó exitosamente pero se utilizó la opción de comando --skip-broken y algunos paquetes fueron obviados.

6.16.1.2. Información detallada

Para obtener información detallada específica de una transacción, use el ID de la transacción realizada con el comando yum history info.
# yum history info 4
ID de transacción : 4
Hora inicial     : Sun May  6 09:37:53 2012
Rpmdb inicial    : 168:41cde9cb699d7d6a48bff57df26df6e1ff57fdb4
Hora final       :             09:38:02 2012 (9 segundos)
Rpmdb final      : 174:ba90f2dfafa343f6ec9300c36def701f21dd8562
Usuario           :  <mockbuild>
Codigo-obtenido    : Exito
Línea de comando   : --installroot /var/lib/mock/fedora-17-SMG-x86_64/root/ install vim --setopt=tsflags=nocontexts
Transacción realizada con:
    Instalado      rpm-4.9.1.3-6.fc17.x86_64 @fedora
    Instalado      yum-3.4.3-23.fc17.noarch  @fedora
Paquetes modificados:
    Instalación de dependencias gpm-libs-1.20.6-22.fc17.x86_64         @fedora
    Instalación de dependencias libyaml-0.1.4-2.fc17.x86_64            @fedora
    Instalación de dependencias ruby-libs-1.9.3.194-10.1.fc17.x86_64   @fedora
    Instalación de dependencias vim-common-2:7.3.444-1.fc17.x86_64     @fedora
    Instalar                    vim-enhanced-2:7.3.444-1.fc17.x86_64   @fedora
    Instalación de dependencias vim-filesystem-2:7.3.444-1.fc17.x86_64 @fedora
history info
Existe la posibilidad de solicitar información adicional con el comando yum history addon-info, por ejemplo.
# yum history addon-info last
ID de transacción : 1347
Información de historial adicional disponible:
  config-repos
  saved_tx
  config-main

history addon-info
En el ejemplo anterior se tiene tres tipos de información adicional que se puede consultar:
  • config-main, opciones globales Yum que fueron utilizadas durante la transacción.
  • config-repos, opciones para repositorios Yum individuales.
  • saved_tx, datos que pueden ser usados con yum load-transaction para repetir la misma transacción en otra máquina.
Así entonces puede solicitar información detallada adicional con alguno de los siguientes comandos:
# yum history addon-info last config-main

# yum history addon-info last config-repos

# yum history addon-info last saved_tx

6.16.1.3. Información resumida

Para obtener información resumida sobre por ejemplo transacciones que involucraron un paquete específico puede usar yum history summary y especificando el paquete en cuestión.
$ yum history summary vim-common 
...
Registro de usuario        | Hora                | Acción(es)       | Modifica
-------------------------------------------------------------------------------
root <root>                | Ultimos 6 meses     | Reinstall        |      876
Guillermo <gomix>          | Ultimo año          | E, I, O, U       |     1788
Guillermo <gomix>          | Hace más de un año  | E, I, O, U       |     1363
Sistema <no definido>      | Hace más de un año  | E, I, O, U       |     6196
history summary

Argumentos comunes para list, info y summary

Los comandos yum history list|info|summary pueden todos usar identificadores de transacción individual o en formato rango, nombres de paquetes o expresiones glob para los nombres de paquetes.
$ yum history list 100..102
$ yum history info 100..102
$ yum history summary 100..102

$ yum history list vim-common
$ yum history info vim-common
$ yum history summary vim-common

$ yum history list vim-*
$ yum history info vim-*
$ yum history summary vim-*

6.16.2. ¿Undo?¡Redo!

Una de las aplicaciones más valiosas y definitvamente una de las más útiles del comando history es la posibilidad de deshacer o rehacer la transacción correspondiente. A continuación se muestra un ejemplo de su uso:
$ su -c "yum history undo 1"
...		
Undoing transaction 1, from Fri Nov 27 22:39:59 2009
    Install      0xFFFF-0.3.9-4.fc12.i686
Resolviendo dependencias
--> Ejecutando prueba de transacción
---> Paquete 0xFFFF.i686 0:0.3.9-4.fc12 definido para ser eliminado
--> Resolución de dependencias finalizada

Dependencias resueltas

==============================================================================
 Paquete       Arquitectura    Versión     Repositorio         Tamaño
==============================================================================
Eliminando:
 0xFFFF            i686   0.3.9-4.fc12         installed             100 k

Resumen de la transacción
==============================================================================
Eliminar          1 Paquete(s)
Reinstalar        0 Paquete(s)
Desactualizar     0 Paquete(s)

Está de acuerdo [s/N]:s
Descargando paquetes:
Ejecutando el rpm_check_debug
Ejecutando prueba de transacción
Prueba de transacción finalizada
La prueba de transacción ha sido exitosa
Ejecutando transacción
  Eliminando     : 0xFFFF-0.3.9-4.fc12.i686                                                                                                              1/1 

Eliminado(s):
  0xFFFF.i686 0:0.3.9-4.fc12                                                                                                                                 
¡Listo!
El contenido del histórico debe haber cambiado:
$ yum history
...	
ID     | Login user             | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
     2 | root <root>            | 2009-11-27 23:07 | Erase          |    1
     1 | root <root>            | 2009-11-27 22:39 | Install        |    1
Y ahora se puede rehacer la transacción.
$ su -c "yum history redo 1"
...
Repeating transaction 1, from Fri Nov 27 22:39:59 2009
    Install      0xFFFF-0.3.9-4.fc12.i686
...

6.16.3. Histórico corrupto

Es posible que la base de datos del histórico se corrompa, en esos casos puede que vea algo como:
# yum history info 10
...		
ID de transacción : 10
Hora inicial     : Fri Nov 27 12:34:18 2009
Rpmdb inicial    : 2005:ea899bf5e2243b770e23188d4dccbb78b4fe96b4
Hora final       :             12:34:54 2009 (36 segundos)
Rpmdb final      : 2011:0edcefb8dd72a2b498a1dadc6dc89478bb8a1a85
Usuario           : Traceback (most recent call last):
  File "/usr/bin/yum", line 29, in <module>
    yummain.user_main(sys.argv[1:], exit_code=True)
    ...
Para el momento de redacción no se conoce un método de restauración asi que es recomendable mantener un respaldo del archivo con el histórico. Si no tiene un respaldo deberá crear un nuevo archivo para el histórico.
# yum history new
...
history new
Al crear un nuevo histórico, en realidad el antiguo no se pierde y para los hackers, estos archivos son bases de datos hechas en Sqlite3. En cualquier caso el respaldo de esta base de datos es un único archivo, mantener una copia en lugar seguro es una tarea fácil.
# cd /var/lib/yum/history
# ls -l
total 416
-rw-r--r-- 1 root root 407552 nov 27 12:34 history-2009-11-25.sqlite
-rw-r--r-- 1 root root  11264 nov 27 22:40 history-2009-11-27.sqlite

6.16.4. Identificación del responsable con sudo

Una de las desventajas del archivo general de registros yum /var/log/yum.log es que no identifica la persona responsable de la actividad yum. Combinando el uso de sudo con el uso del comando yum history podrá obtener información detallada de la transacción yum. Abajo se muestra salida de ejemplo.
Usuario gomix autorizado vía sudo para uso del comando yum.
[gomix@fricky ~]$ id
uid=502(gomix) gid=502(gomix) grupos=497(pulse-rt),502(gomix)
[gomix@fricky ~]$ sudo yum -y install iftop
...
Salida y verificación con yum history:
$ yum history | head
...	
ID     | Registro de usuario    | Día y hora       | Acción(es)     | Modific
-------------------------------------------------------------------------------
   144 | Guillermo ... <gomix>  | 2010-08-02 18:43 | Install        |    1   
   143 | Guillermo ... <gomix>  | 2010-08-02 11:26 | Erase          |    1   
   142 | Guillermo ... <gomix>  | 2010-07-31 06:42 | Erase          |    1   
   141 | Guillermo ... <gomix>  | 2010-07-31 06:27 | Update         |    7  <
   140 | Guillermo ... <gomix>  | 2010-07-30 20:39 | Install        |   11 >
Detalles de la última transacción.
$ yum history info 144
...	
ID de transacción : 144
Hora inicial     : Mon Aug  2 18:43:18 2010
Rpmdb inicial    : 2241:d3aa0d2306c6f22b9a4e28902b0fa3740dcb6fea
Hora final       :             18:43:22 2010 (4 segundos)
Rpmdb final      : 2242:4139a09f4a3219ac9014126fc151e4af9a596f4f
Usuario           : Guillermo Gómez <gomix>
Codigo-obtenido    : Exito
Transacción realizada con:
    Instalado    rpm-4.7.2-2.fc12.i686
    Instalado    yum-3.2.27-3.fc12.noarch
    Instalado    yum-metadata-parser-1.1.2-14.fc12.i686
    Instalado    yum-plugin-aliases-1.1.26-1.fc12.noarch
    Instalado    yum-plugin-fastestmirror-1.1.26-1.fc12.noarch
    Instalado    yum-presto-0.6.2-1.fc12.noarch
Paquetes modificados:
    Instalar     iftop-0.17-11.fc12.i686
history info

6.16.5. Verificación de la base de datos rpm

yum check verifica la base de datos local rpmdb y produce información acerca de cualquier problema que encuentre.
Puede pasarle los argumentos "dependencies" o "duplicates" para limitar la verificación que se realizará, por omisión es "all" que incluye ambas verificaciones.
# yum check
...		
ImageMagick-c++-6.5.4.7-3.fc12.i686 has missing requires of ImageMagick = ('0', '6.5.4.7', '3.fc12')
ImageMagick-perl-6.5.4.7-3.fc12.i686 has missing requires of ImageMagick = ('0', '6.5.4.7', '3.fc12')
abrt-1.1.1-2.fc12.i686 has missing requires of librpm.so.0
abrt-1.1.1-2.fc12.i686 has missing requires of librpmio.so.0
baekmuk-ttf-batang-fonts-2.2-22.fc12.noarch has missing requires of baekmuk-ttf-fonts-common = ('0', '2.2', '22.fc12')
baekmuk-ttf-dotum-fonts-2.2-22.fc12.noarch has missing requires of baekmuk-ttf-fonts-common = ('0', '2.2', '22.fc12')
baekmuk-ttf-fonts-ghostscript-2.2-22.fc12.noarch has missing requires of baekmuk-ttf-gulim-fonts = ('0', '2.2', '22.fc12')
# yum check duplicates 
...
1:qt-4.8.2-2.fc16.x86_64 es un duplicado con 1:qt-4.8.1-5.fc16.x86_64
Error: check ['duplicates']
# yum check dependencies
Loaded plugins: aliases, changelog, keys, list-data, presto, ps
compiz-fusion-extras-gnome-0.8.6-1.fc14.i686 has missing requires of compiz-fusion-extras = ('0', '0.8.6', None)
gnome-python2-evince-2.32.0-3.fc14.i686 has missing requires of gnome-python2-desktop = ('0', '2.32.0', '3.fc14')
gnome-python2-evince-2.32.0-3.fc14.i686 has missing requires of libevdocument.so.3
gnome-python2-evince-2.32.0-3.fc14.i686 has missing requires of libevview.so.3
gnotime-2.3.0-8.fc15.i686 has missing requires of libgtkhtml-3.15.so.19
openbios-ppc-1.0-2.fc12.noarch has missing requires of openbios-common = ('0', '1.0', '2.fc12')
xulrunner2-2.0.1-1.fc14.i686 has missing requires of libnotify.so.1
Error: check ['dependencies']

6.17. yum shell

yum shell se utiliza para ingresar a la interfase tipo "concha" de yum, si se le pasa un nombre de archivo el contenido de dicho archivo es ejecutado en el modo yum shell. En el shell yum es posible ejecutar múltiples comandos o conjuntos de comandos durante una única ejecución de yum. Dichos comandos pueden ser ingresados manualmente o por medio de un archivo simple. Los comandos posibles son los mismos a los de las opciones de línea de comando de yum más algunos comandos adicionales.
Ejemplo simple de uso de yum shell para ejecutar un comando regular ingresado manualmente.
$ yum shell
...
Configurando la shell de Yum
> info squid
> Paquetes instalados
Nombre        : squid
Arquitectura        : x86_64
Período       : 7
Versión     : 3.2.0.13
Lanzamiento     : 5.fc16
Tamaño        : 7.5 M
Repositorio        : installed
Desde el repositorio   : updates
Resumen     : El servidor proxy con caché Squid
URL         : http://www.squid-cache.org
Licencia     : GPLv2+ and (LGPLv2+ and MIT and BSD and Public Domain)
Descripción :Squid es un servidor de caché proxy de alta performance para
           : clientes Web, con soporte para objetos de datos FTP, gopher y HTTP.
           : A diferencia del software de caché tradicional, Squid maneja todos
           : los requerimientos en un sólo proceso no bloqueante manejado por
           : E/S. Squid mantiene meta datos y especialmente objetos muy
           : solicitados en caché en RAM, hace cachǸ de búsquedas DNS, tiene
           : soporte de consulta DNS no bloqueante, e implementa el cacheo
           : negativo de pedidos fallidos.
           : 
           : Squid consta de un servidor principal llamado squid, un programa de
           : búsqueda DNS (dnsserver), un programa para extraer datos FTP
	   : (ftpget), y algunas herramientas de administración y clientes.
> exit
> Leaving Shell

6.17.1. Comandos específicos yum shell

Existen tres comandos adicionales específicos a yum shell: config, repo y transaction.
  • config [argumento] [valor]
    • argumento: debuglevel, errorlevel, obsoletes, gpgcheck, assumeyes, exclude.
    • Si no especifica valor, se imprime el valor actual.
    • Si se especifica valor, se establece el valor al valor especificado.
    • Ejemplo de uso:
      > config gpgcheck
      gpgcheck: True
      > config gpgcheck False
      > config gpgcheck
       gpgcheck: False
      
  • repo [argumento] [opción]
    • list: lista repositorios y sus estados.
    • enable: habilita repositorios, opción = id repositorio.
    • disable: deshabilita repositorios, opción = id repositorio.
    • Ejemplo de uso:
      > repo list
      > id del repositorio        nombre del repositorio                          estado
      fedora                    Fedora 16 - x86_64                              25.098
      fedora-chromium-stable    Builds of the "stable" tag of the Chromium Web      18
      rpmfusion-free            RPM Fusion for Fedora 16 - Free                    428
      rpmfusion-free-updates    RPM Fusion for Fedora 16 - Free - Updates           87
      rpmfusion-nonfree         RPM Fusion for Fedora 16 - Nonfree                 171
      rpmfusion-nonfree-updates RPM Fusion for Fedora 16 - Nonfree - Updates        46
      updates                   Fedora 16 - x86_64 - Updates                     3.594
      
      > repo enable updates-testing
      Leyendo en archivos locales los metadatos de los repositorios
      updates-testing/metalink                                      |  40 kB     00:00     
      updates-testing                                               | 4.7 kB     00:00     
      updates-testing/primary_db 
      
      > repo disable updates-testing
      >
      
  • transaction [argumento]
    • list: lista el contenido de la transacción.
    • reset: restablece a cero la transacción (reset).
    • solve: ejecuta el resolutor de dependencias en la transacción.
    • run: ejecuta la transacción.
    • Ejemplo de uso:
      > remove epiphany
      Configurando el proceso de eliminación
      > transaction list
      
       ===============================================================================
       Paquete          Arquitectura   Versión                 Repositorio     Tamaño
       ===============================================================================
       Eliminando:
        epiphany         x86_64         1:3.2.1-2.fc16          @fedora          11 M
      
        Resumen de la transacción
        ===============================================================================
        Remove        1 Package
      
      >  transaction solve
      --> Ejecutando prueba de transacción
      ---> Paquete epiphany.x86_64 1:3.2.1-2.fc16 debe ser eliminado
      --> Resolución de dependencias finalizada
      Success resolving dependencies
      
      > transaction run
      --> Ejecutando prueba de transacción
      --> Resolución de dependencias finalizada
      
       ===============================================================================
       Paquete          Arquitectura   Versión                 Repositorio     Tamaño
       ===============================================================================
       Eliminando:
        epiphany         x86_64         1:3.2.1-2.fc16          @fedora          11 M
      
       Resumen de la transacción
       ===============================================================================
       Remove        1 Package
      
       Tamaño instalado: 11 M
       Está de acuerdo [s/N]:s
       Descargando paquetes:
       Ejecutando verificación de transacción
       Ejecutando prueba de transacción
       La prueba de transacción ha sido exitosa
       Ejecutando transacción 
         Eliminando    : 1:epiphany-3.2.1-2.fc16.x86_64                           1/1
      
       Eliminado(s):
         epiphany.x86_64 1:3.2.1-2.fc16                                               
          
       Finished Transaction
      

Capítulo 7. Extensiones yum

7.1. Instalación y configuración general de las extensiones
7.2. yum-plugin-aliases
7.2.1. Configuración
7.2.2. Ejemplos de uso
7.3. yum-plugin-auto-update-debug-info
7.3.1. Configuración
7.3.2. Ejemplos de uso
7.4. yum-plugin-changelog
7.4.1. Configuración
7.4.2. Ejemplos de uso
7.5. yum-plugin-downloadonly
7.5.1. Configuración
7.5.2. Ejemplos de uso
7.5.3. ¿Qué pasa si el paquete tiene dependencias?
7.5.4. ¿Qué pasa si el paquete ya está instalado?
7.6. yum-plugin-fastestmirror
7.6.1. Configuración
7.6.2. Ejemplos de uso
7.7. yum-plugin-filter-data
7.7.1. Configuración
7.7.2. Documentación
7.7.3. Ejemplos de uso
7.8. yum-plugin-fs-snapshot
7.8.1. Configuración
7.8.2. Documentación
7.9. yum-plugin-keys
7.9.1. Configuración
7.9.2. Ejemplos de uso
7.10. yum-plugin-list-data
7.10.1. Documentación
7.10.2. Configuración
7.10.3. Ejemplos de uso
7.11. yum-plugin-local
7.11.1. Configuración
7.11.2. Ejemplos de uso
7.12. yum-plugin-merge-conf
7.12.1. Configuración
7.12.2. Ejemplos de uso
7.13. yum-plugin-post-transaction-actions
7.13.1. Configuración
7.13.2. Ejemplos de uso
7.14. yum-plugin-priorities
7.14.1. Configuración
7.14.2. Ejemplos de uso
7.15. yum-plugin-protectbase
7.15.1. Configuración
7.15.2. Ejemplos de uso
7.16. yum-plugin-refresh-updatesd
7.16.1. Configuración
7.17. yum-plugin-remove-with-leaves
7.17.1. Configuración
7.17.2. Ejemplos de uso
7.18. yum-plugin-rpm-warm-cache
7.18.1. Configuración
7.19. yum-plugin-security
7.19.1. Configuración
7.19.2. Ejemplos de uso
7.20. yum-plugin-show-leaves
7.20.1. Configuración
7.20.2. Ejemlos de uso
7.21. yum-plugin-tmprepo
7.21.1. Configuración
7.21.2. Ejemplo de uso
7.22. yum-plugin-tsflags
7.22.1. Configuración
7.22.2. Ejemplos de uso
7.23. yum-plugin-upgrade-helper
7.23.1. Configuración
7.24. yum-plugin-verify
7.24.1. Configuración
7.24.2. Documentación
7.24.3. Ejemplos de uso
7.25. yum-plugin-versionlock
7.25.1. Configuración
7.25.2. Ejemplos de uso
7.26. yum-presto
7.26.1. Configuración
7.26.2. Ejemplos de uso
7.27. PackageKit-yum-plugin
7.27.1. Configuración
7.28. yum-langpacks
7.28.1. Configuración
7.29. Uso del comando yum y las extensiones
7.29.1. Desactivar las extensiones
7.29.2. Ejemplos de uso
La aplicación yum soporta lo que se denominan extensiones o plugins. Dichas extensiones permiten agregar funcionalidad a yum que no forman parte del núcleo de funcionalidades. La mayoría de ellas están disponibles en Fedora, abajo un listado breve y luego una revisión de cada una de ellas haciendo énfasis en su uso y aplicabilidad.
yum-plugin-aliases
yum-plugin-changelog
yum-plugin-fastestmirror
yum-plugin-filter-data
yum-plugin-list-data
yum-plugin-verify
yum-presto
yum-plugin-auto-update-debug-info
yum-plugin-basearchonly
yum-plugin-downloadonly
yum-plugin-fs-snapshot
yum-plugin-keys
yum-plugin-local
yum-plugin-merge-conf
yum-plugin-post-transaction-actions
yum-plugin-priorities
yum-plugin-protect-packages
yum-plugin-protectbase
yum-plugin-refresh-updatesd
yum-plugin-remove-with-leaves
yum-plugin-rpm-warm-cache
yum-plugin-security
yum-plugin-show-leaves
yum-plugin-tmprepo
yum-plugin-tsflags
yum-plugin-upgrade-helper
yum-plugin-versionlock
yum-rhn-plugin
PackageKit-yum-plugin
anaconda-yum-plugins
En este manual documentaremos algunas extensiones, para más información acerca de otras extensiones vea http://yum.baseurl.org/wiki/YumUtils.

7.1. Instalación y configuración general de las extensiones

Para instalar, y en general para no repetir este procedimiento con cada documentación específica a la extensión, recuerde que la instalación de una extensión se realiza simplemente con el comando yum install nombre-de-la-extensión, por ejemplo:
$ su -c "yum install yum-plugin-downloadonly"
...
Dependencies Resolved
=================================================================
Package                   Arch   Version        Repository Size
=================================================================
Installing:

yum-plugin-downloadonly  noarch   1.1.24-2.fc12  updates  8.8 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
El nombre de cada sección subsiguiente indicará el nombre de la extensión/paquete a instalar tal cual y de acuerdo a su nombre en la versión actual de Fedora para el momento de redacción de este manual.
El sitio para la centralización de configuración de las extensiones en Fedora es el directorio /etc/yum/pluginconf.d.

7.2. yum-plugin-aliases

Esta extensión agrega el comando alias y permite utilizar y configurar alias para los comandos yum.
yum alias [ALIAS] [expansion]
Agrega o lista los alias.

7.2.1. Configuración

/etc/yum/pluginconf.d/aliases.conf
[main]
enabled=1
conffile=/etc/yum/aliases.conf
recursive=true
register=false
enabled = 0|1
Habilita la extensión a nivel general.
conffile = /ruta
Archivo de configuración de los alias.
recursive = true|false
Uso de la recursión en alias.
register = true|false
Registra los comandos alias en yum.
El archivo /etc/yum/aliases.conf ya incorpora una serie de alias comunes y puede editarse libremente con cualquier editor de texto favorito con el formato alias comando donde si tiene habilitada la recursión, comando puede contener a su vez otros alias.
Muestra del archivo de configuración de alias incluido en Fedora, /etc/yum/aliases.conf.
# Estos son algunos alias que muchas personas encontrarán útiles
# Note que se requiere tener habilitada la recursión

UPT --enablerepo=updates-testing
DUPS --showduplicates

SRC --enablerepo=fedora-source    --enablerepo=updates-source
DEVSRC --enablerepo=development-source
UPTSRC --enablerepo=updates-testing-source

ALLSRC SRC DEVSRC UPTSRC

up   upgrade
inst install
in   install
rm   remove
down downgrade
rein reinstall

chk check-update

ls  list
lsi ls installed
lsa ls available
lsu ls updates
lupi list-updateinfo

h  history
hi history info
hl history list
hs history summary

v  version

7.2.2. Ejemplos de uso

Abajo ls es un alias para list, lsi es un alias para ls installed y a su vez lsu es un alias para list updates.
Lista todos los paquetes, instalados y disponibles.
# yum ls 
...
zziplib.x86_64                 0.13.49-8.fc12               fedora  
zziplib-devel.i686             0.13.49-8.fc12               fedora  
zziplib-devel.x86_64           0.13.49-8.fc12               fedora  
zziplib-utils.x86_64           0.13.49-8.fc12               fedora  
zzuf.x86_64                    0.13-1.fc13                  fedora
Lista los paquetes instalados.
# yum lsi 
...
zip.x86_64                     3.0-1.fc13                   @anaconda-InstallationRepo.x86_64
zlib.i686                      1.2.3-23.fc12                @fedora/12
zlib.x86_64                    1.2.3-23.fc12                @anaconda-InstallationRepo.x86_64/12
zlib-devel.x86_64              1.2.3-23.fc12                @fedora/12
zvbi.x86_64                    0.2.33-4.fc12                @fedora/12
Lista las actualizaciones disponibles.
# yum lsu
...
curl.x86_64                    7.20.1-4.fc13                updates
libcurl.i686                   7.20.1-4.fc13                updates
libcurl.x86_64                 7.20.1-4.fc13                updates
Actualizar un paquete.
# yum up curl
...
Dependencias resueltas

=============================================================================
 Paquete         Arquitectura   Versión                Repositorio     Tamaño
=============================================================================
Actualizando:
 curl            x86_64         7.20.1-4.fc13          updates         203 k
Actualizando para las dependencias:
 libcurl         i686           7.20.1-4.fc13          updates         181 k
 libcurl         x86_64         7.20.1-4.fc13          updates         175 k

Resumen de la transacción
=============================================================================
Upgrade       3 Package(s)

Tamaño total de la descarga: 559 k
Está de acuerdo [s/N]:s
...
Alias disponibles
Hay muchos alias predefinidos en /etc/yum/aliases.conf que puede usar y por supuesto puede agregar nuevos. Usando yum alias puede listar los alias configurados, de caja esto lo que obtiene:
# yum alias
Complementos cargados:aliases, appmarket, download-order, downloadonly,
                    : filter-data, keys, list-data, presto, verify
Alias ALL = --enablerepo=development --enablerepo=updates-testing --enablerepo=fedora-source --enablerepo=updates-source --enablerepo=development-source --enablerepo=updates-testing-source --enablerepo=fedora-debuginfo --enablerepo=updates-debuginfo --enablerepo=development-debuginfo --enablerepo=updates-testing-debuginfo
Alias ALLDBG = --enablerepo=fedora-debuginfo --enablerepo=updates-debuginfo --enablerepo=development-debuginfo --enablerepo=updates-testing-debuginfo
Alias ALLSRC = --enablerepo=fedora-source --enablerepo=updates-source --enablerepo=development-source --enablerepo=updates-testing-source
Alias DBG = --enablerepo=fedora-debuginfo --enablerepo=updates-debuginfo
Alias DEV = --enablerepo=development
Alias DEVDBG = --enablerepo=development-debuginfo
Alias DEVSRC = --enablerepo=development-source
Alias DUPS = --showduplicates
Alias FORCE = --skip-broken --disableexcludes=all
Alias SEC = --security
Alias SRC = --enablerepo=fedora-source --enablerepo=updates-source
Alias UPT = --enablerepo=updates-testing
Alias UPTDBG = --enablerepo=updates-testing-debuginfo
Alias UPTSRC = --enablerepo=updates-testing-source
Alias chk = check-update
Alias dbg-inst = --enablerepo=fedora-debuginfo --enablerepo=updates-debuginfo install
Alias dbg-install = --enablerepo=fedora-debuginfo --enablerepo=updates-debuginfo install
Alias down = downgrade
Alias force-inst = --skip-broken --disableexcludes=all install
Alias force-install = --skip-broken --disableexcludes=all install
Alias force-up = --skip-broken --disableexcludes=all upgrade
Alias force-update = --skip-broken --disableexcludes=all update
Alias force-upgrade = --skip-broken --disableexcludes=all upgrade
Alias h = history
Alias hi = history info
Alias hl = history list
Alias hs = history summary
Alias in = install
Alias inst = install
Alias ls = list
Alias lsa = list available
Alias lsi = list installed
Alias lssu = --security list updates
Alias lsu = list updates
Alias lupi = list-updateinfo
Alias rein = reinstall
Alias rm = remove
Alias up = upgrade
Alias v = version
alias done
Agregar alias con yum alias
# yum alias ver version
...
alias done
# yum alias ver 
...
Alias ver = version
alias done

7.3. yum-plugin-auto-update-debug-info

Esta extensión busca si hay paquetes debuginfo instalados, y si es así, habilita todos los repositorios debuginfo que sean "hijos" de los repositorios habilitados para permitir la actualización automática de dichos paquetes.

7.3.1. Configuración

/etc/yum/pluginconf.d/auto-update-debuginfo.conf
[main]
enabled=1
enabled = 0|1
Habilita la extensión a nivel general.

7.3.2. Ejemplos de uso

El paquete cifs-debuginfo se encuentra instalado.
# yum info cifs-utils-debug-info
...
Nombre        : cifs-utils-debuginfo
Arquitectura        : x86_64
Versión     : 5.4
Lanzamiento     : 1.fc17
Tamaño        : 565 k
Repositorio        : installed
Desde el repositorio   : fedora-debuginfo
Resumen     : Debug information for package cifs-utils
URL         : http://linux-cifs.samba.org/cifs-utils/
Licencia     : GPLv3
Descripción :This package provides debug information for package cifs-utils.
           : Debug information is useful when developing applications that use
           : this package or when debugging this package.
En condiciones normales, es decir, sin esta extensión instalada y habilitada, no se detecta la actualización:
# yum  check-update
#
Instalando y habilitando yum-plugin-auto-update-debug-info el resultado cambia:
# yum check-update

Complementos cargados: auto-update-debuginfo, langpacks, presto,
                     : refresh-packagekit

cifs-utils-debuginfo.x86_64             5.5-1.fc17             updates-debuginfo

7.4. yum-plugin-changelog

yum-changelog es una extensión para mostrar los registros de cambios del paquete (changelogs) antes o después de actualizar. yum invocará esta extensión si se usa con la opción --changelog o se usa el comando changelog.

7.4.1. Configuración

/etc/yum/pluginconf.d/changelog.conf
[main]
enabled=1
when=pre
always=false
enabled = 0|1
Habilita la extensión a nivel general.
when = pre|post
Se imprime el changelog antes o después de la actualización. Por omisión su valor es pre.
always = true|false
Puesto a true provoca que siempre se imprima el changelog, remueve la opción para la línea de comando.
updateinfo = true|false
Puesto a true provoca que siempre se incluya updateinfo.
updateinfo_always = true|false
Puesto a true implica que siempre se incluira updateinfo. Si updateinfo es false, esta opción pierde su sentido. Si es false es necesario que se especifique la opción en la línea de comando.

7.4.2. Ejemplos de uso

# yum changelog Jan-2011 dwm

Complementos cargados: changelog

Listing changelogs since 2011-01-17

==================== Available Packages ====================
dwm-6.0-2.fc17.x86_64                    fedora
* Fri Jan 13 07:30:00 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 6.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild

* Wed Dec 21 07:30:00 2011 Petr Šabata <contyk@redhat.com> - 6.0-1
- 6.0 bump

* Mon Jul 11 07:30:00 2011 Petr Sabata <contyk@redhat.com> - 5.9-1
- 5.9 bump

* Mon Jun 27 07:30:00 2011 Petr Sabata <contyk@redhat.com> - 5.8.2-9
- Remove now obsolete defattr
- Move dwm-start(.1) substitutions to install section since we don't want to
  modify sources in place
- Change the prefix patch to generic config patch; we now respect Fedora
  RPM_OPT_FLAGS

* Mon Apr  4 07:30:00 2011 Petr Sabata <psabata@redhat.com> - 5.8.2-8
- Switch to Terminus (upstream default, anyway)

* Wed Feb  9 07:30:00 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.8.2-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

changelog stats. 1 pkg, 1 source pkg, 6 changelogs
# yum update yum --changelog

Complementos cargados:changelog
Resolviendo dependencias
--> Ejecutando prueba de transacción
---> Paquete yum.noarch 0:3.4.3-23.fc17 debe ser actualizado
---> Paquete yum.noarch 0:3.4.3-26.fc17 debe ser una actualización
--> Resolución de dependencias finalizada

Changes in packages about to be updated:

ChangeLog for: yum-3.4.3-26.fc17.noarch
* Thu Jun  7 07:30:00 2012 Zdenek Pavlas <zpavlas at redhat.com> - 3.4.3-26
- update to latest HEAD
- more completion helper patches
- parallel downloading of packages and metadata
- revert a hack that probably caused BZ 829505

* Thu May 31 07:30:00 2012 Zdenek Pavlas <zpavlas at redhat.com> - 3.4.3-25
- backported completion-helper.py patches from HEAD, BZ 809469.

* Fri Apr 27 07:30:00 2012 James Antill <james at fedoraproject.org> - 3.4.3-24
- Add code for arm detection.


===============================================================================
  yum-3.4.3-26.fc17
===============================================================================
  Update ID : FEDORA-2012-9104
    Release : Fedora 17
       Type : bugfix
     Status : stable
     Issued : 2012-06-08 23:25:26
       Bugs : 829505 - [abrt] yum-3.4.3-25.fc17: misc.py:754:_decompress_chunked:IOError: [Errno 13] Permission denied: '/var/cache/yum/i386/17/rpmfusion-nonfree/dbc8b87bd0b26f0b4e919b389652b293ffd5bced656b9df70196ffdb1936718b-comps.xml'
Description : - update to HEAD
            : - add supports for parallel downloading
            : - fix BZ 829505

Dependencias resueltas

================================================================================
 Package       Arquitectura     Versión                 Repositorio       Tamaño
================================================================================
Actualizando:
 yum           noarch           3.4.3-26.fc17           updates           1.1 M

Resumen de la transacción
================================================================================
Actualizar  1 Paquete

Tamaño total de la descarga: 1.1 M
Está de acuerdo [s/N]:

7.5. yum-plugin-downloadonly

Esta extensión agrega la opción --downloadonly lo que provoca que solamente se descargue los paquetes y no instalar o actualizar.

7.5.1. Configuración

/etc/yum/pluginconf.d/downloadonly.conf
[main]
enabled=1
enabled = 0|1
Habilita la extensión a nivel general.

7.5.2. Ejemplos de uso

Como ejemplo se usará esta opción con un paquete no instalado.
$ su -c "yum install --downloadonly 3proxy"
Complementos cargados:downloadonly, filter-data, list-data, presto, verify
Skipping filters plugin, no data
Configurando el proceso de instalación
Resolviendo dependencias
Skipping filters plugin, no data
--> Ejecutando prueba de transacción
---> Paquete 3proxy.x86_64 0:0.6.1-9.fc13 definido para ser instalado
--> Resolución de dependencias finalizada

Dependencias resueltas

==========================================================================================
 Paquete                  Arquitectura   Versión        Repositorio                 Tamaño
==========================================================================================
Instalando:
 3proxy                     x86_64       0.6.1-9.fc13     updates                    141 k

Resumen de la transacción
==========================================================================================
Install       1 Package(s)

Tamaño total de la descarga: 141 k
Tamaño instalado: 490 k
Está de acuerdo [s/N]:

Descargando paquetes:
Setting up and reading Presto delta metadata
Processing delta metadata
Package(s) data still to download: 141 k
3proxy-0.6.1-9.fc13.x86_64.rpm                                         | 141 kB     00:04     


exiting because --downloadonly specified
Note ahora que yum termina de forma diferente. Ahora la pregunta es, ¿dónde está el archivo rpm descargado? La respuesta general es que depende de la configuración de yum, pero la configuración de caja Fedora almacena todo en /var/cache/yum/<repositorio>. Como el caso es que el archivo rpm descargado proviene del repositorio [updates] de Fedora x86_64, el nombre del directorio donde se almacenó es /var/cache/yum/x86_64/13/updates/packages.
# ls /var/cache/yum/x86_64/13/updates/packages/
3proxy-0.6.1-9.fc13.x86_64.rpm
Ahí se encuentra el rpm descargado y se puede confirmar que no se ha instalado con :
# rpm -q 3proxy
el paquete 3proxy no está instalado
Es posible definir el directorio destino de la descarga con la opción --downloaddir.
$ su -c "yum install --downloadonly --downloaddir=/root 3proxy"
Uso con actualización de paquetes.
$ su -c "yum --downloadonly upgrade yum-utils"
...
Downloading Packages:
(1/1): yum-utils-1.1.6-1. 100% |=========================|  47 kB    00:02     

exiting because --downloadonly specified 
[root@dica ~]# ls /var/cache/yum/updates/packages/
yum-utils-1.1.6-1.fc7.noarch.rpm

7.5.3. ¿Qué pasa si el paquete tiene dependencias?

$ su -c "yum --downloadonly install crda"                                      
Contraseña: 
Complementos cargados:downloadonly
fedora                                                   | 4.2 kB     00:00     
fedora/primary_db                                        |  14 MB     04:14     
updates-released                                         | 2.6 kB     00:00     
Resolviendo dependencias
--> Ejecutando prueba de transacción
---> Paquete crda.x86_64 0:1.1.2_2011.04.28-2.fc17 debe ser instalado
--> Procesando dependencias: iw para el paquete: crda-1.1.2_2011.04.28-2.fc17.x86_64
--> Procesando dependencias: libnl.so.1()(64bit) para el paquete: crda-1.1.2_2011.04.28-2.fc17.x86_64
--> Ejecutando prueba de transacción
---> Paquete iw.x86_64 0:3.3-1.fc17 debe ser instalado
---> Paquete libnl.x86_64 0:1.1-15.fc17 debe ser instalado
--> Resolución de dependencias finalizada

Dependencias resueltas

================================================================================
 Package      Arquitectura  Versión                         Repositorio   Tamaño
================================================================================
Instalando:
 crda         x86_64        1.1.2_2011.04.28-2.fc17         fedora         24 k
Instalando para las dependencias:
 iw           x86_64        3.3-1.fc17                      fedora         47 k
 libnl        x86_64        1.1-15.fc17                     fedora        117 k

Resumen de la transacción
================================================================================
Instalar  1 Paquete (+2 Paquetes dependientes)

Tamaño total de la descarga: 187 k
Tamaño instalado: 484 k
Está de acuerdo [s/N]:s
Descargando paquetes:
(1/3): crda-1.1.2_2011.04.28-2.fc17.x86_64.rpm           |  24 kB     00:00     
(2/3): iw-3.3-1.fc17.x86_64.rpm                          |  47 kB     00:01     
(3/3): libnl-1.1-15.fc17.x86_64.rpm                      | 117 kB     00:03     
--------------------------------------------------------------------------------
Total                                            27 kB/s | 187 kB     00:06     


exiting because --downloadonly specified 
Nuevamente yum hace lo correcto, descarga todo, pero no instala.
Así que con esta extensión se pueden descargar los paquetes y sus dependencias no instaladas previamente para por ejemplo un computador que no tiene conexión a internet.

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

$ rpm -q httpd
httpd-2.2.3-5

$ su -c "yum --downloadonly install httpd"
...
Nothing to do
Y tiene sentido, ya está instalado. ¿Hay manera de forzar? No. Hablaremos de otro programa para resolver esta situación más adelante.

7.6. yum-plugin-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.
Al intentar una operación yum, siempre ocurre este ordenamiento. Se puede medir su efectividad desactivando y activando la extensión y realizando la misma descarga y procurando que no se use el cache.

7.6.1. Configuración

/etc/yum/pluginconf.d/fastestmirror.conf
[main]
enabled=1
verbose=0
always_print_best_host = true
socket_timeout=3
hostfilepath=timedhosts.txt
maxhostfileage=10
maxthreads=15
#exclude=.gov, facebook
#include_only=.nl,.de,.uk,.ie
enabled = 0|1
Habilita la extensión a nivel general.
verbose = true|false
Imprime más información a la salida del progreso del computo.
always_print_best_host = true|false
Imprime información del mejor espejo al terminar el computo.
hostfilepath = ruta_archivo
Ruta absoluta o relativa al archivo que mantiene la información de los espejos cronometrados, típicamente timedhosts.txt. Si se usa ruta relativa, se usa cachedir como raíz de la ruta.
maxhostfileage = entero 
Máxima edad del archivo cache en días.
maxthreads = entero 
Máxima cantidad de hilos utilizados por la extensión para sus cómputos.
socket_timeout = entero 
Temporización en segundos para conexión de red para el repositorio que se esté probando.

7.6.2. Ejemplos de uso

En este ejemplo se realizará un cómputo entre usar y no usar la extensión para determinar su efectividad.
La prueba consistirá en descargar todos los metadatos para hace un listado extenso, pero antes hay que hacer una limpieza del cache.
# yum clean all
...
Cleaning repos: fedora ...
Limpiando todo
Cleaning up list of fastest mirrors
0 delta-package files removed, by presto
fastestmirror está habilitado en el archivo de configuración y se pasa a cronometrar el tiempo requerido para hacer un listado extenso:
# time yum list available
Loaded plugins: changelog, fastestmirror, langpacks, presto
Determining fastest mirrors
 * fedora: mirror.umd.edu
 * updates: mirror.umd.edu
...
zzuf.x86_64                              0.13-4.20100215.fc17         fedora 

real	3m19.740s
user	0m16.017s
sys	0m1.269s
Ahora se repetirá el experimento deshabilitando fastestmirror, primero se vuelve a limpiar los datos en el cache.
# yum clean all
# time yum list --disableplugin=fastestmirror available
...
zzuf.x86_64                              0.13-4.20100215.fc17         fedora 

real	3m24.678s
user	0m16.125s
sys	0m1.270s
La ganancia ha sido poca. No se conocen los detalles de cómo mide esta extensión la velocidad de los repositorios, pero lo cierto es que no parece muy efectiva. Aún así y de acuerdo a los experimentos realizados, 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 le vaya mejor. Una de las pruebas realizadas fué la de verificar que esta extensión actúa después de armar la lista de servidores sin importar el método 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”.

7.7. yum-plugin-filter-data

Esta extensión agrega las opciones --filter-vendors, --filter-groups, --filter-packagers, --filter-licenses, --filter-arches, --filter-committers, --filter-buildhosts, --filter-baseurls, --filter-package-sizes, --filter-archive-sizes y --filter-installed-sizes. Note que cada paquete debe hacer coincidencia con al menos un patrón/rango en cada categoría, si se especifica alguno.

7.7.1. Configuración

/etc/yum/pluginconf.d/filter-data.conf
[main]
enabled=1
enabled = 0|1
Habilita la extensión a nivel general.

7.7.2. Documentación

Esta extensión incluye una página de manual en línea, consulte con el comando man yum-filter-data.

7.7.3. Ejemplos de uso

Listar actualizaciones menores a 1MB:
$ yum --filter-package-sizes=-1m check-update
Complementos cargados:downloadonly, filter-data, presto, refresh-packagekit
Limiting package lists to filtered ones
Left with 7 of 9 packages, after filters applied

libxcb.x86_64                      1.5-1.fc12                           updates
libxcb-devel.x86_64                1.5-1.fc12                           updates
purple-facebookchat.x86_64         1.64-1.fc12                          updates
system-config-printer.x86_64       1.1.16-8.fc12                        updates
system-config-printer-libs.x86_64  1.1.16-8.fc12                        updates
system-config-printer-udev.x86_64  1.1.16-8.fc12                        updates
xorg-x11-drv-nouveau.x86_64        1:0.0.15-19.20091105gite1c2efd.fc12  updates
Aplicar actualizaciones que Tim Waugh ha suministrado:
$ yum --filter-committers="Tim Waugh *" update
...
Limiting package lists to filtered ones
Left with 6 (+0 related) of 18 packages, after filters applied
...
Dependencias resueltas

===============================================================================
 Paquete                   Arquitectura    Versión           Repositorio Tamaño
===============================================================================
Actualizando:
 system-config-printer          x86_64     1.1.16-8.fc12     updates     434 k
 system-config-printer-libs     x86_64     1.1.16-8.fc12     updates     643 k
 system-config-printer-udev     x86_64     1.1.16-8.fc12     updates      55 k

Resumen de la transacción
===============================================================================
Instalar       0 Paquete(s)
Actualizar       3 Paquete(s)

Tamaño total de la descarga: 1.1 M
Está de acuerdo [s/N]:
Listar actualizaciones de un grupo específico:
$ yum --filter-rpm-groups="App*/Internet" list updates
...
Limiting package lists to filtered ones
Left with 1 of 9 packages, after filters applied
Paquetes actualizados
purple-facebookchat.x86_64                 1.64-1.fc12                  updates
Actualizar un conjunto específico de grupos rpm:
$ yum --filter-rpm-groups="App*/Internet,Dev*/Lib*" update
...
Limiting package lists to filtered ones
Left with 4 (+0 related) of 18 packages, after filters applied
...
Dependencias resueltas

===============================================================================
 Paquete                   Arquitectura Versión            Repositorio   Tamaño
===============================================================================
Actualizando:
 libxcb-devel              x86_64       1.5-1.fc12         updates       139 k
 purple-facebookchat       x86_64       1.64-1.fc12        updates        47 k
Actualizando para las dependencias:
 libxcb                    x86_64       1.5-1.fc12         updates        99 k

Resumen de la transacción
===============================================================================
Instalar       0 Paquete(s)
Actualizar       3 Paquete(s)

Tamaño total de la descarga: 285 k
Está de acuerdo [s/N]:
Listar actualizaciones de grupo específico yum:
$ yum --filter-groups="Development Tools,Server Configuration Tools" list updates
...
Limiting package lists to filtered ones
Left with 2 of 9 packages, after filters applied
Paquetes actualizados
gdb.x86_64                                 7.0.1-26.fc12                updates
system-config-printer.x86_64               1.1.16-8.fc12                updates
Actualizar un conjunto de grupos yum específicos:
$ yum --filter-groups="X Window System,Printing Support" update
...
Limiting package lists to filtered ones
Left with 4 (+0 related) of 18 packages, after filters applied
...
Dependencias resueltas

===============================================================================
 Paquete                   Arquitectura    Versión           Repositorio Tamaño
===============================================================================
Actualizando:
 system-config-printer          x86_64     1.1.16-8.fc12     updates     434 k
 system-config-printer-udev     x86_64     1.1.16-8.fc12     updates      55 k
Actualizando para las dependencias:
 system-config-printer-libs     x86_64     1.1.16-8.fc12     updates     643 k

Resumen de la transacción
===============================================================================
Instalar       0 Paquete(s)
Actualizar       3 Paquete(s)

Tamaño total de la descarga: 1.1 M
Está de acuerdo [s/N]:

7.8. yum-plugin-fs-snapshot

yum-fs-snapshot es una extensión para tomar imagenes de su sistema de archivos antes de ejecutar una transacción yum. Por omisión tomará una imagen (snapshot) de cualquier sistema de archivos que tenga la capacidad, por ahora limitado a los sistemas de archvios BTRFS. Sin embargo todos los sistemas de archivos sobre volumenes lógicos LVM pueden ser utilizados a nivel de bloques utilizando imagenes LVM. El soporte a imagenes LVM se suministra con el propósito de poder hacer una vuelta atrás del sistema (rollback). Note que dichas imagenes LVM sólo serán creadas si el kernel soporta "snapshot-merge" DM.

7.8.1. Configuración

/etc/yum/pluginconf.d/fs-snapshot.conf
[main]
enabled = 1

[lvm]
enabled = 0
# 'lvcreate_size_args' option must specify the snapshot LV size using -L or -l
#lvcreate_size_args = -l 15%ORIGIN
enabled = 0|1
Habilita la extensión a nivel general.

7.8.2. Documentación

# rpm -qd yum-plugin-fs-snapshot
/usr/share/man/man1/yum-fs-snapshot.1.gz
/usr/share/man/man5/yum-fs-snapshot.conf.5.gz

7.9. yum-plugin-keys

Esta extensión agrega los comandos keys, keys-info, keys-data y keys-remove. Estos comandos permiten consultar y remover llaves de firmas.
yum keys [key-wildcard]
Lista las llaves para firmar datos, apodo: keys-list.
yum keys-info [key-wildcard]
Información completa de las llaves para firmar datos.
yum keys-data [key-wildcard]
Muestra la información pública tipo bloque de la llave para firmar datos.
yum keys-remove [key-wildcard]
Remueve una llave pública para firmar datos, apodo: keys-erase.
Actualmente no está disponible agregar manualmente una llave gpg con yum pero ello no es un problema en la gran mayoría de los casos ya que cuando se instala un paquete firmado y la configuración señala la llave, yum install permite importar la llave al momento.

7.9.1. Configuración

/etc/yum/pluginconf.d/keys.conf.
[main]
enabled=1
enabled = 0|1
Habilita la extensión a nivel general.

7.9.2. Ejemplos de uso

Listado de las llaves
$ yum keys
...
Loading mirror speeds from cached hostfile
Key owner             Key email                     Repo                Key ID
Fedora (10 testing)   fedora@fedoraproject.org      installed         0b86274e-48b5dd6f
Fedora (10)           fedora@fedoraproject.org      installed         4ebfc273-48b5dbf3
Fedora (11)           fedora@fedoraproject.org      installed         d22e77f2-49ee1409
Fedora (12)           fedora@fedoraproject.org      installed         57bbccba-4a6f97af
...
keys done
Información específica de una llave
# yum keys-data 4ebfc273-48b5dbf3 
Complementos cargados:aliases, changelog, dellsysidplugin2, fastestmirror, filter-data, keys, list-data, presto, refresh-packagekit, verify
Loading mirror speeds from cached hostfile
Type     : GPG
Key owner: Fedora (10) 
Key email: fedora@fedoraproject.org
Key ID   : 4ebfc273
Repo     : installed
Created  : Wed Aug 27 18:27:55 2008
Raw Data :
  -----BEGIN PGP PUBLIC KEY BLOCK-----
  Version: rpm-4.6.0-rc1 (NSS-3)
  
  mQGiBEi12/MRBADL6fpbRejYViiVzY/Y0T6pmgChOykrsq1oc9mX9+ss1lZZit1z
  DRrgvOYG67wnRQaskXnKulw3XoNEAT/OjCNzDwrS3gMbHaz+T9wQN5WeO52ihozp
  ZLo/aNnIW9a7W5KxMyrmDobo5919wjiHXFXbVyH5kgm1B36ZG09/HlwtpwCgyW/Z
  qczIsg9OhIrwYZRUJ8BHNdED/R6SFCF2p4AqMkpo6bO9+N5BLvTRPythuWyfTpOa
  XGLPDzkDisIW72DDmCrVI4RQnLW5u0xko7L1o8zwOmmFg6C8HLeeHpfg40MVLDDJ
  OtX1UTPmKms6eqKYWn15266y8Bga5QnVNGMRRPXK0YJhog8K4h7MV5i/B7F2Byhu
  rcT2A/42Ikj3qoA7mxIEgU3DDrxboKWZghAIWaMn8xqIl0/fIMmx/x3k6lDakQRq
  +E6kdTvrWxsKbu5ESTzCDIjhHyVIECLGJ+EbB+etIa3N1+ek3gKEBcDHBtvbdc57
  NcYCWvDvL3O/SNpkKetm4kzrvAqL0Q6mvmGjSY4odoIPczhSlbQmRmVkb3JhICgx
  MCkgPGZlZG9yYUBmZWRvcmFwcm9qZWN0Lm9yZz6IYAQTEQIAIAUCSLXb8wIbAwYL
  CQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEL8ib8xOv8JzaaEAnjrJTa3QCZr9C91r
  MYJ2uNQvMQ5rAKCfqGK2Q2AVxK3pK1QHtc972g5gTrkEDQRItdvzEBAAz4E9yA4G
  epLon5F70Ak4/OgpJqHvXFN2xMGazpExkh+3/bjil3/J6rucXtLutPP4kIIu6LgW
  sbDF3HUafWpeOQI7YxlMwLXTfZ0Mevrsm4wEBSYoC8U4zygVyz2m6Rz2i62hbj/W
  AYIayW2sxg7VwbFoJxjjZfw2d6jTNQW9EI3GVffYUN+V7BSeQw7Y6v18pxFUxCur
  qOGXwNSUdUUmdh1h2O+CmvdSiYJApEU/fBHNioTDNVynTVN1ayobTs/5xANnpG+K
  7Lhiz2HrY6tTv34DaDMwv2aMoDxq5BTfi+H7rTzXlpF5fAjHNGsXQIJjKhEgpkHo
  hr+in0s6CsDpERpleS8FKIhjNwcGksoviVpEItnsHTOV0yOV5ZiuZpZ8M6ZS4Vf/
  JhvRCK2CeCkeyaAgxsGngN/QeTHE4e35m/dqUnBrUKRNkpcJ8jJO11eVNj0Xe/EG
  Vcy345TvIUCYG6kr1wJJt0xJm1wDricUHnR2X5motCOT/k6BF0ucofvcy1Ou62+N
  DKgI0E/o3BMo9XfPJVteheMOhwRMfNwmbFdr13rKk/GZyVeZmLwlFx1byH5r4J5T
  4vE9JmgeM2bVu/TiMFlBszQM39xcE3SycjX5knBEglzad23kzyIerlv8RZUdQJ/L
  qfmRXc+0x0H565YLwGC79XCKUp7dlGBYhL8ABAsP/1DrF/SzkNki1KWMeK8DP34q
  GBDWtUIVTiMqHZclUylHRT3bp2Ae2/+xy7NAy/Y/G5aZqkAMvaqiG3ps5LDVJo+1
  WAQBOgnwrZtVn6FU6H59a4h79hKoFoBEI1gd9XKzzgA+RF4cEHJiuFQh2boxdr7/
  n64tzrS6HkUcD15wIcYoyl6iOHBfbazbyZifeKMu0USkrfzLRLPec2V3p9bXqg1W
  h+SBCpD9uhSzBeKs636ipOL3WZ9UUMQMPNKyyFxx9cKcZY9aP0Leub2kvnFIZiG7
  ljbRP1dNJlhimTxTjZzfOicxu5MaSTyIlg9ZVEPXOmPwi/a8POP82pLZYZDi8Scx
  zQFNi+22VdSrQkj6Jkan3GoqBOBoSv9iQ7EJp7wpMBRhoacW3wtJ4m0+cAR8IX9X
  6DTklAU9zoZzdvg063GnjgPCi3Ohwl2jvM1NUcn4vdI5UUTd7DAPaysueJPqfFCg
  CSgrOcCyfQL4vL0iRp82NNQtUS9ZdyUw8t6w/GuFnsymBSTqt2t1n+mhS7RAejaV
  1QV/KmwijbaVh2LjTP0YzPWZcBy8XHzOsnuWufFmRTgFOUmWT9o82RSde6ubvnDN
  WfWWGzriIpJd3JCBpkVb2aiEkU4958Ai36I/splnxOrAJZV/4ZIHHnGMwn23/DNh
  gX4TCgPMjjjT0hmTfDpliEkEGBECAAkFAki12/MCGwwACgkQvyJvzE6/wnM+4wCe
  KkKsIfsmCT0MpuYxHh4vRS/ix58AoLfjES8VpN+3ku9hC3QT97Fa/bK4
  =s6iX
  -----END PGP PUBLIC KEY BLOCK-----

keys-data done
Remoción de una llave
# yum keys-remove f6777c67-45e5b1b9
...
--> Ejecutando prueba de transacción
---> Paquete gpg-pubkey.noarch 0:f6777c67-45e5b1b9 definido para ser eliminado
--> Resolución de dependencias finalizada

Dependencias resueltas

===========================================================================================
 Paquete            Arquitectura             Versión         Repositorio             Tamaño
===========================================================================================
Eliminando:
 gpg-pubkey               noarch   f6777c67-45e5b1b9           installed                0.0  

Resumen de la transacción
===========================================================================================
Eliminar          1 Paquete(s)
Reinstalar        0 Paquete(s)
Desactualizar     0 Paquete(s)

Está de acuerdo [s/N]:s
Descargando paquetes:
Ejecutando el rpm_check_debug
Ejecutando prueba de transacción
La prueba de transacción ha sido exitosa
Ejecutando transacción
  Eliminando     : gpg-pubkey-f6777c67-45e5b1b9.noarch                                                                                                   1/1 

Eliminado(s):
  gpg-pubkey.noarch 0:f6777c67-45e5b1b9                                                                                                                     
¡Listo!

7.10. yum-plugin-list-data

Esta extensión agrega los comandos:
  • list-vendors
  • info-vendors
  • list-rpm-groups
  • info-rpm-groups
  • list-packagers
  • info-packagers
  • list-licenses
  • info-licenses
  • list-arches
  • info-arches
  • list-committers
  • info-committers
  • list-buildhosts
  • info-buildhosts
  • list-baseurls
  • info-baseurls
  • list-package-sizes
  • info-package-sizes
  • list-archive-sizes
  • info-archive-sizes
  • list-installed-sizes
  • info-installed-sizes
  • list-groups
  • info-groups
Todos ellos toman los mismos argumentos que los comando list e info. La diferencia entre las variantes list e info es que info lista todos los paquetes bajo cada agregado.
Sintáxis ejemplo:
yum list-vendors [PACKAGE|all|installed|updates|extras|obsoletes|recent]
Muestra los datos agregados en el atributo vendor de un grupo de paquetes.
yum info-vendors [PACKAGE|all|installed|updates|extras|obsoletes|recent]
Muestra los datos agregados en el atributo vendor de un grupo de paquetes y lista todos los paquetes baja cada uno.

7.10.1. Documentación

Esta extensión incluye una página de manual en línea, consulte con el comando man yum-list-data.

7.10.2. Configuración

/etc/yum/pluginconf.d/list-data.conf
[main]
enabled=1

7.10.3. Ejemplos de uso

Averiguando el grupo rpm de un paquete
	
$ yum list-rpm-groups yum-list-data
...
==================== Installed Packages ====================
System Environment/Base      1 (100%)
==================== Available Packages ====================
System Environment/Base      1 (100%)
list-rpm-groups done
Tamaños de los paquetes cuando son instalados
# yum info-installed-sizes
...
[    1B -  10KB ]      886 (  6%)
  AllegroOGG-devel-1.0.3-4.fc9.i386                               6.2 k ( 6,363)
  Frodo-gui-4.1b-5.fc10.i386                                      8.8 k ( 9,038)
  Io-language-mysql-20071010-6.fc10.i386                          9.8 k (10,064)
  Io-language-postgresql-20071010-6.fc10.i386                     5.0 k ( 5,164)
...
# yum info-installed-sizes firefox
...
==================== Installed Packages ====================
-- Unknown --      1 (100%)
  firefox-3.0.5-1.fc10.i386

==================== Available Packages ====================
[  10MB -  50MB ]        2 (100%)
  firefox-3.0.5-1.fc10.i386                                    14 M (15,028,447)
  firefox-3.0.4-1.fc10.i386                                    14 M (14,831,870)

info-installed-sizes done
# yum info-installed-sizes firefox-3.0.5
==================== Installed Packages ====================
-- Unknown --      1 (100%)
  firefox-3.0.5-1.fc10.i386

==================== Available Packages ====================
[  10MB -  50MB ]        1 (100%)
  firefox-3.0.5-1.fc10.i386                                    14 M (15,028,447)

info-installed-sizes done

7.11. yum-plugin-local

Cuando esta extensión está instalada y habilitada, copiará automáticamente todos los paquetes instalados a un repositorio en el sistema de archivos local y reconstruye dicho repositorio. Esto significa que cualquier paquete que ha descargado e instalado con yum siempre existirá, inclusive si el repositorio original lo remueve, en consecuencia, pueden ser desinstalado, vuelto a instalar, reducido de versión, etc.

7.11.1. Configuración

Los archivos de configuración suministrados son:
  • /etc/yum.repos.d/_local.repo
  • /etc/yum/pluginconf.d/local.conf
/etc/yum/pluginconf.d/local.conf
		
[main]
enabled=1
# Path to the local repository.

# Debe remover el comentario de esta línea que sigue para que funcione
repodir = /var/lib/yum/plugins/local

# Createreop options. See man createrepo
[createrepo]
# This option lets you disable createrepo command. This could be useful
# for large repositories where metadata is priodically generated by cron
# for example. This also has the side effect of only copying the packages
# to the local repo directory. 
enabled = true

# If you want to speedup createrepo with the --cachedir option. Eg.
# cachedir = /tmp/createrepo-local-plugin-cachedir
# If you need to override the checksum with the --checksum option. Eg.
# checksum = sha

quiet = false
verbose = true
skip_stat = false
unique_md_filenames = true
update = true
databases = true

# createrepo deltarpm support - set to true to enable.
# enable_deltas = false

# How many delta packages to build?
# deltas = 1

# Where to look for old packages? By default this is repodir. You can
# also specify a different directory which holds older packages.
# oldpackagedirs = /var/lib/yum/plugins/local
enabled = 0|1
Habilita la extensión a nivel general.
quiet = true|false
Silencioso.
verbose = true|false
Reportar muchos detalles.
skip_stat = true|false
Evitar verificación de archivos/directorios con stat.
unique_md_filenames = true|false
Incluye la suma de verificación de archivo en el nombre de archivo de metadatos.
update = true|false
Si ya existen los metadatos en el directorio correspondiente y el rpm no ha cambiado desde que se generaron los metadatos, puesto a true implica que se reusarán estos metadatos en vez de recalcularlos.
databases = true|false
Genera bases de datos sqlite para yum.
/etc/yum.repos.d/_local.repo
Este archivo se crea automáticamente al momento de instalar un nuevo paquete y que la extensión esté habilitada. Una vez creado, puede personalizarlo si lo desea.
[_local]
name=Automatic local repo. (managed by the "local" yum plugin).
baseurl=file:/var/lib/yum/plugins/local
enabled=1
gpgcheck=true
#  Metadata expire could be set to "never" because the local plugin will
# automatically cause a cache refresh when new packages are added. However
# it's really cheap to check, and this way people can dump stuff in whenever
# and it never gets out of sync. for long.
metadata_expire=1h
#  Make cost smaller, as we know it's "local". If you really want to be sure,
# you can do this ... but the name will do pretty much the same thing, and that
# way we can also see the other packages (with: --showduplicates list).
# cost=500

7.11.2. Ejemplos de uso

Creación del repo local con yum install
# yum install zziplib-devel
...
Dependencias resueltas

=============================================================================
 Paquete             Arquitectura Versión                Repositorio   Tamaño
=============================================================================
Instalando:
 zziplib-devel       x86_64       0.13.49-8.fc12         fedora        126 k
Instalando para las dependencias:
 SDL-devel           x86_64       1.2.14-8.fc13          updates       362 k
 zziplib             x86_64       0.13.49-8.fc12         fedora         64 k

Resumen de la transacción
=============================================================================
Install       3 Package(s)

Tamaño total de la descarga: 552 k
Tamaño instalado: 1.9 M
Está de acuerdo [s/N]:s
Descargando paquetes:
...
== Rebuilding _local repo. with 3 new packages ==
Scanning old repo data
Previous repo file missing: 
1/3 - SDL-devel-1.2.14-8.fc13.x86_64.rpm
2/3 - zziplib-0.13.49-8.fc12.x86_64.rpm
3/3 - zziplib-devel-0.13.49-8.fc12.x86_64.rpm

Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Starting other db creation: Fri Aug 27 09:59:28 2010
Ending other db creation: Fri Aug 27 09:59:29 2010
Starting filelists db creation: Fri Aug 27 09:59:29 2010
Ending filelists db creation: Fri Aug 27 09:59:29 2010
Starting primary db creation: Fri Aug 27 09:59:29 2010
Ending primary db creation: Fri Aug 27 09:59:30 2010
Sqlite DBs complete
== Done rebuild of _local repo. ==
Ejecutando el rpm_check_debug
Ejecutando prueba de transacción
La prueba de transacción ha sido exitosa
Ejecutando transacción
  Instalando     : zziplib-0.13.49-8.fc12.x86_64                         1/3 
  Instalando     : SDL-devel-1.2.14-8.fc13.x86_64                        2/3 
  Instalando     : zziplib-devel-0.13.49-8.fc12.x86_64                   3/3 

Instalado:
  zziplib-devel.x86_64 0:0.13.49-8.fc12                                      

Dependencia(s) instalada(s):
  SDL-devel.x86_64 0:1.2.14-8.fc13      zziplib.x86_64 0:0.13.49-8.fc12     

¡Listo!
Remoción y reinstalación
# yum remove SDL-devel
...
Ejecutando transacción
  Eliminando     : zziplib-devel-0.13.49-8.fc12.x86_64                   1/2 
  Eliminando     : SDL-devel-1.2.14-8.fc13.x86_64                        2/2 

Eliminado(s):
  SDL-devel.x86_64 0:1.2.14-8.fc13                                           

Dependencia(s) eliminada(s):
  zziplib-devel.x86_64 0:0.13.49-8.fc12                                      

¡Listo!
# yum install SDL-devel
Complementos cargados:aliases, appmarket, auto-update-debuginfo,
                    : downloadonly, filter-data, keys, list-data, local,
                    : presto, verify
_local                                                | 3.0 kB     00:00 ... 
_local/primary_db                                     | 4.0 kB     00:00 ... 
rubyera                                               | 3.2 kB     00:00 ... 
Skipping filters plugin, no data
Configurando el proceso de instalación
Resolviendo dependencias
Skipping filters plugin, no data
--> Ejecutando prueba de transacción
---> Paquete SDL-devel.x86_64 0:1.2.14-8.fc13 definido para ser instalado
--> Resolución de dependencias finalizada

Dependencias resueltas

=============================================================================
 Paquete           Arquitectura   Versión               Repositorio    Tamaño
=============================================================================
Instalando:
 SDL-devel         x86_64         1.2.14-8.fc13         _local         362 k

Resumen de la transacción
=============================================================================
Install       1 Package(s)

Tamaño total de la descarga: 362 k
Tamaño instalado: 1.5 M
Está de acuerdo [s/N]:
Note que ahora no necesita conectividad de red para tener acceso a los paquetes que ha instalado previamente y que se está utilizando el repositorio _local. También aprecie que en este repositorio local se apilarán todos los paquetes instalados sin distinción de su repositorio origen, no es un espejo de un repositorio en particular y que igualmente puede limpiar su cache sin afectar el contenido de este repositorio.

7.12. yum-plugin-merge-conf

Esta extensión agrega la opción --merge-conf a la línea de comando. Con esta opción yum preguntará qué hacer con los archivos de configuración que hayan cambiado al actualizar un paquete.
Las opciones disponibles son:
diff the two versions (d)
Visualizar las diferencias y volver al ménu de ocpiones (presione q).
do the default RPM action (q)
Ejecutar la acción por omisión RPM, los nuevos archivos de configuración son instalados con el sufijo .rpmnew y los archivos actuales de configuración no son modificados.
install the package's version (i)
Renombra los archivos de configuracióna actuales con el sufijo .rpmsave e instala los archivos de configuración provistos por el paquete.
merge interactively with vim (v)
Permite fusionar interactivamente los archivos utilizando vim.
background this process and examine manually (z)
Pone el proceso de instalación en el fondo y permite editar ambos archivos y resolver las diferencias manualmente. Se vuelve al proceso de instalación y se vuelve a presentar las mismas opciones anteriores para tomar la decisión.
Para volver al proceso de instalación ejecute el comando exit.

7.12.1. Configuración

/etc/yum/pluginconf.d/merge-conf.conf
[main]
enabled=1

# Set to true, to always get the output (removes the cmd line arg)
always=false
enabled = 0|1
Habilita a nivel global la extensión.
always = true|false
Remueve la opción de la línea de comandos y siempre preguntará qué hacer con los archivos de configuración que hayan cambiado.

7.12.2. Ejemplos de uso

En este ejemplo invocaremos vim para resolver la fusión de parámetros.
	
$ su -c "yum --merge-conf update squid"
...
Dependencias resueltas
=========================================================================================
 Paquete             Arquitectura         Versión                   Repositorio    Tamaño
=========================================================================================
	 Actualizando:
 squid               x86_64               7:3.1.8-1.fc13               updates     1.6 M

 Resumen de la transacción
=========================================================================================
 Upgrade       1 Package(s)

 Tamaño total de la descarga: 1.6 M
 Está de acuerdo [s/N]:
...
 Ejecutando transacción
 Actualizando   : 7:squid-3.1.8-1.fc13.x86_64                                         1/2 
	  warning: /etc/squid/squid.conf created as /etc/squid/squid.conf.rpmnew
 Limpieza       : 7:squid-3.1.1-4.fc13.x86_64                                         2/2 

	   Package squid: merging configuration for file "/etc/squid/squid.conf":
	   By default, RPM would keep your local version and rename the new one to /etc/squid/squid.conf.rpmnew
	   What do you want to do ?
	   - diff the two versions (d)
	   - do the default RPM action (q)
	   - install the package's version (i)
	   - merge interactively with vim (v)
	   - background this process and examine manually (z)
	  Your answer ?  v
Pantallazo de vim fusionando configuraciones
La llamada para fusión se hace utilizando la aplicación vimdiff que permite visualizar las diferencias claramente.

7.13. yum-plugin-post-transaction-actions

Extensión yum es para ejecutar comandos arbitrarios cuando se actúa sobre ciertos paquetes. Esta extensión permite al usuario ejecutar acciones arbitrarias inmediatamente después de una transacción sobre paquetes específicos.

7.13.1. Configuración

/etc/yum/pluginconf.d/post-transaction-actions.conf
[main]
enabled = 1
actiondir = /etc/yum/post-actions/
enabled = 0|1
Habilita a nivel global la extensión.
actiondir
Ruta donde buscar archivos con acciones específicas.

7.13.2. Ejemplos de uso

/usr/share/doc/yum-plugin-post-transaction-actions-1.1.31/sample.action
#action_key:transaction_state:command
# action_key can be: pkgglob, /path/to/file (wildcards allowed)
# transaction_state can be: install,update,remove,any
# command can be: any shell command
#  the following variables are allowed to be passed to any command:
#   $name - package name
#   $arch - package arch
#   $ver - package version
#   $rel - package release
#   $epoch - package epoch
#   $repoid - package repository id
#   $state - text string of state of the package in the transaction set
#
# file matches cannot be used with removes b/c we don't have the info available

*:install:touch /tmp/$name-installed
zsh:remove:touch /tmp/zsh-removed
zsh:install:touch /tmp/zsh-installed-also
/bin/z*h:install:touch /tmp/bin-zsh-installed
z*h:any:touch /tmp/bin-zsh-any
Copiando este archivo de muestra en /etc/yum/post-actions/ , al instalar zsh se obtiene la siguiente salida:
$ su -c "yum install zsh"
...
  Instalando     : zsh-4.3.10-4.fc12.x86_64                                                        
...
Running post transaction command: touch /tmp/bin-zsh-any
Running post transaction command: touch /tmp/zsh-installed
Running post transaction command: touch /tmp/bin-zsh-installed
Running post transaction command: touch /tmp/zsh-installed-also
...
Y al remover zsh:
$ su -c "yum remove zsh"
...
  Eliminando     : zsh-4.3.10-4.fc12.x86_64                                                        
...
Running post transaction command: touch /tmp/bin-zsh-any
Running post transaction command: touch /tmp/zsh-removed
...

7.14. yum-plugin-priorities

Esta extensión permite a los repositorios tener diferentes prioridades. Los paquetes en un repositorio de baja prioridad no pueden remplazar paquetes instalados desde repositorios con prioridad superior, ni siquiera si éste tiene una versión actualizada.

7.14.1. Configuración

/etc/yum/pluginconf.d/priorities.conf
[main]
enabled = 1
check_obsoletes=1
enabled = 0|1
Habilita a nivel global la extensión.
check_obsoletes=1|0
Si no desea que los paquetes de repos de baja prioridad con la especificación de obsolescer a otro antiguo con nombre diferente (obsoletes), coloque esta opción a 1.
only_samearch=Y|N
Por omisión esta extensión excluye paquetes de los repositorios de baja prioridad basándose en el nombre del paquete. Si desea excluir paquetes basados en el nombre del paquete y en la arquitectura, abilite este booleano.
Se puede habilitar temporalmente esta opción con la opción en la línea de comandos --samearch-priorities.
Luego cada archivo .repo en /etc/yum.repos.d/ puede incluir priority=N para indicar la prioridad, donde N es un entero entre 1 y 99. El valor 1 tiene la máxima prioridad y 99 la mínima. Por omisión el repositorio hereda prioridad mínima con N=99.

7.14.2. Ejemplos de uso

En la configuración siguiente se da máxima prioridad a los repositorios base de Fedora, una configuración más que recomendada si usa repositorios de terceros.
/etc/yum.repos.d/fedora.repo
[fedora]
name=Fedora $releasever - $basearch
failovermethod=priority
baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
priority=1
/etc/yum.repos.d/fedora-updates.repo
[updates]
name=Fedora $releasever - $basearch - Updates
failovermethod=priority
baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/$releasever/$basearch/
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&arch=$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
priority=1

7.15. yum-plugin-protectbase

Esta extensión permite que ciertos repositorios sean protegidos. Los paquetes en los repositorios protegidos no pueden ser sobrescritos por paquetes en repositorios no protegidos incluso si el repositorio no protegido tiene una versión más reciente.

7.15.1. Configuración

/etc/yum/pluginconf.d/protectbase.conf
		
[main]
enabled = 1
enabled = 0|1
Habilita a nivel global la extensión.
Luego hay que configurar los repositorios en los archivos .repo para definir cuáles estarán protegidos y cuáles no agregando protect=1 o protect=0.

7.15.2. Ejemplos de uso

En este ejemplo se protegen los paquetes de los repositorios fedora-updates y fedora de actualizaciones disponibles para dichos paquetes desde repositorios no protegidos.
/etc/yum.repos.d/fedora.repo
[fedora]
name=Fedora $releasever - $basearch
failovermethod=priority
baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch
enabled=1
metadata_expire=7d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
protect=1
/etc/yum.repos.d/fedora-updates.repo
[updates]
name=Fedora $releasever - $basearch - Updates
failovermethod=priority
baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/$releasever/$basearch/
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&arch=$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
protect=1
Esta configuración es altamente recomendaba para aquellos que gustan de agregar repositorios adicionales de terceros, esto les protegerá de romper la base de Fedora y poder garantizar las actualizaciones a nuevas versiones oficiales.

7.16. yum-plugin-refresh-updatesd

yum-refresh-updatesd le indica a yum-updatesd que verifique las actualizaciones disponibles cuando yum termine. De esta forma si ejecuta por ejemplo, yum list updates y existe una nueva versión disponible de por ejemplo zsh, todas las aplicaciones o notificaciones provistas por yum-updatesd serán despachadas casi instantáneamente para reflejar este hecho.

7.16.1. Configuración

/etc/yum/pluginconf.d/refresh-updatesd.conf
[main]
enabled=1
enabled = 0|1
Habilita la extensión a nivel general.

7.17. yum-plugin-remove-with-leaves

Esta extensión remueve las dependencias sin uso que hayan sido incorporadas por una instalación de paquete y que de otra manera no serían removidas. Ayuda a mantener un sistema limpio de librerías y paquetes sin uso.
Esta extensión agrega las siguientes opciones para el comando yum remove:
--leaves-exclude-bin
No remueve los paquetes hoja que contienen binarios ejecutables.
--remove-leaves
Remueve las dependencias innecesarias para los otros paquetes.

7.17.1. Configuración

/etc/yum/pluginconf.d/remove-with-leaves.conf
[main]
enabled = 1
#exclude_bin = 1
#remove_always = 1
enabled = 0|1
Habilita la extensión a nivel general.
exclude_bin = 1|0
No remueve paquetes hoja con binarios.
remove_always = 1|0
Siempre remueve los paquetes hoja.

7.17.2. Ejemplos de uso

$ su -c "yum remove --remove-leaves couchdb"
...
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package couchdb.i586 0:0.10.0-1.fc11 set to be erased
--> Finished Dependency Resolution
removing erlang-R12B-5.7.fc11.i586. It is not required by anything else.      
removing libicu-devel-4.0.1-5.fc11.i586. It is not required by anything else.
removing js-1.70-8.fc11.i586. It is not required by anything else.
removing unixODBC-2.2.14-2.fc11.i586. It is not required by anything else.
--> Running transaction check
---> Package erlang.i586 0:R12B-5.7.fc11 set to be erased
---> Package js.i586 0:1.70-8.fc11 set to be erased
---> Package libicu-devel.i586 0:4.0.1-5.fc11 set to be erased
---> Package unixODBC.i586 0:2.2.14-2.fc11 set to be erased
--> Finished Dependency Resolution

Dependencies Resolved

===========================================================================
 Package           Arch       Version      Repository           Size
===========================================================================
Removing:
 couchdb         i586     0.10.0-1.fc11    installed           1.4 M
 erlang          i586     R12B-5.7.fc11    installed            89 M
 js              i586       1.70-8.fc11    installed           884 k
 libicu-devel    i586      4.0.1-5.fc11    installed           3.0 M
 unixODBC        i586     2.2.14-2.fc11    installed           1.1 M

Transaction Summary
===========================================================================
Remove        5 Package(s)
Reinstall     0 Package(s)
Downgrade     0 Package(s)

Is this ok [y/N]:
Note que este listado de paquetes es exactamente el mismo que cuando realiza la instalación y no tiene las dependencias preinstaladas. Ahora compare con el proceso normal de yum remove:
$ su -c "yum remove  couchdb"
...
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package couchdb.i586 0:0.10.0-1.fc11 set to be erased
--> Finished Dependency Resolution

Dependencies Resolved

============================================================================
 Package         Arch         Version      Repository           Size
============================================================================
Removing:
 couchdb         i586     0.10.0-1.fc11   installed             1.4 M

Transaction Summary
============================================================================
Remove        1 Package(s)
Reinstall     0 Package(s)
Downgrade     0 Package(s)

Is this ok [y/N]:

7.18. yum-plugin-rpm-warm-cache

Esta extensión lee los archivos rpmdb y los coloca en el cache del sistema antes de acceder directamente a rpmdb. En algunos casos esto debería acelerar el acceso a la informaciónen rpmdb.

7.18.1. Configuración

/etc/yum/pluginconf.d/rpm-warm-cache.conf
[main]
enabled = 1

7.19. yum-plugin-security

Esta extensión agrega las opciones --security, --cve, --bz y --advisory a yum, y agrega los comandos list-security e info-security. Las opciones hacen posible limitar el listado/actualización de paquetes a los relevantes por seguridad. Los comandos dan la información de seguridad.

7.19.1. Configuración

/etc/yum/pluginconf.d/security.conf
[main]
enabled=1
enabled = 0|1
Habilita la extensión a nivel general.

7.19.2. Ejemplos de uso

Listando información de seguridad.
$ yum list-security

FEDORA-2012-0347  bugfix      PackageKit-0.6.21-2.fc16.x86_64
FEDORA-2012-0347  bugfix      PackageKit-command-not-found-0.6.21-2.fc16.x86_64
...
...
FEDORA-2011-17584 enhancement claws-mail-3.8.0-1.fc16.x86_64
FEDORA-2011-17584 enhancement claws-mail-plugins-geolocation-3.8.0-1.fc16.x86_64
...
...
FEDORA-2012-0363  security    kernel-3.1.8-2.fc16.x86_64
FEDORA-2012-0480  security    kernel-3.1.9-1.fc16.x86_64
...
...
updateinfo list done
Información de seguridad de las actualizaciones.
$ yum info-security

===============================================================================
  PackageKit-0.6.21-2.fc16
===============================================================================
  Update ID : FEDORA-2012-0347
    Release : Fedora 16
       Type : bugfix
     Status : stable
     Issued : 2012-01-11 05:19:51
       Bugs : 771746 - Software Update claims all packages are untrusted
Description : This update fixes an issue where the PackageKit yum backend
            : mistakenly regarded trusted packages as untrusted
            : and thus required authorization from the user for
            : installing them.

===============================================================================
  libreoffice-3.4.4.2-7.fc16
===============================================================================
  Update ID : FEDORA-2012-0243
    Release : Fedora 16
       Type : bugfix
     Status : stable
     Issued : 2012-01-07 22:27:49
       Bugs : 533318 - openoffice oomath does not handle accents in MathML
Description : fix some printing edge case crashes and improve mathml import

===============================================================================
  boost-1.47.0-6.fc16
===============================================================================
  Update ID : FEDORA-2012-0106
    Release : Fedora 16
       Type : bugfix
     Status : stable
     Issued : 2012-01-05 20:37:37
       Bugs : 771370 - Boost math libraries still needed
Description : Integrated the (Boost.TR1/Math) patch "upstream" (into the
            : CMake-ified Boost GitHub-based repository:
            : https://github.com/pocb/boost)
...
...
Información de seguridad sobre una actualización específica.
$ yum info-sec FEDORA-2012-0106

===============================================================================
  boost-1.47.0-6.fc16
===============================================================================
  Update ID : FEDORA-2012-0106
    Release : Fedora 16
       Type : bugfix
     Status : stable
     Issued : 2012-01-05 20:37:37
       Bugs : 771370 - Boost math libraries still needed
Description : Integrated the (Boost.TR1/Math) patch "upstream" (into the
            : CMake-ified Boost GitHub-based repository:
            : https://github.com/pocb/boost)
updateinfo info done

Actualizando sólo por seguridad.
$ su -c "yum --security update"
...
Resolviendo dependencias
Skipping filters plugin, no data
Limiting packages to security relevant ones                           <-*.*->
13 package(s) needed (+0 related) for security, out of 192 available  <-*.*->
--> Ejecutando prueba de transacción
---> Paquete kernel.x86_64 0:3.1.9-1.fc16 debe ser instalado
---> Paquete kernel-doc.noarch 0:3.1.6-1.fc16 debe ser actualizado
...
...
--> Paquete wordpress.noarch 0:3.3-1.fc16 debe ser actualizado
---> Paquete wordpress.noarch 0:3.3.1-1.fc16 debe ser una actualización
--> Resolución de dependencias finalizada
--> Ejecutando prueba de transacción
---> Paquete kernel.x86_64 0:3.1.4-1.fc16 debe ser eliminado
--> Resolución de dependencias finalizada

Dependencias resueltas

================================================================================
 Paquete              Arquitectura Versión                 Repositorio    Tamaño
================================================================================
Instalando:
 kernel               x86_64       3.1.9-1.fc16            updates         26 M
Actualizando:
 kernel-doc           noarch       3.1.9-1.fc16            updates        9.7 M
 kernel-headers       x86_64       3.1.9-1.fc16            updates        776 k
 ...
 ...
 ruby-ri              x86_64       1.8.7.357-1.fc16        updates        2.4 M
 rubygem-rack         noarch       1:1.3.0-2.fc16          updates        552 k
 wordpress            noarch       3.3.1-1.fc16            updates        3.4 M
Eliminando:
 kernel               x86_64       3.1.4-1.fc16            @updates       112 M

Resumen de la transacción
================================================================================
Instalar      1 Package
Upgrade      12 Packages
Remove        1 Package

Tamaño total de la descarga: 48 M
Está de acuerdo [s/N]:

7.20. yum-plugin-show-leaves

Extensión yum que muestra los paquetes hoja recientemente instalados y paquetes que se han convertido en hoja después de una transacción.

7.20.1. Configuración

/etc/yum/pluginconf.d/show-leaves.conf
[main]
enabled=1
enabled = 0|1
Habilita la extensión a nivel general.

7.20.2. Ejemlos de uso

Notificación al instalar.
		
$ su -c "yum install zsh"
...
Dependencias resueltas

===============================================================================
 Paquete       Arquitectura     Versión                 Repositorio      Tamaño
===============================================================================
Instalando:
 zsh           x86_64           4.3.10-4.fc12           fedora           2.0 M

Resumen de la transacción
===============================================================================
Instalar       1 Paquete(s)
Actualizar       0 Paquete(s)

Tamaño total de la descarga: 2.0 M
Está de acuerdo [s/N]:y
...
  Instalando     : zsh-4.3.10-4.fc12.x86_64                                1/1 

Instalado:
  zsh.x86_64 0:4.3.10-4.fc12                                                   

¡Listo!
New leaves:
  zsh.x86_64                 << Nuevo paquete hoja, notificación

7.21. yum-plugin-tmprepo

Esta extensión agrega la opción --tmprepo que toma un url que apunta a un archivo .repo, lo descarga y habilita para una única transacción. Esta extensión intenta asegurar que los repositorios temporales se usen de forma segura, por omisión, no permite deshabilitar la verificación gpg.
Esta extensión agrega las siguientes opciones:
--tmprepo=[url]
Habilita o crea uno o más repositorios temporales a partir de los URLs que apunten a archivos .repo, repomd.xml, archivo local repomd.xml o directorio local de repositorio.
--tmprepo-keep-created
Mantiene el repositorio configurado.

7.21.1. Configuración

/etc/yum/pluginconf.d/tmprepo.conf
[main]
enabled=1
#  You can uncomment this to allow tmporary repositories to disable/alter
# gpg checking. This is not recommended.
#  You might want to use pkgs_gpgcheck=false, but if you do understand
# what the security implications are. Here are the defaults:
#
#  pkgs_gpgcheck=True
#  repo_gpgcheck=False
#  pkgs_local_gpgcheck=true # Inherits from: pkgs_gpgcheck
#  repo_local_gpgcheck=False
#
# cleanup=false
enabled = 0|1
Habilita la extensión a nivel general.
pkgs_gpgcheck=false
Deshabilita la verificación de firmas de los paquetes.

7.21.2. Ejemplo de uso

Con yum-plugin-tmprepo habilitado y configurado con pkgs_gpgpcheck=false el ejemplo muestra como usar un repositorio remoto sin instalar permanentemente el archivo .repo:
$ su -c "yum --tmprepo=http://repos.fedorapeople.org/repos/gomix/fox/fedora-fox.repo install adie"

Complementos cargados:aliases, presto, refresh-packagekit, tmprepo
Configurando el proceso de instalación
Resolviendo dependencias
--> Ejecutando prueba de transacción
---> Paquete adie.x86_64 0:3.0.0-1.fc13 definido para ser instalado
--> Procesando dependencias: libFOX-1.6.so.0()(64bit) para el paquete: adie-3.0.0-1.fc13.x86_64
--> Ejecutando prueba de transacción
---> Paquete fox.x86_64 0:1.6.38-1.fc13 definido para ser instalado
--> Resolución de dependencias finalizada

Dependencias resueltas

================================================================================
 Paquete       Arquitectura    Versión                Repositorio         Tamaño
================================================================================
Instalando:
 adie          x86_64          3.0.0-1.fc13           fedora-fox          124 k
Instalando para las dependencias:
 fox           x86_64          1.6.38-1.fc13          fedora-fox          919 k

Resumen de la transacción
================================================================================
Install       2 Package(s)

Tamaño total: 1.0 M
Tamaño instalado: 3.8 M
Descargando paquetes:
Ejecutando el rpm_check_debug
Ejecutando prueba de transacción
La prueba de transacción ha sido exitosa
Ejecutando transacción
  Instalando     : fox-1.6.38-1.fc13.x86_64                                 1/2 
  Instalando     : adie-3.0.0-1.fc13.x86_64                                 2/2 

Instalado:
  adie.x86_64 0:3.0.0-1.fc13                                                    

Dependencia(s) instalada(s):
  fox.x86_64 0:1.6.38-1.fc13                                                    

¡Listo!

7.22. yum-plugin-tsflags

Esta extensión permite especificar banderas de transacción (tsflags) opcionales en la línea de comandos yum con la opción agregada --tsflags. Esta opción es equivalente a configurar tsflags en yum.conf pero bajo demanda en la línea de comandos. Estas banderas de transacción son pasadas a rpm, si no sabe de su significado, no use estas opciones.

7.22.1. Configuración

/etc/yum/pluginconf.d/tsflags.conf
[main]
enabled=1
enabled = 0|1
Habilita la extensión a nivel general.
/etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1
gpgcheck=1
plugins=1
installonly_limit=3
showdupesfromrepos=0
tsflags=test
Aglunas banderas conocidas:
  • noscripts
  • notriggers
  • nodocs
  • test
  • justdb
  • repackage

7.22.2. Ejemplos de uso

Instalar sin documentación
$ su -c "yum --tsflags=nodocs install squid"
...
Instalado:
  squid.x86_64 7:3.1.8-1.fc13                                                   
  ¡Listo!
$ man squid
No hay ninguna página sobre squid
$ su -c "yum -y reinstall squid"
...
Instalado:
  squid.x86_64 7:3.1.8-1.fc13                                                   
  ¡Listo!
$ man squid

squid(8)                                                              squid(8)



NAME
       squid - proxy caching server
       ...

7.23. yum-plugin-upgrade-helper

Esta extensión le permite a yum eliminar paquetes específicos al instalar/actualizar basándose en un archivos de metadatos adicional en los repositorios. Es utilizado para simplificar la actualización de distribución.

7.23.1. Configuración

/etc/yum/pluginconf.d/upgrade-helper.conf
[main]
enabled = 1
enabled = 0|1
Habilita la extensión a nivel general.

7.24. yum-plugin-verify

Esta extensión agrega los comandos verify-multilib, verify-all y verify-rpm. Estos comandos funcionan como rpm -V para verificar la integridad de los paquetes en el sistema.
yum-plugin-verify también agrega las opciones --verify-filenames y --verify-configuration-files.
yum verify-all [PACKAGE|all|extras]
Verifica los paquetes y muestra los datos de verificaciones no satisfechas, mostrará todas las diferencias, incluso algunas que rpm ignoraría.
verify-multilib [PACKAGE|all|extras]
Verifica los paquetes y muestra los datos de verificaciones no satisfechas. yum verify es un alias para yum verify-multilib.
verify-rpm [PACKAGE|all|extras]
Verifica los paquetes y muestra los datos de verificaciones no satisfechas, está pensado para que su salida sea similar a rpm -V.
--verify-filenames=VERIFY_FILENAMES
Sólo verifica los nombres de archivos especificados.
--verify-configuration-files=yes|no|true|false
Verifica o no los archivos etiquetados como archivos de configuración.

7.24.1. Configuración

/etc/yum/pluginconf.d/verify.conf
[main]
enabled=1
#  Display verify mismatches with config. files, should probably use AIDE etc.
# instead, if you really want this.
# configuration-files = True

# # Add more colour to your life (these are the defaults):
# [highlight]
#
# # Don't output these problems in colour:
# low-priority = mtime, genchecksum, permissions-missing, state,missingok,ghost
#
# # Don't highlight the values of these problems
# filter-old   = mtime, checksum
# filter-new   = mtime, checksum
#
# # These are the default highlight values
# new     = reverse
# 
# old-fg  = red
#
# file    = underline
# file-fg = green
#
# tags    = bold
# tags-fg = yellow
# tags-bg = black

7.24.2. Documentación

Esta extensión incluye una página de manual en línea, consulte con el comando man yum-verify.

7.24.3. Ejemplos de uso

Las llamadas sin especificación de paquetes tomarán su tiempo, tenga paciencia.
# yum verify
# yum verify-all
# yum verify-rpm
Un ejemplo especificando paquete.
$ su -c "yum verify squid"
...
==================== Installed Packages ====================
squid.x86_64 : El servidor proxy con caché Squid
    File: /usr/share/squid/errors/ar-ae
        Problem:  symlink does not match
        Current:  ar
        Original: 
    File: /usr/share/squid/errors/ar-bh
        Problem:  symlink does not match
        Current:  ar
        Original: 
...
Un ejemplo usando las opciones agregadas por la extensión.
$ sudo yum verify --verify-filenames='/etc/*' --verify-configuration-files=yes

Complementos cargados:aliases, presto, verify
==================== Installed Packages ====================
PackageKit-yum-plugin.x86_64 : Tell PackageKit to check for updates when yum
                             : exits
    File: /etc/yum/pluginconf.d/refresh-packagekit.conf
    Tags: configuration
        Problem:  checksum does not match
        Current:  sha256:f57b424b10afd7ef2d3e14e1fbe7871d51b5ece812d63f223d51210d822cef8f
        Original: sha256:824c5d1b7feb0bf3621bb0b5515d8df6673ae504d9c0fc5fed050070c13d305f
                                   --------                                   
        Problem:  size does not match
        Current:   17  
        Original:  18  
                                   --------                                   
        Problem:  mtime does not match
        Current:  Sun May 16 06:14:24 2010 (108 days, 22:41:18 earlier)
        Original: Thu Sep  2 04:55:42 2010

artwiz-aleczapka-anorexia-fonts.noarch : Anorexia font in Artwiz family
    File: /etc/fonts/conf.d/60-artwiz-aleczapka-anorexia.conf
    Tags: configuration
        Problem:  symlink does not match
        Current:  /usr/share/fontconfig/conf.avail/60-artwiz-aleczapka-anorexia.conf
        Original: 

...

yum-plugin-verify.noarch : Yum plugin to add verify command, and options
    File: /etc/yum/pluginconf.d/verify.conf
    Tags: configuration
        Problem:  mtime does not match
        Current:  Sun Sep 26 07:41:09 2010 (53 days, 19:49:32 later)
        Original: Tue Aug  3 11:51:37 2010
verify done

7.25. yum-plugin-versionlock

Esta extensión permite que ciertos paquetes especificados en un archivo sean protegidos de ser actualizados a nuevas versiones.

7.25.1. Configuración

/etc/yum/pluginconf.d/versionlock.conf
[main]
enabled = 1
locklist = /etc/yum/pluginconf.d/versionlock.list
#  Uncomment this to lock out "upgrade via. obsoletes" etc. (slower)
# follow_obsoletes = 1
enabled = 0|1
Habilita la extensión a nivel general.
locklist = /ruta/archivo
Define el nombre de archivo con la lista de nombres de paquetes (ruta completa).
/etc/yum/pluginconf.d/versionlock.list
El formato del archivo es un nombre de paquete por línea.

7.25.2. Ejemplos de uso

Este equipo tiene una actualización disponible de xterm pero se va a bloquear dicha actualización.
Antes del bloqueo de actualización.
$ yum list updates xterm
xterm.i386                               227-1.fc7              updates
Versión actual instalada:
$ rpm -q xterm
xterm-225-2.fc7
Edite su archivo de configuración para la lista de paquetes e incluya el nombre completo anterior e intente actualizar:
$ su -c "yum update xterm"
Loading "installonlyn" plugin
Loading "versionlock" plugin
Loading "fastestmirror" plugin
Setting up Update Process
Loading mirror speeds from cached hostfile
Reading version lock configuration
Could not find update match for xterm
No Packages marked for Update/Obsoletion
Efectivamente ya no puede actualizar dicho paquete y ni siquiera se listan las actualizaciones para dicho paquete.

Sólo el paquete

Sólo se bloquea el paquete listado y no sus dependientes, es decir, si se quiere actualizar otro paquete que depende del bloqueado, y se requiere por ejemplo remover el paquete actual para actualizarlo, fallará la actualizacion del dependiente. Ejemplo de ello, si se bloquea php-5.2.5-7.fc9.i386 y se intenta un yum update obtenemos el siguiente resultado.
php-5.2.5-7.fc9.i386 from installed has depsolving problems
  --> Missing Dependency: php-cli = 5.2.5-7.fc9 is needed by package php-5.2.5-7.fc9.i386 (installed)
php-5.2.5-7.fc9.i386 from installed has depsolving problems
  --> Missing Dependency: php-common = 5.2.5-7.fc9 is needed by package php-5.2.5-7.fc9.i386 (installed)
Error: Missing Dependency: php-common = 5.2.5-7.fc9 is needed by package php-5.2.5-7.fc9.i386 (installed)
Error: Missing Dependency: php-cli = 5.2.5-7.fc9 is needed by package php-5.2.5-7.fc9.i386 (installed) 
La única alternativa que se sabe para evitar esta salida de errores es bloquear también las versiones de los dependientes.

7.26. yum-presto

yum-presto es una extensión para yum que busca deltarpms en vez de rpms cuando éstos están disponibles en los repositorios. Esto ahorra mucho ancho de banda cuando se realizan actualizaciones.
Un deltarpm es la diferencia entre dos rpms. Si ya tiene instalado foo-1.0 y está disponible foo-1.1, yum-presto descargará el deltarpm para foo-1.0 => 1.1 en vez de descargar el rpm completo de foo-1.1rpm, luego reconstruye el paquete foo-1.1 desde el paquete instalado foo-1.0 y el deltarpm descargado.

7.26.1. Configuración

Primero necesita tener repositorios habilitados con deltarpms. Desde Fedora 11 los repositorios oficiales ofrecen drpms, es decir no necesita configurar nada en la configuración de caja.
/etc/yum/pluginconf.d/presto.conf
# Please go to https://fedorahosted.org/presto for a list of presto-enabled
# repositories

[main]
enabled=1
# This defaults to yum's keepcache option, if not set.
# keepdeltas = false

#  This lets you change if the delta is downloaded given it's relative size vs.
# the pkg. Eg. the default:
#
# minimum_percentage = 95
#
# ...means that given a pkg of 100M, a delta of 95M (or less) would be
# downloaded instead but a delta of 96M would be skipped in favour of the pkg.
#  Percentage of 0 means never use the delta, percentage of 100 means always
# use it (assuming the delta is never bigger than the pkg).
enabled = 0|1
Habilita la extensión a nivel general.
keepdeltas = true|false
Mantener un cache de los drpms. Si no se le establece un valor, copia el valor de la directiva de configuración keepcache de yum.
minimum_percentage = #entero
Valor de comparación versus el paquete rpm para tomar la decisión de privilegiar la descarga del rpm. 100 implica que siempre se usan los deltas, 0 nunca usar los deltas.

7.26.2. Ejemplos de uso

Con presto deltarpms:
Found deltarpm update for firefox.i386 0:2.0.0.5-1.fc7

Dependencies Resolved 

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Updating:
 firefox                 i386       2.0.0.5-1.fc7    updates *         1.2 M

Transaction Summary
=============================================================================
Install      0 Package(s)
Update       1 Package(s)
Remove       0 Package(s) 

Total download size: 1.2 M
Is this ok [y/N]: N
Sin presto deltarpms:
Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Updating:
 firefox                 i386       2.0.0.5-1.fc7    updates            21 M 

Transaction Summary
=============================================================================
Install      0 Package(s)
Update       1 Package(s)
Remove       0 Package(s) 

Total download size: 21 M
Is this ok [y/N]:
La diferencia es más que notable, 21 M vs 1.2 M, eso hace realmente una diferencia, ahora la ejecución.
# time yum -y update firefox
Loading "presto" plugin
Setting up Update Process
Loading mirror speeds from cached hostfile
Setting up Presto
Reading Presto metadata in from local files
0 packages excluded due to repository priority protections
0 packages excluded due to repository protections
Resolving Dependencies
--> Running transaction check
---> Package firefox.i386 0:2.0.0.5-1.fc7 set to be updated
Found deltarpm update for firefox.i386 0:2.0.0.5-1.fc7 

Dependencies Resolved 

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Updating:
 firefox                 i386       2.0.0.5-1.fc7    updates *         1.2 M 

Transaction Summary
=============================================================================
Install      0 Package(s)
Update       1 Package(s)
Remove       0 Package(s) 

Total download size: 1.2 M
Downloading Packages:
Downloading DeltaRPMs:
(1/1): firefox-2.0.0.4-2. 100% |=========================| 1.2 MB    00:06
Rebuilding rpms from deltarpms
Downloading RPMs:
Running rpm_check_debug
--> Populating transaction set with selected packages. Please wait.
---> Package firefox.i386 0:2.0.0.5-1.fc7 set to be updated
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating  : firefox                      ######################### [1/2]
  Cleanup   : firefox                      ######################### [2/2]
Size of all updates downloaded from Presto-enabled repositories: 1.2M
Size of updates that would have been downloaded if Presto wasn't enabled: 21M
This is a savings of 95 percent

Updated: firefox.i386 0:2.0.0.5-1.fc7
Complete!

real    1m4.198s
user    0m33.223s
sys     0m3.302s
Por favor note que parte del tiempo utilizado es por la reconstrucción del rpm a partir del deltarpm y no por consumo del ancho de banda descargando, así que ese tiempo realmente depende de la capacidad de procesamiento de la máquina.

7.27. PackageKit-yum-plugin

yum-packagekit notifica a PackageKit que busque actualizaciones cuando yum termine. De esta forma si ejecuta yum update e instala todas las actualizaciones disponibles, las notificaciones correspondientes se actualizarán casi instantáneamente para reflejar este cambio.

7.27.1. Configuración

/etc/yum/pluginconf.d/refresh-packagekit.conf
[main]
enabled=1
enabled = 0|1
Habilita la extensión a nivel general.

7.28. yum-langpacks

Extensión langpacks para yum. yum-langpacks es una extensión para YUM que busca langpacks para su idioma nativo para que los instale.
Con esta extensión instalada y configurada para es_ES, si el usuario instala libreoffice, automáticamente se instalará también libreoffice-langpack-es.

7.28.1. Configuración

/etc/yum/pluginconf.d/langpacks.conf
[main]
enabled=1

# specify locales requiring langpacks
#langpack_locales = ja_JP, zh_CN, mr_IN
langpack_locales = es_ES 
$ yum list available
Complementos cargados:aliases, langpacks, presto
Adding es_ES to language list
...

7.29. Uso del comando yum y las extensiones

7.29.1. Desactivar las extensiones

Dadas las circunstancias es útil deshabilitar las extensiones momentáneamente por medio de la línea de comandos.
Existen dos opciones en la línea de comandos para ese propósito:
--disableplugin=plugin
Deshabilita una o varias extensiones al momento de la ejecución. El argumento es una lista separada por comas de nombres de extensiones o wildcards.
--noplugins
Deshabilita todas las extensiones al momento de la ejecución.

7.29.2. Ejemplos de uso

$ yum --disableplugin=presto list installed 
Complementos cargados:aliases, refresh-packagekit
Paquetes instalados
Abajo.noarch                     0.8-6                        @/Abajo-0.8-6.noarch
Canna-libs.x86_64                3.7p3-29.fc13                @fedora
ConsoleKit.x86_64                0.4.1-5.fc13                 @anaconda-InstallationRepo
ConsoleKit-libs.x86_64           0.4.1-5.fc13                 @anaconda-InstallationRepo
ConsoleKit-x11.x86_64            0.4.1-5.fc13                 @anaconda-InstallationRepo
...
$ yum --disableplugin=presto,refresh-* list installed 
Complementos cargados:aliases
Paquetes instalados
Abajo.noarch                     0.8-6                        @/Abajo-0.8-6.noarch
Canna-libs.x86_64                3.7p3-29.fc13                @fedora
ConsoleKit.x86_64                0.4.1-5.fc13                 @anaconda-InstallationRepo
ConsoleKit-libs.x86_64           0.4.1-5.fc13                 @anaconda-InstallationRepo
ConsoleKit-x11.x86_64            0.4.1-5.fc13                 @anaconda-InstallationRepo
...
$ yum --noplugins list installed
Paquetes instalados
Abajo.noarch                     0.8-6                        @/Abajo-0.8-6.noarch
Canna-libs.x86_64                3.7p3-29.fc13                @fedora
ConsoleKit.x86_64                0.4.1-5.fc13                 @anaconda-InstallationRepo
ConsoleKit-libs.x86_64           0.4.1-5.fc13                 @anaconda-InstallationRepo
ConsoleKit-x11.x86_64            0.4.1-5.fc13                 @anaconda-InstallationRepo
...

Capítulo 8. Utilidades YUM

Existen una serie de utilidades que están disponibles en Fedora en el paquete denominado yum-utils y algunas otras en paquetes separados. Esta sección está dedicada a dicho paquetes y los programas que allí se incluyen.
Instale con yum install yum-utils si el programa es provisto por este paquete, si no, utilice el comando yum install con el nombre del programa correspondiente, los nombres de paquetes corresponden en todos esos casos.

8.1. Autocompletado Bash

Tanto yum como yum-utils incluyen archivos de configuración para agregar la funcionalidad de autocompletado en Bash. Para poder hacer uso de esta funcionalidad debe instalar el paquete bash-completion.
$ su -c "yum install bash-completion"
Use la tecla <tab> una vez para autocompletar,o dos veces para listar las opciones del autocompletado si no hay una selección única. Abajo le presentamos algunos ejemplos simples de su uso:
$ yum ins<tab>		
$ yum install 
$ yum install bas<tab><tab>
  bashdb.noarch       basket-libs.i686    bastet.x86_64
  bash-doc.x86_64     basket-libs.x86_64  
  BasiliskII.x86_64   basket.x86_64
$ repoquery --repo<tab>
  --repofrompath  --repoid        
$ repoquery --repoid fedora<tab><tab>
  fedora                         fedora-debuginfo
  fedora-appmarket               fedora-latam
  fedora-chromium                fedora-latam-debuginfo
  fedora-chromium-source         fedora-latam-source
  fedora-chromium-stable         fedora-source
  fedora-chromium-stable-source

8.2. yum-updateonboot

yum-updateonboot es una aplicación provista por el paquete del mismo nombre que se instala como servicio en Fedora y esencialmente lo que hace es ejecutar yum update al iniciar el sistema (boot). Esto permite que máquinas que han sido apagadas por un período de tiempo considerable se aseguren inmediatamente en vez de esperar la tarea cron para mañana temprano.

8.2.1. Configuración

/etc/sysconfig/yum-updateonboot
# Si cualquiera de estos rpms son actualizados, yum-updateonboot mandará a 
# reiniciar el equipo inmediatamente después de yum udpate.  
# Para evitar que yum-updateonoot reinicie su máquina , comente la 
# siguiente línea
#REBOOT_RPMS="kernel kernel-smp"

# Lista de grupos que deben ser actualizados al inicio.  
# Para cada grupo mencionado
# yum-updateonboot llamará 'yum -y groupupdate'  
# Ya que los grupos tienden a tener espacios en sus nombres, 
# use punto y coma para separarlos
#GROUPLIST="My Group;MyOtherGroup;Some_Group;My Group 4"

# Silencioso al actualizar, por omisión es así
# Estas opciones son pasadas a yum, por omisión es "-q"
#OPTIONS="-q"
Como todo servicio en Fedora, éste viene deshabilitado por omisión, por lo que debe configurar que se inicie en los niveles de ejecución deseados.
$ chkconfig yum-updateonboot on
El comando anterior provocará que la próxima vez que se inicie el sistema, se levantará el servicio, es decir, se actualizará el sistema.

8.3. yumdownloader

Este utilitario provisto por el paquete yum-utils complementa al plugin downloadonly ya que dicho plugin sólo funciona si el software deseado no está instalado. Vea como falla y cómo puede resolver con yumdownloader.
$ yum --downloadonly install openssh-server
Loading "downloadonly" plugin
Setting up Install Process
Setting up repositories
Reading repository metadata in from local files
Parsing package install arguments
Nothing to do
No hay nada que instalar, ya está instalado, no se descarga nada. Intente ahora con yumdownloader.
$ yumdownloader openssh-server
Complementos cargados:presto, refresh-packagekit
openssh-server-5.6p1-31.fc15.1.x86_64.rpm             | 299 kB     00:04
Hecho, ya tiene el rpm que quería.
Otra opción de uso frecuente es especificar que se desea descargar los fuentes rpms:
$ yumdownloader --source zsh
...
Enabling fedora-source repository
fedora-source/metalink                                | 1.7 kB     00:00     
zsh-4.3.11-2.fc15.src.rpm                             | 2.6 MB     00:30

Habilitación automática de repositorio

Note que yumdownloader ha habilitado los repositorios de fuentes "source" para poder hacer la descarga.
Otra funcionalidad que ofrece yumdownloader es la identificación de los fuentes para un paquete rpm dado. Esto es útil ya que un fuente RPM puede producir múltiples paquetes RPM.
$ yumdownloader --urls --source ruby-gtk2
...
http://fedora.c3sl.ufpr.br/linux/updates/13/SRPMS//ruby-gnome2-0.90.2-1.fc13.src.rpm

8.4. package-cleanup

Este utilitario provisto por el paquete yum-utils ayuda a detectar problemas en la base de datos rpm y a resolverlos, abajo se listan y muestran algunos usos comunes.
Paquetes huérfanos
Listar los paquetes huérfanos, aquellos paquetes que no son provistos por ninguno de los repositorios configurados, "son huérfanos de repositorio", use la opción --orphans.
# package-cleanup --orphans 
...
NetworkManager-0.8.9997-1.git20110531.fc15.x86_64
NetworkManager-glib-0.8.9997-1.git20110531.fc15.x86_64
NetworkManager-gnome-0.8.9997-1.git20110531.fc15.x86_64
adobe-release-i386-1.0-1.noarch
control-center-3.0.1.1-6.fc15.x86_64
control-center-filesystem-3.0.1.1-6.fc15.x86_64
cpp-4.6.0-7.fc15.x86_64
dbus-qt-0.70-7.fc12.x86_64
...
Paquetes duplicados
Para listar los paquetes con duplicados en la base de datos RPM use la opción --dupes.
$ package-cleanup --dupes 
...
samba-3.2.8-0.27.fc10.i386
samba-3.2.8-0.26.fc10.i386
libtalloc-1.2.0-26.fc10.i386
libtalloc-1.2.0-27.fc10.i386
wireshark-gnome-1.0.6-1.fc10.i386
wireshark-gnome-1.0.5-1.fc10.i386
Problemas de dependencias
Para listar los problemas de dependencias en la base de datos RPM use la opción --problems.
$ package-cleanup --problems 
...
Package compiz-0.9.5.92.1-0.2.gite676f1b12eb8db3a76978eed5bfc7c2cf9a0b6ce.fc16.x86_64 no se encuentran necesita de libboost_serialization-mt.so.1.47.0()(64bit)
Package compiz-gtk-0.9.5.92.1-0.2.gite676f1b12eb8db3a76978eed5bfc7c2cf9a0b6ce.fc16.x86_64 no se encuentran necesita de libboost_serialization-mt.so.1.47.0()(64bit)
Package compiz-plugins-main-0.9.5.92-1.fc16.x86_64 no se encuentran necesita de libboost_serialization-mt.so.1.47.0()(64bit)
Package libcompizconfig-0.9.5.92-1.fc16.x86_64 no se encuentran necesita de libboost_serialization-mt.so.1.47.0()(64bit)
Felizmente usted no tendrá problemas, lo que esperaría ver es:
$ package-cleanup --problems
Complementos cargados:presto, refresh-packagekit
No Problems Found
Remoción de kernels antiguos
package-cleanup también es útil para remover instalaciones de kernel antiguos y paquetes relacionados a dichos kernel antiguos, ue la opción --oldkernel:
# package-cleanup --oldkernel
Setting up yum
Loaded plugins: dellsysidplugin2, fastestmirror, kernel-module, presto,
              : priorities, protectbase, upgrade-helper, versionlock
Loading mirror speeds from cached hostfile
I will remove the following 3 kernel related packages:
kernel-2.6.30.5-43.fc11.i586
kernel-devel-2.6.29.6-217.2.16.fc11.i586
kernel-devel-2.6.30.5-43.fc11.i586
Is this ok [y/N]: y

# rpm -qa kernel*
[root@movix ~]# rpm -qa kernel*
kernel-headers-2.6.30.9-90.fc11.i586
kernel-2.6.30.8-64.fc11.i586
kernel-devel-2.6.30.8-64.fc11.i586
kernel-2.6.30.9-90.fc11.i586
kernel-devel-2.6.30.9-90.fc11.i586
kernel-doc-2.6.30.9-90.fc11.noarch
kernel-firmware-2.6.30.9-90.fc11.noarch
# uname -r
2.6.30.9-90.fc11.i586

No interpreta installonly_limit

Note que se ha dejado un kernel antiguo de acuerdo a la práctica común de yum de mantener dos kernels máximo instalados. Tenga cuidado que este comando no interpreta la opción en yum.conf installonly_limit.

8.4.1. Ejemplos de uso

# package-cleanup --orphans
Setting up yum
libsndfile-1.0.14-1.fc5.i386
grisbi-0.5.8-2.fc5.i386
gedit-2.14.1-1.i386
...
Debido a la forma en como se maneja las actualizaciones, package-cleanup sólo considera la última versión del paquete, los paquetes no actualizados pero provistos por repositorios configurados aparecerán como huérfanos, es decir, el repositorio Updates, por ejemplo, no continúa suministrando la versión anterior para efectos de package-cleanup. Es decir, antes de hacer un package-cleanup --orphans, se recomienda hacer una actualización completa si es posible, tenga cuidado de no remover estos paquetes a la ligera, ya que también pueden ser paquetes instalados manualmente y que funcionan perfectamente, o simplemente se deshabilitó el repositorio desde el cual se hizo la instalación.
Con package-cleanup y el uso de la opción --dupes, se puede detectar los paquetes duplicados en la base de datos RPM, en este ejemplo gedit-2.14.1-1.i386.
# package-cleanup --dupes
...
gedit
...
# rpm -qa | grep gedit
gedit-2.14.1-1
gedit-2.14.3-1
Se tienen dos versiones instaladas y la versión antigua permaneció, probablemente por algún mal manejo. Ahora se puede sin problemas comenzar una tarea de limpieza, y es que de eso se trata package-cleanup.
# yum remove gedit-2.14.1-1
...
Setting up Remove Process
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Package gedit.i386 1:2.14.1-1 set to be erased
--> Running transaction check

Dependencies Resolved

=============================================================================
Package                 Arch       Version          Repository        Size
=============================================================================
Removing:
gedit                   i386       1:2.14.1-1       installed          13 M

Transaction Summary
=============================================================================
Install      0 Package(s)
Update       0 Package(s)
Remove       1 Package(s)
Is this ok [y/N] : y
Downloading Packages:
Running Transaction Test
Después de realizar esta operación se ha recuperado cierto espacio en disco, se ha limpiado, al menos en parte, la base de datos rpm que representa al software instalado en el sistema Fedora. Para más detalles de uso revise el manual, man package-cleanup.

8.5. yum-complete-transaction

yum-complete-transaction es provisto por el paquete yum-utils, y si hay transacciones YUM incompletas éste ofrece la oportunidad de terminarlas en orden. Típicamente cuando esta situación es necesaria, el comando yum de turno dará una salida parecida a:
...
There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.
...
yum-complete-transaction es un programa que busca transacciones YUM incompletas o abortadas en el sistema e intenta completarlas. Busca en los archivos transaction-all* y transaction-done* que normalmente se encuentran en /var/lib/yum y verifica si una transacción ha sido abortada en el medio de su ejecución.
Si se encuentra más de una transacción no terminada, se intentará completar la más reciente primero. Puede ejecutar este programa más de una vez para limpiar todas las transacciones sin terminar.
$ su -c "yum-complete-transaction"
...
There are 1 outstanding transactions to complete. Finishing the most recent one
The remaining transaction had 3 elements left to run
Package recode-3.6-26.fc9.i386 already installed and latest version
Package fortune-mod-1.99.1-11.fc9.i386 already installed and latest version
Package gtypist-2.7-6.fc9.i386 already installed and latest version
Nothing in the unfinished transaction to cleanup.
Cleaning up completed transaction file
Si no se desea terminar ninguna de dichas transacciones puede simplemente limpiar el histórico con la opción --cleanup-only.
$ su -c "yum-complete-transaction --cleanup-only"
Loaded plugins: dellsysidplugin2, fastestmirror, kernel-module, presto,
              : priorities, protectbase, upgrade-helper, versionlock
Loading mirror speeds from cached hostfile
 * fedora: mirrors.ucr.ac.cr
 * livna: rpm.livna.org
 * rpmfusion-free: lordmorgul.net
 * rpmfusion-free-updates: lordmorgul.net
 * rpmfusion-nonfree: lordmorgul.net
 * rpmfusion-nonfree-updates: lordmorgul.net
 * updates: mirrors.ucr.ac.cr
0 packages excluded due to repository protections
Reading version lock configuration
Checking for new repos for mirrors
Cleaning up unfinished transaction journals
Cleaning up 2009-09-04.01:09.22
Cleaning up 2009-09-05.07:12.25

8.6. yum-builddep

yum-builddep es un programa que instala los RPMs necesarios para construir el paquete especificado. El SRPM del paquete especificado debe estar disponible en un repositorio YUM disponible o puede ser un archivo fuente RPM local. Esta extensión es provista por el paquete yum-utils.
$ su -c "yum-builddep sox"
...
================================================================================
 Package                Arch        Version                 Repository     Size
================================================================================
Installing:
 alsa-lib-devel        i386       1.0.18-6.rc3.fc10          fedora       996 k
 gsm-devel              i386        1.0.12-6.fc9            fedora         12 k
 libvorbis-devel        i386        1:1.2.0-5.fc10          fedora        356 k

Transaction Summary
================================================================================
Install      2 Package(s)         
Update       0 Package(s)         
Remove       0 Package(s)         

Total download size: 368 k
Is this ok [y/N]:
$ su -c "yum-builddep --nogpgcheck fox-1.6.33-1.rf.src.rpm"
Complementos cargados:presto, refresh-packagekit
Getting requirements for fox-1.6.33-1.rf.src
 --> Already installed : gcc-c++-4.4.4-10.fc13.x86_64
 --> Already installed : autoconf-2.65-1.fc13.noarch
 --> zlib-devel-1.2.3-23.fc12.x86_64
 --> bzip2-devel-1.0.6-1.fc13.x86_64
 --> 2:libpng-devel-1.2.44-1.fc13.x86_64
 --> Already installed : libXext-devel-1.1.2-2.fc13.x86_64
 --> Ejecutando prueba de transacción
 ---> Paquete bzip2-devel.x86_64 0:1.0.6-1.fc13 definido para ser instalado
 --> Procesando dependencias: bzip2-libs = 1.0.6-1.fc13 para el paquete: bzip2-devel-1.0.6-1.fc13.x86_64
 ---> Paquete libpng-devel.x86_64 2:1.2.44-1.fc13 definido para ser instalado
 ---> Paquete zlib-devel.x86_64 0:1.2.3-23.fc12 definido para ser instalado
 --> Ejecutando prueba de transacción
 ---> Paquete bzip2-libs.x86_64 0:1.0.6-1.fc13 definido para ser actualizado
 --> Resolución de dependencias finalizada

Dependencias resueltas

===========================================================================================
Paquete           Arquitectura             Versión               Repositorio         Tamaño
===========================================================================================
Instalando:
bzip2-devel          x86_64           1.0.6-1.fc13                   updates          217 k
libpng-devel         x86_64           2:1.2.44-1.fc1                 updates          111 k
zlib-devel           x86_64           1.2.3-23.fc12                  fedora            40 k
Actualizando para las dependencias:
 bzip2-libs          x86_64           1.0.6-1.fc13                   updates           36 k

 Resumen de la transacción
===========================================================================================
 Install       3 Package(s)
 Upgrade       1 Package(s)

 Tamaño total de la descarga: 405 k
 Está de acuerdo [s/N]:

Sólo lo que falta

Note que sólo se instalan los paquetes que faltan.

8.7. yum-NetworkManager-dispatcher

Este "guión de despacho" de NetworkManager forza a yum a que verifique su cache cuando se establece una nueva conexión de red. Note que actualmente no hay verificación de datos previos, así que si la conexión WiFi se la pasa de arriba a abajo, o si suspende/resume con frecuencia, yum verificará su cache muchas veces.
/etc/NetworkManager/dispatcher.d/yum-NetworkManager-dispatcher es el script para NetworkManager, si desea realizar alguna otra acción combinada con la verificación del cache, podría editar este archivo libremente.

8.8. yum-cron

Este paquete contiene los archivos necesarios para ejecutar yum update como tarea cron. Ellos se originaron en yum-2.6.1-0.fc5 pero se abandonaron en FC6 en favor de yum-updatesd. Instale este paquete si desea actualizaciones automáticas nocturnas vía cron en vez de usar el más reciente método con el demonio yum-updatesd.
En general yum-cron es más acorde para servidores y yum-updatesd para usuarios de escritorio, por ello se sigue despachando.

8.8.1. Arranque y parada

La tarea cron correspondiente se activa y desactiva como si fueran un servicio (demonio):
$ su -c "chkconfig yum-cron on"
$ su -c "service yum-cron start"
Con el par de comandos previos el archivo con /etc/cron.daily/0yum-update.cron y /etc/cron.daily/yum-cleanup.cron serán ejecutados diariamente a la hora prevista.

8.8.2. Configuración

/etc/sysconfig/yum-cron
# Pase de parámetros a yum, global al ejecutar estos guiones.
YUM_PARAMETER=

# No instalar, solo verificar (yes|no)
CHECK_ONLY=no

# Verifica si se pueden alcanzar los repos antes de actualizar (yes|no)
CHECK_FIRST=no

# No instalar, sólo verificar y descargar (yes|no)
# Implica CHECK_ONLY=yes
DOWNLOAD_ONLY=no

# Nivel de errores a reportar, rango 0-10.
# 0 sólo reportar errores críticos.
# 1 reporta todos los errores.
# ERROR_LEVEL=0

# Nivel de depuración, rango 0-10.
# Valor más alto, más salida de depuración.
# Level 0 is the default
# DEBUG_LEVEL=0

# Espera aleatoria, con 60, yum espera aleatoriamente 
# entre 1 y 60 minutos para operar.
RANDOMWAIT="60"

# Si se define MAILTO y el comando mail está disponibles,
# el comando mail es utilizado para enviar la salida.
# Por omisión no definido, crond envía por mail la salida por sí mismo
MAILTO= 

# Nombre del sistema SYSTEMNAME , por omision se usa hostname
# Sólo se usa en conjunto con MAILTO
#SYSTEMNAME="" 

# Puede definir los días de la semana en las que desea
# ejecutar la actualización, por omisión son todos los días 
#DAYS_OF_WEEK="0123456" 

# Día para hacer la limpieza. Por omisión 0 (Domingo).  
# Si el día no está en DAYS_OF_WEEK above, nunca ocurrirá
CLEANDAY="0"

8.8.3. needs-restarting

needs-restarting reporta una lista de identificadores de proceso de programas en ejecución que alguno de sus componentes han sido actualizados.
# needs-restarting 
1 : /bin/systemd--log-levelinfo--log-targetsyslog-or-kmsg--system--dump-core--show-status=0--sysv-console=0--deserialize20
749 : /usr/sbin/abrtd-d-s
803 : /usr/sbin/sedispatch
852 : /usr/libexec/polkit-1/polkitd
859 : /usr/sbin/bluetoothd-n
1003 : /usr/sbin/gdm-binary-nodaemon
...
Puede especificar que sólo liste los pids para su identificador de usuario con la opción --useronly
$ needs-restarting --useronly
1573 : /usr/libexec/gsd-printer
8191 : nmcliconupuuid976f7a62-ec37-4a0a-8f95-29732238535f
8263 : nmcliconupuuid976f7a62-ec37-4a0a-8f95-29732238535f
12289 : /usr/libexec/imsettings-daemon
12292 : /usr/libexec/gvfsd
12296 : /usr/libexec//gvfs-fuse-daemon/home/gomix/.gvfs
12340 : dwm
...

Permiso denegado

needs-restarting --useronly ejecutado como usuario regular resulta hoy día en un error de privilegios. Esto es un bug que aún no se repara. Se mantiene la referencia para manuales futuros donde debería repararse dicho bug.
$ needs-restarting --useronly
Could not open /proc/22567/smaps
...

8.8.4. find-repos-of-install

find-repos-of-install es una aplicación provista por yum-utils que nos informa los repositorios desde los cuales se puede instalar el paquete indicado.
$ find-repos-of-install qt
Complementos cargados:presto, refresh-packagekit
1:qt-4.7.2-8.fc15.i686 from repo anaconda-InstallationRepo-201105052317.x86_64
1:qt-4.7.2-8.fc15.x86_64 from repo anaconda-InstallationRepo-201105052317.x86_64

$ find-repos-of-install wireshark-gnome
Complementos cargados:presto, refresh-packagekit
wireshark-gnome-1.4.7-1.fc15.x86_64 from repo updates

8.8.5. show-installed

show-installed es una aplicación provista por yum-utils que nos resume los paquetes instalados haciendo uso de los grupos coms que se encuentran en los repositorios.
$ show-installed --help

Usage: show-installed [options]

Gives a compact description of the packages installed (or given) making use of
the comps groups found in the repositories.

Options:
  -h, --help            show this help message and exit
  -f FORMAT, --format=FORMAT
                        yum, kickstart or human; yum gives the result as a yum
                        command line; kickstart the content of a %packages
                        section; "human" readable is default.
  -i INPUT, --input=INPUT
                        File to read the package list from instead of using
                        the rpmdb. - for stdin. The file must contain package
                        names only separated by white space (including
                        newlines). rpm -qa --qf='%{name} ' produces proper
                        output.
  -o OUTPUT, --output=OUTPUT
                        File to write the result to. Stdout is used if option
                        is omited.
  -q, --quiet           Do not show warnings.
  -e, --no-excludes     Only show groups that are installed completely. Do not
                        use exclude lines.
  --global-excludes     Print exclude lines at the end and not after the
                        groups requiring them.
  --global-addons       Print package names at the end and not after the
                        groups offering them as addon.
  --addons-by-group     Also show groups not selected to sort packages
                        contained by them. Those groups are commented out with
                        a "# " at the begin of the line.
  -m, --allow-mandatories
                        Check if just installing the mandatory packages gives
                        better results. Uses "." to mark those groups.
  -a, --allow-all       Check if installing all packages in the groups gives
                        better results. Uses "*" to mark those groups.
  --ignore-missing      Ignore packages missing in the repos.
  --ignore-missing-excludes
                        Do not produce exclude lines for packages not in the
                        repository.
Corrida de ejemplo sin parámetros.
$ show-installed
...
WARNING: The following packages are installed but not in the repository:
	libmad-devel
	a52dec
	xine-lib-extras-freeworld
	...
	x264-libs
	mplayer
	python-argparse
@admin-tools
	gpointing-device-settings
	system-config-lvm
	system-config-network
@base
	-acpid
	-aspell-en
	-cifs-utils
	-irda-utils
	-irqbalance
	-prctl
	-sendmail
	-sssd
	-ypbind
	authd
	iscsi-initiator-utils
	pam_ccreds
	redhat-lsb
	tcsh
@critical-path-gnome
	-gnome-panel
...	
@gnome-desktop
	-NetworkManager-openconnect
	-PackageKit-gtk3-module
	-at-spi2-atk
	...
	pcmanfm
	qtcurve-gtk2
	tomboy
@games
	gnugo
	kbilliards
	quake3
	taxipilot
@graphical-internet
	-evolution-NetworkManager
	arora
	bluefish
	...
	seamonkey
	transmission-qt
	xchat
@hardware-support
	-aic94xx-firmware
	-alsa-firmware
	...
	-iwl6050-firmware
	-usb_modeswitch
@input-methods
	-gtk3-immodule-xim
	-ibus-pinyin-db-open-phrase
	scim-bridge-qt3
	uim-qt3
@kde-desktop
	-amarok
	-bluedevil
	-digikam
	...
	smb4k
	speedcrunch
	yakuake
@office
	Zim
	alexandria
	...
	libreoffice-wiki-publisher
	xchm
@online-docs
@printing
	-foomatic
	-foomatic-db-ppds
	-foomatic-filters
@sound-and-video
	gtk-v4l
	padevchooser
	pavucontrol
	regionset
	xmms
@text-internet
	iperf
@base-x
	-policycoreutils-sandbox
	aterm
	devilspie
	krb5-auth-dialog
	rxvt
# Others
3proxy
GraphicsMagick-c++
GraphicsMagick-devel
ImageMagick-devel
...
yum-plugin-verify
yum-plugin-versionlock
yum-updateonboot
# 2699 package names, 727 leaves
# 22 groups, 502 leftovers, 57 excludes
# 585 lines

Capítulo 9. Gestión avanzada de repositorios YUM

A continuación se examinarán las herramientas nativas disponibles en Fedora destinadas a la gestión de los repositorios YUM.

9.1. Creación de repositorios con createrepo

En esta sección se creará un repositorio yum de ejemplo a partir de un conjunto de paquetes rpm. Antes es necesario instalar la herramienta createrepo.
# yum install createrepo
$ createrepo -h

Usage: genpkgmetadata.py [options]

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -q, --quiet           output nothing except for serious errors
  -v, --verbose         output more debugging info.
  --profile             output timing/profile info.
  -x EXCLUDES, --excludes=EXCLUDES
                        files to exclude
  --basedir=BASEDIR     basedir for path to directories
  -u BASEURL, --baseurl=BASEURL
                        baseurl to append on all files
  -g GROUPFILE, --groupfile=GROUPFILE
                        path to groupfile to include in metadata
  -s SUMTYPE, --checksum=SUMTYPE
                        specify the checksum type to use (default: sha256)
  -p, --pretty          make sure all xml generated is formatted
  -c CACHEDIR, --cachedir=CACHEDIR
                        set path to cache dir
  -C, --checkts         check timestamps on files vs the metadata to see if we
                        need to update
  -d, --database        create sqlite database files: now default, see --no-
                        database to disable
  --no-database         do not create sqlite dbs of metadata
  --update              use the existing repodata to speed up creation of new
  --update-md-path=UPDATE_MD_PATH
                        use the existing repodata  for --update from this path
  --skip-stat           skip the stat() call on a --update, assumes if the
                        filename is the same then the file is still the same
                        (only use this if you're fairly trusting or gullible)
  --split               generate split media
  -i PKGLIST, --pkglist=PKGLIST
                        use only the files listed in this file from the
                        directory specified
  -n INCLUDEPKG, --includepkg=INCLUDEPKG
                        add this pkg to the list - can be specified multiple
                        times
  -o OUTPUTDIR, --outputdir=OUTPUTDIR
                        <dir> = optional directory to output to
  -S, --skip-symlinks   ignore symlinks of packages
  --changelog-limit=CHANGELOG_LIMIT
                        only import the last N changelog entries
  --unique-md-filenames
                        include the file's checksum in the filename, helps
                        with proxies
  --simple-md-filenames
                        do not include the file's checksum in the filename,
                        helps with proxies
  --retain-old-md=RETAIN_OLD_MD
                        keep around the latest (by timestamp) N copies of the
                        old repodata
  --distro=DISTRO       distro tag and optional cpeid:
                        --distro'cpeid,textname'
  --content=CONTENT_TAGS
                        tags for the content in the repository
  --repo=REPO_TAGS      tags to describe the repository itself
  --revision=REVISION   user-specified revision for this repository
  --deltas              create delta rpms and metadata
  --oldpackagedirs=OLDPACKAGE_PATHS
                        paths to look for older pkgs to delta against
  --num-deltas=NUM_DELTAS
                        the number of older versions to make deltas against
  --read-pkgs-list=READ_PKGS_LIST
                        output the paths to the pkgs actually read useful with
                        --update
  --max-delta-rpm-size=MAX_DELTA_RPM_SIZE
                        max size of an rpm that to run deltarpm against (in
                        bytes)
  --workers=WORKERS     number of workers to spawn to read rpms
  --xz                  use xz for repodata compression
  --compress-type=COMPRESS_TYPE
                        which compression type to use
El procedimiento es simple, hay que crear un directorio para alojar el repositorio, colocar allí los rpms provistos por los desarrolladores y empaquetadores, ejecutar createrepo especificando el directorio donde se encuentran los rpms.
# mkdir /var/www/html/x86_64/
# cp -ar /home/makerpm/rpmbuild/RPMS/x86_64/*rpm /var/www/html/x86_64/
# createrepo --verbose /var/www/html/x86_64/
1/14 - dhcp_probe-1.3.0-2.fc13.x86_64.rpm
2/14 - dhcp_probe-debuginfo-1.3.0-2.fc13.x86_64.rpm
3/14 - rubygem-pg-0.9.0-1.fc13.x86_64.rpm
4/14 - dhcp_probe-1.3.0-4.fc13.x86_64.rpm
5/14 - iptables-debuginfo-1.4.5-1.fc12.x86_64.rpm
6/14 - passenger-debuginfo-2.2.15-1.fc13.x86_64.rpm
7/14 - iptables-ipv6-1.4.5-1.fc12.x86_64.rpm
8/14 - dhcp_probe-debuginfo-1.3.0-4.fc13.x86_64.rpm
9/14 - iptables-devel-1.4.5-1.fc12.x86_64.rpm
10/14 - dhcp_probe-debuginfo-1.3.0-3.fc13.x86_64.rpm
11/14 - dhcp_probe-1.3.0-3.fc13.x86_64.rpm
12/14 - dhcp_probe-debuginfo-1.3.0-1.fc13.x86_64.rpm
13/14 - passenger-2.2.15-1.fc13.x86_64.rpm
14/14 - iptables-1.4.5-1.fc12.x86_64.rpm

Saving Primary metadata
Saving file lists metadata
Saving other metadata
Se puede verificar fácilmente que el proceso previo ha creado un directorio repodata con los metadatos que representan y conforman al nuevo repositorio.
# ls /var/www/html/x86_64/repodata/
filelists.xml.gz  other.xml.gz  primary.xml.gz  repomd.xml
Si actualiza o modifica algunos de los rpm fuentes, deberá volver a ejecutar createrepo para actualizar los metadatos del repositorio.
Una vez creada los metadatos del repositorio YUM es hora de disponibilizar el repositorio. En este ejemplo se creará una configuración local utilizando el método de acceso file:/// que permitirá acceder al repositorio recién creado.
/etc/yum.repos.d/rubyera.repo
[rubyera]
name=Rubyera repo
baseurl=file:///var/www/html/x86_64
enabled=1
gpgcheck=0
Para verificar la disponibilidad del nuevo repositorio puede utilizar la herramienta repoquery y consultarlo.
# repoquery --repoid=rubyera -a
dhcp_probe-0:1.3.0-4.fc13.x86_64
dhcp_probe-debuginfo-0:1.3.0-4.fc13.x86_64
iptables-0:1.4.5-1.fc12.x86_64
iptables-debuginfo-0:1.4.5-1.fc12.x86_64
iptables-devel-0:1.4.5-1.fc12.x86_64
iptables-ipv6-0:1.4.5-1.fc12.x86_64
passenger-0:2.2.15-1.fc13.x86_64
passenger-debuginfo-0:2.2.15-1.fc13.x86_64
rubygem-pg-0:0.9.0-1.fc13.x86_64

9.2. Consultar repositorios con repoquery

repoquery es un programa para consultar información en los repositorios YUM, éstas son similares a las consultas rpm.
repoquery es una herramienta YUM que tiene un conjunto de opciones profundas y complicadas. Está pensada como una herramienta análoga a rpm -q pero ejecutada sobre los repositorios remotos, esto explica el por qué de lo complicado y profundo. A continuación se muestran algunos usos comunes.
Tal vez la consulta más frecuente es preguntar sobre un paquete en particular, a diferencia de rpm -qi <nombre-de-paquete\>, repoquery no requiere que el paquete esté instalado.
$ repoquery -i ruby-gtk2

Name        : ruby-gtk2
Version     : 1.0.3
Release     : 2.fc16
Architecture: x86_64
Size        : 4753
Packager    : Fedora Project
Group       : Development/Languages
URL         : http://ruby-gnome2.sourceforge.jp/
Repository  : fedora
Summary     : Non-Gem support package for gtk2
Source      : rubygem-gtk2-1.0.3-2.fc16.src.rpm
Description :
This package provides non-Gem support for gtk2.
Por omisión repoquery actúa sobre los repositorios configurados y habilitados en la configuración yum. Puede habilitar/deshabilitar repositorios al vuelo usando las opciones --enablerepo=repoid y --disablerepo=repoid. Ocasionalmente sólo se requiere consultar un repositorio en particular, use en esos casos la opción --repoid=repoid. En este último caso sólo ése repositorio será considerado sin importar la configuración de yum.
Ocurre con cierta frecuencia que se desea consultar un repositorio no configurado aún. repoquery maneja esta situación con el uso de la opción --repofrompath:
$ repoquery  --repofrompath=nombredelrepo,http://ruta/al/repo --repoid=nombredelrepo  -q -a
repoquery puede trabajar sobre cualquier arquitectura, por omisión utiliza las arquitecturas del sistema sobre el que está siendo ejecutado. Sin embargo se pueden especificar las arquitecturas utilizando la opción --archlist.
Sólo paquetes i686 en el repositorio 'fedora':
$ repoquery --archlist=i386 --repoid=fedora -a | head
chealpix-0:2.13a-2.fc14.i386
chealpix-devel-0:2.13a-2.fc14.i386
elilo-0:3.6-9.i386
frysk-0:0.4-30.fc15.i386
frysk-devel-0:0.4-30.fc15.i386
frysk-gnome-0:0.4-30.fc15.i386
gnome-applet-cpufire-0:1.6-3.fc14.i386
healpix-0:2.13a-2.fc14.i386
healpix-c++-0:2.13a-2.fc14.i386
healpix-c++-devel-0:2.13a-2.fc14.i386
Sólo paquetes i686 e i386 en el repositorio 'fedora':
$ repoquery --archlist=i686,i386 --repoid=fedora -a 
0xFFFF-0:0.3.9-5.fc15.i686
389-admin-0:1.1.16-1.fc15.i686
389-adminutil-0:1.1.13-2.fc15.i686
389-adminutil-devel-0:1.1.13-2.fc15.i686
389-ds-base-0:1.2.8.2-1.fc15.i686
389-ds-base-devel-0:1.2.8.2-1.fc15.i686
389-ds-base-libs-0:1.2.8.2-1.fc15.i686
389-dsgw-0:1.1.6-2.fc15.i686
3Depict-0:0.0.4-2.fc15.i686
3proxy-0:0.6.1-11.fc15.i686
...
ealpix-0:2.13a-2.fc14.i386
chealpix-devel-0:2.13a-2.fc14.i386
elilo-0:3.6-9.i386
frysk-0:0.4-30.fc15.i386
frysk-devel-0:0.4-30.fc15.i386
frysk-gnome-0:0.4-30.fc15.i386
...
En la salida anterior no están ordenados los resultados, los resultados i386 fueron insertados en esa posición de forma consecutiva para resaltar su inclusión en listado.
Sólo paquetes fuente srpms:
$ repoquery --archlist=src --repoid=fedora-source -a | head	
0xFFFF-0:0.3.9-5.fc15.src
389-admin-0:1.1.16-1.fc15.src
389-admin-console-0:1.1.7-2.fc15.src
389-adminutil-0:1.1.13-2.fc15.src
389-console-0:1.1.4-2.fc15.src
389-ds-0:1.2.1-2.fc15.src
389-ds-base-0:1.2.8.2-1.fc15.src
389-ds-console-0:1.2.5-1.fc15.src
389-dsgw-0:1.1.6-2.fc15.src
3Depict-0:0.0.4-2.fc15.src
Listar el contenido de un paquete dado.
$ repoquery --list iftop
/usr/sbin/iftop
/usr/share/doc/iftop-0.17
/usr/share/doc/iftop-0.17/COPYING
/usr/share/doc/iftop-0.17/ChangeLog
/usr/share/doc/iftop-0.17/README
/usr/share/doc/iftop-0.17/TODO
/usr/share/man/man8/iftop.8.gz
Listar paquetes propietario de un archivo instalado dado.
$ repoquery --file /usr/bin/yum
yum-0:3.2.25-1.fc12.noarch
yum-0:3.2.27-3.fc12.noarch
Uso de repoquery limitándolo a los paquetes instalados.
$ repoquery --pkgnarrow=installed --whatrequires --alldeps lsof
rkhunter-0:1.3.6-7.fc12.noarch
rkhunter-0:1.3.4-8.fc12.noarch
libguestfs-1:1.0.75-1.fc12.i686
libguestfs-1:1.2.7-1.fc12.1.i686
Si necesita averiguar cuáles srpms tienen un requerimiento de construcción sobre un paquete en particular, ejecute:
$ repoquery --archlist=src --repoid=fedora-source --whatrequires lsof
libguestfs-1:1.0.75-1.fc12.src
Si necesita averiguar el árbol de proveedores de dependencias de un paquete dado, ejecute:
$ repoquery --requires --output=ascii-tree fwsnort

fwsnort-1.6.1-1.fc16.noarch [cmd line]
 \_  bash-4.2.20-1.fc16.x86_64 [1: /bin/sh]
 |   \_  glibc-2.14.90-19.i686 [1: rtld(GNU_HASH)]
 |   |   \_  basesystem-10.0-5.fc16.noarch [1: basesystem]
 |   |   |   \_  filesystem-2.4.44-1.fc16.x86_64 [1: filesystem]
 |   |   |   |   \_  setup-2.8.36-2.fc16.noarch [1: setup]
 |   |   |   \_  setup-2.8.36-2.fc16.noarch [1: setup]
 |   |   \_  glibc-common-2.14.90-19.x86_64 [1: glibc-common = 2.14.90-19]
 |   |   |   \_  bash-4.2.20-1.fc16.x86_64 [2: /bin/bash, /bin/sh]
 |   |   |   \_  glibc-2.14.90-19.i686 [2: glibc = 2.14.90-19, rtld(GNU_HASH)]
 ... ...
 ... ...
 |   \_  perl-threads-shared-1.37-190.fc16.x86_64 [2: perl(threads::shared), perl(threads::shared) >= 1.21]
 |   |   \_  glibc-2.14.90-19.i686 [1: rtld(GNU_HASH)]
 |   |   \_  glibc-2.14.90-19.x86_64 [6: libc.so.6()(64bit), libc.so.6(GLIBC_2.2.5)(64bit), libpthread.so.0()(64bit), libpthread.so.0(GLIBC_2.2.5)(64bit), libpthread.so.0(GLIBC_2.3.2)(64bit), rtld(GNU_HASH)]
 |   |   \_  4:perl-5.14.2-190.fc16.x86_64 [4: perl = 4:5.14.2-190.fc16, perl >= 5.008, perl(strict), perl(warnings)]
 |   |   \_  perl-Scalar-List-Utils-1.23-190.fc16.x86_64 [1: perl(Scalar::Util)]
 \_  perl-IPTables-Parse-0.7-9.fc16.noarch [1: perl(IPTables::Parse)]
 |   \_  4:perl-5.14.2-190.fc16.x86_64 [7: perl >= 5.006, perl(:MODULE_COMPAT_5.14.0), perl(Carp), perl(POSIX), perl(strict), perl(vars), perl(warnings)]
 \_  perl-Net-IPv4Addr-0.10-11.fc16.noarch [1: perl(Net::IPv4Addr)]
 |   \_  4:perl-5.14.2-190.fc16.x86_64 [6: /usr/bin/perl, perl(:MODULE_COMPAT_5.14.1), perl(Carp), perl(Getopt::Long), perl(strict), perl(vars)]
 \_  perl-PathTools-3.33-190.fc16.x86_64 [1: perl(Cwd)]
 |   \_  glibc-2.14.90-19.i686 [1: rtld(GNU_HASH)]
 |   \_  glibc-2.14.90-19.x86_64 [5: libc.so.6()(64bit), libc.so.6(GLIBC_2.2.5)(64bit), libc.so.6(GLIBC_2.3.4)(64bit), libc.so.6(GLIBC_2.4)(64bit), rtld(GNU_HASH)]
 |   \_  4:perl-5.14.2-190.fc16.x86_64 [5: perl = 4:5.14.2-190.fc16, perl(Exporter), perl(File::Basename), perl(strict), perl(vars)]
El árbol es bien extenso, si quiere limitar la profundidad puede hacerlo especificando la opción --level como se muestra a continuación.
$ repoquery --requires --output=ascii-tree --level 1 fwsnort 

fwsnort-1.6.1-1.fc16.noarch [cmd line]
 \_  bash-4.2.20-1.fc16.x86_64 [1: /bin/sh]
 \_  iptables-1.4.12-2.fc16.i686 [1: iptables]
 \_  iptables-1.4.12-2.fc16.x86_64 [1: iptables]
 \_  logrotate-3.8.0-3.fc16.x86_64 [1: logrotate]
 \_  4:perl-5.14.2-190.fc16.x86_64 [9: /usr/bin/perl, perl(:MODULE_COMPAT_5.14.1), perl(Data::Dumper), perl(File::Copy), perl(File::Path), perl(Getopt::Long), perl(IO::Socket), perl(Sys::Hostname), perl(strict)]
 \_  perl-IPTables-Parse-0.7-9.fc16.noarch [1: perl(IPTables::Parse)]
 \_  perl-Net-IPv4Addr-0.10-11.fc16.noarch [1: perl(Net::IPv4Addr)]
 \_  perl-PathTools-3.33-190.fc16.x86_64 [1: perl(Cwd)]
Si necesita una lista formateada de paquetes, con su url y el repositorio de donde proviene puede usar repoquery así:
$ repoquery --qf="%{name} %{repoid} %{location}" pkg1 pkg2 pkg3
$ repoquery --qf="%{name} %{repoid} %{location}" ruby-gtk2 ruby
ruby updates http://download.fedoraproject.org/pub/fedora/linux/updates/13/x86_64/ruby-1.8.6.399-6.fc13.x86_64.rpm
ruby-gtk2 updates http://download.fedoraproject.org/pub/fedora/linux/updates/13/x86_64/ruby-gtk2-0.90.2-1.fc13.x86_64.rpm
Abajo otro ejemplo de uso del formato de consulta con las licencias.
$ repoquery --qf "%{ui_nevra} %{license}" rpm*
rpm-4.9.0-9.fc15.x86_64 GPLv2+
rpm-apidocs-4.9.0-9.fc15.noarch GPLv2+
rpm-build-4.9.0-9.fc15.x86_64 GPLv2+
rpm-build-libs-4.9.0-9.fc15.i686 GPLv2+ and LGPLv2+ with exceptions
rpm-build-libs-4.9.0-9.fc15.x86_64 GPLv2+ and LGPLv2+ with exceptions
rpm-cron-4.9.0-9.fc15.noarch GPLv2+
...
Consulta de paquetes por patrón a un repositorio específico:
$ repoquery --repoid=updates-testing fw*
fwsnort-0:1.0.6-7.fc13.noarch
Para más detalles vea la página del manual al respecto, man repoquery.

9.3. Gestión de grupos con yum-groups-manager

yum-groups-manager se usa para crear o editar el archivo de metadatos de grupos para un repositorio YUM. Usar esta herramienta es frecuentemente mucho más fácil que editar el XML correspondiente a mano. yum-groups-manager puede cargar un archivo entero de metadatos de grupo o crear uno nuevo o editar un grupo existente y luego escribir los metadatos como salida.
Antes de poder utilizar esta herramienta necesita que los paquetes que se vayan a agregar a los grupos correspondientes estén disponibles vía yum, es decir, deben ya estar disponibles en los repositorios configurados.
Creación del grupo YUM Rubyera
# yum-groups-manager -n "Rubyera" --id=rubyera --description="Rubyera, paquetes producidos por..." --save=comps.xml --mandatory passenger
# cat comps.xml 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE comps PUBLIC "-//Red Hat, Inc.//DTD Comps info//EN" "comps.dtd">
<comps>
        
  <group>
   <id>rubyera</id>
   <default>false</default>
   <uservisible>true</uservisible>
   <display_order>1024</display_order>
   <name>Rubyera</name>
   <description>Rubyera, paquetes producidos por...</description>
    <packagelist>
      <packagereq type="mandatory">passenger</packagereq>
    </packagelist>
  </group>
</comps>
Una vez creado el archivo comps.xml y colocándolo en el mismo directorio donde se encuentran los rpms, se debe volver a ejecutar el comando createrepo especificando ahora el nombre del archivo que define los grupos.
# createrepo --verbose -g comps.xml /var/www/html/x86_64/
Ahora el grupo se encuentra disponible.
# yum clean metadata
# yum groupinfo Rubyera 
Complementos cargados:download-order, downloadonly, filter-data, list-data, presto, verify
Configurando el proceso de grupo
...
rubyera                                                                                                                              | 1.9 kB     00:00 ... 
rubyera/group_gz                                                                                                                     |  341 B     00:00 ... 

Grupo: Rubyera
 Descripción: Rubyera, paquetes producidos por ...
 Paquetes obligatorios:
   passenger

Un tipo de aplicación a la vez

No se pueden agregar aplicaciones mandatorias y opcionales o por omisión en una sola línea de comando, por lo que debe hacerse en comandos separados, por ejemplo, para agregar paquetes opcionales se puede hacer:
# yum-groups-manager --id=rubyera --load=repodata/comps.xml --save=comps.xml --optional dhcp_probe
Note que no se puede operar sobre el mismo archivo de entrada y de salida. La opción --load carga el archivo comps.xml producido previamente por createrepo mientras que --save está operando sobre el directorio donde se encuentran los rpms, en este caso en /var/www/html/x86_64.
Una vez se tiene el nuevo archivo comps.xml, que se muestra abajo, se debe reconstruir el repositorio YUM con createrepo.
# cat rubyera.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE comps PUBLIC "-//Red Hat, Inc.//DTD Comps info//EN" "comps.dtd">
<comps>
        
  <group>
   <id>rubyera</id>
   <default>false</default>
   <uservisible>true</uservisible>
   <display_order>1024</display_order>
   <name>Rubyera</name>
   <description>Rubyera, paquetes producidos por...</description>
    <packagelist>
      <packagereq type="optional">dhcp_probe</packagereq>
      <packagereq type="mandatory">passenger</packagereq>
    </packagelist>
  </group>
</comps>
# createrepo --verbose -g comps.xml /var/www/html/x86_64/
Verificación de la nueva composición del grupo Rubyera.
# yum clean metadata
# yum groupinfo Rubyera 
...
Grupo: Rubyera
 Descripción: Rubyera, paquetes producidos por ...
 Paquetes obligatorios:
   passenger
 Paquetes opcionales:
   dhcp_probe
Para agregar un segundo grupo:
# yum-groups-manager --name="Rubyera debuginfo" --id=rubyera-debuginfo --load=repodata/comps.xml --save=comps.xml dhcp_probe-debuginfo passenger-debuginfo
# cat comps.xml 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE comps PUBLIC "-//Red Hat, Inc.//DTD Comps info//EN" "comps.dtd">
<comps>
        
  <group>
   <id>rubyera</id>
   <default>false</default>
   <uservisible>true</uservisible>
   <display_order>1024</display_order>
   <name>Rubyera</name>
   <description>Rubyera, paquetes producidos por ...</description>
    <packagelist>
      <packagereq type="mandatory">passenger</packagereq>
      <packagereq type="optional">dhcp_probe</packagereq>
    </packagelist>
  </group>        
  <group>
   <id>rubyera-debuginfo</id>
   <default>false</default>
   <uservisible>true</uservisible>
   <display_order>1024</display_order>
   <name>Rubyera debuginfo</name>
   <description></description>
    <packagelist>
      <packagereq type="default">dhcp_probe-debuginfo</packagereq>
      <packagereq type="default">passenger-debuginfo</packagereq>
    </packagelist>
  </group>
</comps>
# yum groupinfo "Rubyera debuginfo"
...
Grupo: Rubyera debuginfo
 Paquetes predeterminados:
   dhcp_probe-debuginfo
   passenger-debuginfo

9.4. Creando espejos YUM con reposync

reposync se utiliza para sincronizar un repositorio remoto YUM con un directorio local utilizando yum para recuperar los paquetes.
Uso:
reposync [options]
Opciones:
Options:
  -h, --help            show this help message and exit
  -c CONFIG, --config=CONFIG
                        config file to use (defaults to /etc/yum.conf)
  -a ARCH, --arch=ARCH  act as if running the specified arch (default: current
                        arch, note: does not override $releasever)
  -r REPOID, --repoid=REPOID
                        specify repo ids to query, can be specified multiple
                        times (default is all enabled)
  -e CACHEDIR, --cachedir=CACHEDIR
                        directory in which to store metadata
  -t, --tempcache       Use a temp dir for storing/accessing yum-cache
  -d, --delete          delete local packages no longer present in repository
  -p DESTDIR, --download_path=DESTDIR
                        Path to download packages to: defaults to current dir
  -g, --gpgcheck        Remove packages that fail GPG signature checking after
                        downloading
  -u, --urls            Just list urls of what would be downloaded, don't
                        download
  -n, --newest-only     Download only newest packages per-repo
  -q, --quiet           Output as little as possible
  -l, --plugins         enable yum plugin support
A partir del directorio local con los rpms, es trivial reconstruir los metadatos con createrepo.
Ejemplo de uso para sincronizar con el repositorio ejemplo rubyera.
$ reposync --repoid=rubyera 
rubyera                                              | 3.2 kB     00:00 ... 
[rubyera: 1     of 14    ] Downloading dhcp_probe-1.3.0-2.fc13.x86_64.rpm
[rubyera: 2     of 14    ] Downloading dhcp_probe-1.3.0-4.fc13.x86_64.rpm
[rubyera: 3     of 14    ] Downloading dhcp_probe-1.3.0-3.fc13.x86_64.rpm
[rubyera: 4     of 14    ] Downloading dhcp_probe-debuginfo-1.3.0-2.fc13.x86_64.rpm
[rubyera: 5     of 14    ] Downloading dhcp_probe-debuginfo-1.3.0-4.fc13.x86_64.rpm
[rubyera: 6     of 14    ] Downloading dhcp_probe-debuginfo-1.3.0-3.fc13.x86_64.rpm
[rubyera: 7     of 14    ] Downloading dhcp_probe-debuginfo-1.3.0-1.fc13.x86_64.rpm
[rubyera: 8     of 14    ] Downloading iptables-1.4.5-1.fc12.x86_64.rpm
[rubyera: 9     of 14    ] Downloading iptables-debuginfo-1.4.5-1.fc12.x86_64.rpm
[rubyera: 10    of 14    ] Downloading iptables-devel-1.4.5-1.fc12.x86_64.rpm
[rubyera: 11    of 14    ] Downloading iptables-ipv6-1.4.5-1.fc12.x86_64.rpm
[rubyera: 12    of 14    ] Downloading passenger-2.2.15-1.fc13.x86_64.rpm
[rubyera: 13    of 14    ] Downloading passenger-debuginfo-2.2.15-1.fc13.x86_64.rpm
[rubyera: 14    of 14    ] Downloading rubygem-pg-0.9.0-1.fc13.x86_64.rpm
Si se intenta nuevamente sincronizar, reposync no volverá a descargar los paquetes existentes ahorrando ancho de banda.
$ reposync --repoid=rubyera 
[rubyera: 1     of 14    ] Skipping existing dhcp_probe-1.3.0-2.fc13.x86_64.rpm
[rubyera: 2     of 14    ] Skipping existing dhcp_probe-1.3.0-4.fc13.x86_64.rpm
[rubyera: 3     of 14    ] Skipping existing dhcp_probe-1.3.0-3.fc13.x86_64.rpm
[rubyera: 4     of 14    ] Skipping existing dhcp_probe-debuginfo-1.3.0-2.fc13.x86_64.rpm
[rubyera: 5     of 14    ] Skipping existing dhcp_probe-debuginfo-1.3.0-4.fc13.x86_64.rpm
[rubyera: 6     of 14    ] Skipping existing dhcp_probe-debuginfo-1.3.0-3.fc13.x86_64.rpm
[rubyera: 7     of 14    ] Skipping existing dhcp_probe-debuginfo-1.3.0-1.fc13.x86_64.rpm
[rubyera: 8     of 14    ] Skipping existing iptables-1.4.5-1.fc12.x86_64.rpm
[rubyera: 9     of 14    ] Skipping existing iptables-debuginfo-1.4.5-1.fc12.x86_64.rpm
[rubyera: 10    of 14    ] Skipping existing iptables-devel-1.4.5-1.fc12.x86_64.rpm
[rubyera: 11    of 14    ] Skipping existing iptables-ipv6-1.4.5-1.fc12.x86_64.rpm
[rubyera: 12    of 14    ] Skipping existing passenger-2.2.15-1.fc13.x86_64.rpm
[rubyera: 13    of 14    ] Skipping existing passenger-debuginfo-2.2.15-1.fc13.x86_64.rpm
[rubyera: 14    of 14    ] Skipping existing rubygem-pg-0.9.0-1.fc13.x86_64.rpm
Un ejemplo de uso es crear un espejo local del repositorio fedora y otro del repositorio updates y usar dichos repositorios localmente. De esta forma sería sumamente rápido instalar y actualizar paquetes. Lo importante es mantener sincronizado regularmente el repositorio espejo local con el repositorio maestro correspondiente llamando por ejemplo cada hora a reposync y a createrepo. Es importante notar que el archivo de grupos no es descargado por reposync. Use wget o curl para descargarlo.
Una de las ventajas de usar reposync en vez de por ejemplo espejado con rsync, ftp o http, es que reposync al trabajar con yum se beneficia del listado de espejos existentes en la definición del repositorio que se quiere espejar. A cambio, cuando se usa rsync,ftp o http, se depende de un servidor maestro único, que si falla, es más difícil recuperarse de dicha falla y manejarla, con reposync es totalmente transparente y simple de hacer.

9.5. Repositorios explorables web con repoview

repoview hace que el repositorio YUM sea explorable creando una serie de páginas estáticas HTML. Utiliza el motor de plantillas kid para crear las páginas así que es personalizable. Para instalar:
# yum install repoview
repoview requiere que el repositorio tenga los metadatos en archivos sqlite, si no es así, obtendrá un error como el siguiente.
# repoview /var/www/html/x86_64
Examining repository...Sorry, sqlite files not found in the repository.
Please rerun createrepo with a -d flag and try again.
Corrija y reconstruya el repositorio YUM utilizando --database para que se generen los archivos sqlite.
# createrepo --verbose --database -g comps.xml /var/www/html/x86_64
1/14 - dhcp_probe-1.3.0-2.fc13.x86_64.rpm
2/14 - dhcp_probe-debuginfo-1.3.0-2.fc13.x86_64.rpm
3/14 - rubygem-pg-0.9.0-1.fc13.x86_64.rpm
4/14 - dhcp_probe-1.3.0-4.fc13.x86_64.rpm
5/14 - iptables-debuginfo-1.4.5-1.fc12.x86_64.rpm
6/14 - passenger-debuginfo-2.2.15-1.fc13.x86_64.rpm
7/14 - iptables-ipv6-1.4.5-1.fc12.x86_64.rpm
8/14 - dhcp_probe-debuginfo-1.3.0-4.fc13.x86_64.rpm
9/14 - iptables-devel-1.4.5-1.fc12.x86_64.rpm
10/14 - dhcp_probe-debuginfo-1.3.0-3.fc13.x86_64.rpm
11/14 - dhcp_probe-1.3.0-3.fc13.x86_64.rpm
12/14 - dhcp_probe-debuginfo-1.3.0-1.fc13.x86_64.rpm
13/14 - passenger-2.2.15-1.fc13.x86_64.rpm
14/14 - iptables-1.4.5-1.fc12.x86_64.rpm

Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Starting other db creation: Sun Aug 15 07:52:45 2010
Ending other db creation: Sun Aug 15 07:52:46 2010
Starting filelists db creation: Sun Aug 15 07:52:46 2010
Ending filelists db creation: Sun Aug 15 07:52:46 2010
Starting primary db creation: Sun Aug 15 07:52:46 2010
Ending primary db creation: Sun Aug 15 07:52:48 2010
Sqlite DBs complete
Ahora es posible ejecutar el comando repoview con éxito, abajo un ejemplo simple.
# repoview --title "rubyera repo for F13 x86_64" /var/www/html/x86_64
Examining repository...done
Opening primary database...done
Opening changelogs database...done
Parsing comps.xml...done
Examining state db...done
Collecting letters...done
Writing package dhcp_probe.html
Writing package passenger.html
Writing group rubyera.group.html
Writing package dhcp_probe-debuginfo.html
Writing package passenger-debuginfo.html
Writing group rubyera-debuginfo.group.html
Writing group letter_d.group.html
Writing package iptables.html
Writing package iptables-debuginfo.html
Writing package iptables-devel.html
Writing package iptables-ipv6.html
Writing group letter_i.group.html
Writing group letter_p.group.html
Writing package rubygem-pg.html
Writing group letter_r.group.html
Collecting latest packages...done
Writing index.html...done
# ls
comps.xml
dhcp_probe-1.3.0-2.fc13.x86_64.rpm
...
passenger-2.2.15-1.fc13.x86_64.rpm
repodata
repoview                            << directorio nuevo
rubygem-pg-0.9.0-1.fc13.x86_64.rpm
Apuntando un explorador web al archivo /var/www/httml/x86_64/repoview/index.html podrá obtener un resultado visual similar al siguiente.
Pantallazo de la salida de repoview

9.6. Dependencias no resueltas con repoclosure

repoclosure lee los metadatos de una serie de repositorios y verifica todas las dependencias en todos los paquetes y su resolución. Imprime una lista de paquetes con dependencias no resueltas.
Uso:
$ repoclosure -h
Usage: 
    Read in the metadata of a series of repositories and check all the   
    dependencies in all packages for resolution. Print out the list of
    packages with unresolved dependencies
    
    /usr/bin/repoclosure [-c <config file>] [-a <arch>] [-r <repoid>] [-r <repoid2>]
    
Options:
  -h, --help            show this help message and exit
  -c CONFIG, --config=CONFIG
                        config file to use (defaults to /etc/yum.conf)
  -a ARCH, --arch=ARCH  check packages of the given archs, can be specified
                        multiple times (default: current arch)
  --basearch=BASEARCH   set the basearch for yum to run as
  -b, --builddeps       check build dependencies only (needs source repos
                        enabled)
  -r REPOID, --repoid=REPOID
                        specify repo ids to query, can be specified multiple
                        times (default is all enabled)
  -t, --tempcache       Use a temp dir for storing/accessing yum-cache
  -q, --quiet           quiet (no output to stderr)
  -n, --newest          check only the newest packages in the repos
  --repofrompath=REPOFROMPATH
                        specify repoid & paths of additional repositories -
                        unique repoid and path required, can be specified
                        multiple times. Example.
                        --repofrompath=myrepo,/path/to/repo
  -p PKG, --pkg=PKG     check closure for this package only
  -g GROUP, --group=GROUP
                        check closure for packages in this group only
Ejemplo de uso:
# repoclosure -r rubyera
Reading in repository metadata - please wait....
Checking Dependencies
Repos looked at: 1
   rubyera
Num Packages in Repos: 14
package: dhcp_probe-1.3.0-2.fc13.x86_64 from rubyera
  unresolved deps: 
     libc.so.6(GLIBC_2.2.5)(64bit)
     libc.so.6()(64bit)
     rtld(GNU_HASH)
     libc.so.6(GLIBC_2.3.4)(64bit)
     libc.so.6(GLIBC_2.7)(64bit)
     libc.so.6(GLIBC_2.4)(64bit)
     libpcap.so.1()(64bit)
     libnet.so.1()(64bit)
package: dhcp_probe-1.3.0-3.fc13.x86_64 from rubyera
  unresolved deps: 
     libc.so.6(GLIBC_2.2.5)(64bit)
     libc.so.6()(64bit)
     rtld(GNU_HASH)
     libc.so.6(GLIBC_2.3.4)(64bit)
     libc.so.6(GLIBC_2.7)(64bit)
     libc.so.6(GLIBC_2.4)(64bit)
     libpcap.so.1()(64bit)
     libnet.so.1()(64bit)

9.7. Seguimiento de paquetes con repotrack

repotrack se mantiene al tanto de cualquier paquete y sus dependencias. Descargará el o los paquetes que desea monitorear y todas sus dependencias de forma recursiva.
Uso:
repotrack [options] package1 [package2] [package..]
Opciones:
  -h, --help            show this help message and exit
  -c CONFIG, --config=CONFIG
                        config file to use (defaults to /etc/yum.conf)
  -a ARCH, --arch=ARCH  check as if running the specified arch (default:
                        current arch)
  -r REPOID, --repoid=REPOID
                        specify repo ids to query, can be specified multiple
                        times (default is all enabled)
  -t, --tempcache       Use a temp dir for storing/accessing yum-cache
  -p DESTDIR, --download_path=DESTDIR
                        Path to download packages to
  -u, --urls            Just list urls of what would be downloaded, don't
                        download
  -n, --newest          Toggle downloading only the newest packages(defaults
                        to newest-only)
  -q, --quiet           Output as little as possible
Antes de comenzar alguna descarga, intente correr con la opción -u para obtener el listado de urls que serán descargados. Puede que se lleve algunas sopresas ya que repotrack considerará para descarga todos los proveedores para una dependencia dada.
$ repotrack -u fwsnort
http://download.fedoraproject.org/pub/fedora/linux/releases/13/Everything/x86_64/os/Packages/MAKEDEV-3.24-4.x86_64.rpm
http://download.fedoraproject.org/pub/fedora/linux/updates/13/x86_64/amanda-2.6.1p2-4.fc13.x86_64.rpm
http://download.fedoraproject.org/pub/fedora/linux/updates/13/x86_64/amanda-2.6.1p2-4.fc13.i686.rpm
...
http://download.fedoraproject.org/pub/fedora/linux/updates/13/x86_64/xinetd-2.3.14-32.fc13.x86_64.rpm
http://download.fedoraproject.org/pub/fedora/linux/releases/13/Everything/x86_64/os/Packages/zlib-1.2.3-23.fc12.x86_64.rpm
http://download.fedoraproject.org/pub/fedora/linux/releases/13/Everything/x86_64/os/Packages/zlib-1.2.3-23.fc12.i686.rpm

Capítulo 10. PackageKit CLI

En este manual se ha profundizado en el sistema YUM como herramienta nativa para la gestión de software en la línea de comandos, sin embargo es interesante resaltar que la suite PackageKit CLI ofrece universalizar la gestión del software en la línea de comandos entre múltiples distribuciones GNU/Linux. Package CLI tiene relativamente poca documentación y no es el foco principal del desarrollo del proyecto PackageKit así que se le dará un vistazo general a sus capacidades actuales.

10.1. pkcon

pkcon es la interfase de PackageKit en la línea de comandos o CLI a la gestión del software.
En general, al ejecutar pkcon como usuario regular y si se requiere de privilegios de superusuario para completar la acción, no se le preguntará por contraseña sino que siplemente fallará con error de no autorizado. Puede escalar priviliegios y ejecutar el comando usando sudo o simplemente ejecutar el comando directamente como root con la ayuda de su o después de hacer login shell root vía una consola virtual u otro mecanismo de consola remota.

Básicamente ejemplos

Ya que no se posee mayor documentación, la mayoría de la documentación abajo son ejemplos de uso para las operaciones más comunes. También tenga en cuenta que algunos subcomandos simplemente no funcionan.

10.1.1. Documentación

Ayuda en línea
Uso:
  pkcon [OPCIÓN…] PackageKit Console Program

Interfaz de consola de PackageKit

Subcomandos:
  get-actions
  get-groups
  get-filters
  get-transactions
  get-time
  search [name|details|group|file] [data]
  install [packages]
  install-local [files]
  download [directory] [packages]
  install-sig [type] [key_id] [package_id]
  remove [package]
  update <package>
  refresh [--force]
  resolve [package]
  get-updates
  get-depends [package]
  get-requires [package]
  get-details [package]
  get-distro-upgrades
  get-files [package]
  get-update-detail [package]
  get-packages
  repo-list
  repo-enable [repo_id]
  repo-disable [repo_id]
  what-provides [search]
  get-categories


Opciones de ayuda:
  -?, --help               Mostrar opciones de ayuda
  --help-all               Muestra todas las opciones de ayuda

Opciones de la aplicación:
  --version                Mostrar la versión del programa y salir
  --filter                 Establecer el filtro, p. ej. instalado
  --root                   Establecer la raíz de instalación, p. ej., «/», o «/mnt/ltsp»
  -n, --nowait             Salir sin esperar que las acciones se completen
  -y, --noninteractive     Instalar los paquetes sin confirmación
  --background             Ejecuta el comando utilizando menos potencia, y el ancho de bando libre
  -p, --plain              Imprime en la pantalla una salida legible por una máquina, en lugar de utilizar widgets animados
  -c, --cache-age          El tiempo máximo de edad para la caché de metadatos. Usar -1 para «nunca».
  -h, --help               Mostrar las opciones de ayuda.
  -v, --verbose            Mostrar información de depuración para todos los archivos

10.1.2. Búsquedas

Búsqueda por nombre
Búsqueda por patrón en el nombre del paquete.
search name [data]
$ pkcon search name octa
Transacción:	Buscando por nombre
Estado: 	Esperando en cola
Estado: 	Comenzando
Estado: 	Consultando
Resultados:
Disponible   GMT-octave-4.5.8-1.fc17.x86_64
Disponible   csdp-octave-6.1.1-2.fc17.noarch
Disponible   octave-6:3.6.1-2.fc17.i686
Disponible   octave-6:3.6.1-2.fc17.x86_64
Disponible   octave-6:3.6.2-2.fc17.i686
Disponible   octave-6:3.6.2-2.fc17.x86_64
Disponible   octave-audio-1.1.4-6.fc17.x86_64
Disponible   octave-communications-1.1.0-5.fc17.x86_64
Disponible   octave-control-2.2.4-2.fc17.x86_64
Disponible   octave-devel-6:3.6.1-2.fc17.i686
Disponible   octave-devel-6:3.6.1-2.fc17.x86_64
Disponible   octave-devel-6:3.6.2-2.fc17.i686
Disponible   octave-devel-6:3.6.2-2.fc17.x86_64
Disponible   octave-doc-6:3.6.1-2.fc17.noarch
Disponible   octave-doc-6:3.6.2-2.fc17.noarch
Disponible   octave-gsl-1.0.8-3.fc17.x86_64
Disponible   octave-image-1.0.15-3.fc17.x86_64
Disponible   octave-miscellaneous-1.0.11-6.fc17.x86_64
Disponible   octave-octcdf-1.1.4-2.fc17.x86_64
Disponible   octave-optim-1.0.17-3.fc17.x86_64
Disponible   octave-quaternion-1.0.0-4.fc17.noarch
Disponible   octave-signal-1.1.2-2.fc17.x86_64
Disponible   octave-specfun-1.1.0-3.fc17.x86_64
Disponible   octave-struct-1.0.9-7.fc17.x86_64
Disponible   octave-symbolic-1.1.0-2.fc17.x86_64
Disponible   pfstools-octave-1.8.3-7.fc17.x86_64
Disponible   plplot-octave-5.9.9-6.svn12161.fc17.x86_64
Disponible   qtoctave-0.10.1-11.fc17.x86_64
Búsqueda en detalles
Búsqueda por patrón en los detalles de los paquetes.
search details [data]
$ pkcon search details squid
Transacción:	Buscando por detalles
Estado: 	Esperando en cola
Estado: 	Comenzando
Estado: 	Consultando
Resultados:
Disponible   awstats-7.0-8.fc17.noarch
Disponible   calamaris-2.59-5.fc17.noarch
Disponible   ccze-0.2.1-8.fc17.x86_64
Disponible   dansguardian-2.10.1.1-9.fc17.x86_64
Instalado    libecap-0.2.0-3.fc17.x86_64
Disponible   libecap-0.2.0-3.fc17.i686
Disponible   lightsquid-1.8-11.fc17.noarch
Disponible   lightsquid-apache-1.8-11.fc17.noarch
Disponible   mod_auth_ntlm_winbind-0.0.0-0.12.20070129svn713.fc17.x86_64
Instalado    squid-7:3.2.0.16-1.fc17.x86_64
Disponible   squid-sysvinit-7:3.2.0.16-1.fc17.x86_64
Disponible   squidGuard-1.4-10.fc17.x86_64
Disponible   tinyproxy-1.8.2-3.fc17.x86_64
Búsqueda de archivo
Búsqueda por patrón de paquetes que proven el archivo dado.
search file [data]
$ pkcon search file /etc/ddclient.conf
Transacción:	Buscando por archivos
Estado: 	Esperando en cola
Estado: 	Comenzando
Estado: 	Consultando
Resultados:
Instalado    ddclient-3.8.1-3.fc17.noarch

10.1.3. Instalar,actualizar y remover paquetes

Instalar paquetes desde los repositorios
$ su -c "pkcon install fwsnort"
...
Transacción:	Simulando la instalación
Estado: 	Esperando en cola
Estado: 	Comenzando
Porcentaje:	0
Estado: 	Ejecutando
Estado: 	Resolviendo dependencias
Porcentaje:	90
Estado: 	Instalando paquetes
Paquetes:	perl-IPTables-Parse-1.1-1.fc17.noarch
Paquetes:	perl-NetAddr-IP-4.058-2.fc17.x86_64
Paquetes:	fwsnort-1.6.2-1.fc17.noarch
Porcentaje:	100

Los siguientes paquetes tienen que ser instalados:
 perl-IPTables-Parse-1.1-1.fc17.noarch	Perl extension for parsing iptables firewall rulesets
 perl-NetAddr-IP-4.058-2.fc17.x86_64	Manages IPv4 and IPv6 addresses and subnets
 fwsnort-1.6.2-1.fc17.noarch	Translates Snort rules into equivalent iptables rules

¿Continuar con las modificaciones? [N/y] y

Transacción:	Instalando
Estado: 	Esperando en cola
Estado: 	Esperando autenticación
Estado: 	Esperando en cola
Estado: 	Comenzando
Porcentaje:	0
Estado: 	Ejecutando
Estado: 	Resolviendo dependencias
Porcentaje:	10
Estado: 	Descargando paquetes
Porcentaje:	40
Estado: 	Comprobando firmas
Estado: 	Comprobando modificaciones
Estado: 	Instalando paquetes
Paquetes:	perl-NetAddr-IP-4.058-2.fc17.x86_64
Porcentaje:	60
Porcentaje:	70
Paquetes:	perl-IPTables-Parse-1.1-1.fc17.noarch
Paquetes:	fwsnort-1.6.2-1.fc17.noarch
Porcentaje:	90
Porcentaje:	100
Estado: 	Escaneando aplicaciones
Estado: 	Obteniendo información
Porcentaje:	100
Resultados:
Instalado    fwsnort-1.6.2-1.fc17.noarch
Instalado    perl-IPTables-Parse-1.1-1.fc17.noarch
Instalado    perl-NetAddr-IP-4.058-2.fc17.x86_64
Instalar paquetes desde archivos rpm
$ su -c "pkcon install-local /home/gomix/rpmbuild/RPMS/rubygem-state_machine-1.1.2-4.fc17.noarch.rpm"
...
Transacción:	Simulando la instalación
Estado: 	Esperando en cola
Estado: 	Comenzando
Estado: 	Descargando información del repositorio
Porcentaje:	0
Estado: 	Ejecutando
Estado: 	Resolviendo dependencias
Porcentaje:	90
Estado: 	Instalando paquetes
Paquetes:	rubygem-state_machine-1.1.2-4.fc17.noarch
Paquetes:	netpbm-10.58.03-1.fc17.x86_64
Paquetes:	graphviz-ruby-2.28.0-16.fc17.x86_64
Paquetes:	lasi-1.1.1-4.fc17.x86_64
Paquetes:	graphviz-gd-2.28.0-16.fc17.x86_64
Paquetes:	gts-0.7.6-20.20111025.fc17.x86_64
Paquetes:	graphviz-2.28.0-16.fc17.x86_64
Porcentaje:	100

Los siguientes paquetes tienen que ser instalados:
 rubygem-state_machine-1.1.2-4.fc17.noarch	Adds support for creating state machines for attributes on any Ruby class
 netpbm-10.58.03-1.fc17.x86_64	A library for handling different graphics file formats
 graphviz-ruby-2.28.0-16.fc17.x86_64	Ruby extension for graphviz
 lasi-1.1.1-4.fc17.x86_64	C++ library for creating Postscript documents
 graphviz-gd-2.28.0-16.fc17.x86_64	Graphviz plugin for renderers based on gd
 gts-0.7.6-20.20111025.fc17.x86_64	GNU Triangulated Surface Library
 graphviz-2.28.0-16.fc17.x86_64	Graph Visualization Tools

¿Continuar con las modificaciones? [N/y] y 

Transacción:	Instalando archivos
Estado: 	Esperando en cola
Estado: 	Esperando autenticación
Estado: 	Esperando en cola
Estado: 	Comenzando
Porcentaje:	0
Estado: 	Ejecutando
Estado: 	Resolviendo dependencias
Porcentaje:	10
Estado: 	Descargando paquetes
Porcentaje:	40
Estado: 	Comprobando firmas
Estado: 	Comprobando modificaciones
Estado: 	Instalando paquetes
Paquetes:	lasi-1.1.1-4.fc17.x86_64
Porcentaje:	60
Paquetes:	netpbm-10.58.03-1.fc17.x86_64
Paquetes:	gts-0.7.6-20.20111025.fc17.x86_64
Porcentaje:	70
Paquetes:	graphviz-2.28.0-16.fc17.x86_64
Paquetes:	graphviz-gd-2.28.0-16.fc17.x86_64
Paquetes:	graphviz-ruby-2.28.0-16.fc17.x86_64
Porcentaje:	90
Paquetes:	rubygem-state_machine-1.1.2-4.fc17.noarch
Resultados:
Instalado    graphviz-2.28.0-16.fc17.x86_64
Instalado    graphviz-gd-2.28.0-16.fc17.x86_64
Instalado    graphviz-ruby-2.28.0-16.fc17.x86_64
Instalado    gts-0.7.6-20.20111025.fc17.x86_64
Instalado    lasi-1.1.1-4.fc17.x86_64
Instalado    netpbm-10.58.03-1.fc17.x86_64
Instalado    rubygem-state_machine-1.1.2-4.fc17.noarch
Actualizar paquetes
$ su -c "pkcon update tar"
...
Transacción:	Simulando la actualización
Estado: 	Esperando en cola
Estado: 	Comenzando
Porcentaje:	0
Estado: 	Ejecutando
Estado: 	Resolviendo dependencias
Porcentaje:	90
Estado: 	Instalando actualizaciones
Paquetes:	tar-2:1.26-7.fc17.x86_64
Estado: 	Limpiando paquetes
Paquetes:	tar-2:1.26-6.fc17.x86_64
Porcentaje:	100
Transacción:	Actualizando paquetes
Estado: 	Esperando en cola
Estado: 	Esperando autenticación
Estado: 	Esperando en cola
Estado: 	Comenzando
Porcentaje:	0
Estado: 	Ejecutando
Estado: 	Resolviendo dependencias
Porcentaje:	10
Estado: 	Descargando paquetes
Porcentaje:	20
Porcentaje:	40
Porcentaje:	60
Porcentaje:	70
Porcentaje:	100
Estado: 	Comprobando firmas
Estado: 	Comprobando modificaciones
Estado: 	Instalando actualizaciones
Paquetes:	tar-2:1.26-7.fc17.x86_64
Estado: 	Limpiando paquetes
Paquetes:	tar
Estado: 	Comprobando aplicaciones en uso
Estado: 	Obteniendo información
Porcentaje:	100
Resultados:
Actualizado  tar-2:1.26-7.fc17.x86_64
Limpios      tar
Remover paquetes
$ su -c "pkcon remove suitesparse"
...
Transacción:	Simulando eliminación
Estado: 	Esperando en cola
Estado: 	Comenzando
Porcentaje:	0
Estado: 	Ejecutando
Estado: 	Resolviendo dependencias
Porcentaje:	90
Estado: 	Eliminando paquetes
Paquetes:	suitesparse-3.6.1-3.fc17.x86_64
Porcentaje:	100
Transacción:	Eliminando
Estado: 	Esperando en cola
Estado: 	Esperando autenticación
Estado: 	Esperando en cola
Estado: 	Comenzando
Porcentaje:	0
Estado: 	Ejecutando
Estado: 	Resolviendo dependencias
Porcentaje:	10
Estado: 	Descargando paquetes
Estado: 	Comprobando modificaciones
Estado: 	Eliminando paquetes
Paquetes:	suitesparse
Porcentaje:	100
Resultados:
Eliminados   suitesparse

10.1.4. Información sobre paquetes

Listado de todos los paquetes. Si no tiene conexión a los repositorios configurados, puede tomarse su tiempo en responder.
$ pkcon get-packages 
Transacción:	Obteniendo paquetes
Estado: 	Esperando en cola
Estado: 	Comenzando
Estado: 	Consultando
Resultados:
Disponible   0xFFFF-0.3.9-6.fc17.x86_64
Disponible   389-admin-1.1.29-1.fc17.i686
Disponible   389-admin-1.1.29-1.fc17.x86_64
Disponible   389-admin-console-1.1.8-3.fc17.noarch
Disponible   389-admin-console-doc-1.1.8-3.fc17.noarch
Disponible   389-adminutil-1.1.15-2.fc17.x86_64
Disponible   389-adminutil-1.1.15-2.fc17.i686
Disponible   389-adminutil-devel-1.1.15-2.fc17.x86_64
Disponible   389-adminutil-devel-1.1.15-2.fc17.i686
...
Detalles del paquete
$ pkcon get-details fwsnort
Transacción:	Obteniendo detalles
Estado: 	Esperando en cola
Estado: 	Comenzando
Estado: 	Obteniendo información
Resultados:
Descripción del paquete
  package:     fwsnort-1.6.2-1.fc17.noarch
  license:     GPLv2+
  group:       other
  description: fwsnort translates Snort rules into equivalent iptables rules and generates
a Bourne shell script that implements the resulting iptables commands.

In addition, fwsnort (optionally) uses the IPTables::Parse module to parse the
iptables ruleset on the machine to determine which Snort rules are applicable
to the specific iptables policy.

fwsnort is able to translate approximately 60% of all rules from the
Snort-2.3.3 IDS into equivalent iptables rules.
  size:        0 bytes
  url:         http://www.cipherdyne.org/fwsnort/
Detalles de la actualización del paquete
No es necesario tener instalado el paquete previamente para ver esta información.
$ pkcon get-update-detail fwsnort
Transacción:	Obteniendo detalles de la actualización
Estado: 	Esperando en cola
Estado: 	Comenzando
Estado: 	Obteniendo información
Resultados:
Detalles acerca de la actualización:
 Paquetes: fwsnort-1.6.2-1.fc17.noarch
 Actualizaciones: 
 Sustituye: 
 Fabricante: https://admin.fedoraproject.org/updates/F17/FEDORA-2012-8508;Fedora 17 Update FEDORA-2012-8508
 Bugzilla: 
 CVE: 
 Texto de actualización: Updated version 1.6.2
 Cambios: **2012-05-26** Guillermo Gómez <gomix@fedoraproject.org> - 1.6.2-1
- Update to version 1.6.2
- Replaced Net::IPv4Addr with NetAddr::IP module which has support for IPv6
  address network parsing and comparisons.
- wget added as required to support default configuration.

**2011-09-02** Guillermo Gómez <gomix@fedoraproject.org> - 1.6.1-1
- Update to version 1.6.1
- Bug fix for 'Couldn't load target' error
- Bug fix for fast_pattern interpretation for relative matches
- Updated to the latest Emerging Threats rule set

**2011-08-01** Guillermo Gómez <gomix@fedoraproject.org - 1.6-1
- Update to major release version 1.6

**2011-02-08** Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.5-1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

**2010-12-29** Guillermo Gomez <gomix@fedoraproject.org> - 1.5-0
- Upgrade to major release version 1.5-0
- WARNING: Compatibility issue with 1.0.6 fwsnort.conf, previous
  fwsnort.conf renamed as /etc/fwsnort/fwsnort.conf.rpmsave.

**2010-12-29** Guillermo Gomez <gomix@fedoraproject.org>
- Upgrade to major prerelease version 1.5pre

**2010-10-12** Mark Chappell <tremble@tremble.org.uk> - 1.0.6-8
- Replace the perl dependencies with the virtual modules rather than
  the package name

**2010-05-16** Guillermo Gómez <ggomez@neotechgw.com> - 1.0.6-7
- Ownership of /etc/logrotate.d corrected and requires logrotate instead which
  provides it

**2010-04-25** Guillermo Gómez <ggomez@neotechgw.com> - 1.0.6-6
- Macros use improved for consistency

**2010-02-04** Guillermo Gómez <ggomez@neotechgw.com> - 1.0.6-5
- Removed unnecesary macro definition


 Estado: stable
 Emitido: 2012-05-28T00:38:15
 Actualizado: 

10.1.5. Actualización general

$ su -c "pkcon update"

Transacción:	Actualizando el sistema
Estado: 	Esperando autenticación
Estado: 	Comenzando
Porcentaje:	0
Estado: 	Ejecutando
Estado: 	Resolviendo dependencias
Porcentaje:	10
Estado: 	Descargando paquetes
Porcentaje:	20
Porcentaje:	30
Paquete:	elfutils-0.149-1.fc13.x86_64
Paquete:	krb5-devel-1.7.1-14.fc13.x86_64
Paquete:	ibus-chewing-1.3.7.20100910-1.fc13.x86_64
...
Paquete:	microcode_ctl-1:1.17-4.fc13.x86_64
Paquete:	kwebkitpart-0.9.6-1.fc13.x86_64
Estado: 	Instalando paquetes
Paquete:	policycoreutils-gui-2.0.83-28.fc13.x86_64
Estado: 	Instalando actualizaciones
Paquete:	thunderbird-3.1.4-1.fc13.x86_64
Paquete:	python-pygments-1.3.1-7.fc13.noarch
Paquete:	perl-IPC-Run3-0.044-1.fc13.noarch
...
Paquete:	ibus-chewing
Paquete:	microcode_ctl
Paquete:	webkitpart
Estado: 	Eliminando paquetes
Paquete:	policycoreutils-gui
Estado: 	Limpiando paquetes
Paquete:	policycoreutils-python
Paquete:	policycoreutils
...
Paquete:	krb5-libs
Paquete:	libudev
Estado: 	Comprobando aplicaciones en uso
Estado: 	Obteniendo información
Resultados:
Actualizado  bzip2-1.0.6-1.fc13.x86_64
Limpios      bzip2
Actualizado  cups-1:1.4.4-10.fc13.x86_64
Limpios      cups
...
Actualizado  tar-2:1.22-19.fc13.x86_64
Limpios      tar
Actualizado  thunderbird-3.1.4-1.fc13.x86_64
Limpios      thunderbird
Actualizado  upstart-0.6.5-6.fc13.x86_64
Limpios      upstart
Eliminados   webkitpart
Se necesita reiniciar el sistema debido a: upstart-0.6.5-6.fc13.x86_64
Se necesita reiniciar la sesión: thunderbird-3.1.4-1.fc13.x86_64
Reinicie el equipo para completar la actualización.

10.1.6. Actualizaciones disponibles

$ pkcon get-updates

Transacción:	Obteniendo actualizaciones
Paquete:	libgudev1-153-4.fc13.x86_64
Paquete:	glibc-2.12.1-2.i686
Paquete:	python-pygments-1.3.1-7.fc13.noarch
...
Paquete:	krb5-libs-1.7.1-14.fc13.i686
Paquete:	libucil-0.9.8-4.fc13.x86_64
Paquete:	cups-1:1.4.4-10.fc13.x86_64
Resultados:
Seguridad    bzip2-1.0.6-1.fc13.x86_64
Solución de error cups-1:1.4.4-10.fc13.x86_64
Solución de error cups-libs-1:1.4.4-10.fc13.x86_64
Solución de error cups-libs-1:1.4.4-10.fc13.i686
Solución de error elfutils-0.149-1.fc13.x86_64
Solución de error elfutils-libelf-0.149-1.fc13.x86_64
Solución de error elfutils-libs-0.149-1.fc13.x86_64
Mejora       font-manager-0.5.6-1.fc13.x86_64
Normal       kwebkitpart-0.9.6-1.fc13.x86_64
Mejora       microcode_ctl-1:1.17-4.fc13.x86_64
...
Solución de error tar-2:1.22-19.fc13.x86_64
Solución de error thunderbird-3.1.4-1.fc13.x86_64
Solución de error upstart-0.6.5-6.fc13.x86_64

10.1.7. Grupos

Listado de grupos
$ pkcon get-groups

admin-tools
desktop-gnome
desktop-kde
desktop-other
desktop-xfce
education
fonts
games
graphics
internet
legacy
localization
multimedia
office
other
programming
publishing
servers
system
virtualization
collections
newest

10.1.8. Repositorios

Listado de repositorios
$ pkcon repo-list

Transacción:	Obteniendo repositorios
Estado: 	Comenzando
Resultados:
 Deshabilitado updates-debuginfo         Fedora 13 - x86_64 - Updates - Debug
 Deshabilitado rawhide-source            Fedora - Rawhide - Source
 Deshabilitado updates-testing           Fedora 13 - x86_64 - Test Updates
 Deshabilitado updates-testing-source    Fedora 13 - Test Updates Source
 Deshabilitado fedora-chromium-source    Chromium web browser and deps - Source
 Habilitado fedora                    Fedora 13 - x86_64
 Habilitado fedora-chromium           Chromium web browser and deps
 Deshabilitado updates-source            Fedora 13 - Updates Source
 Deshabilitado rawhide-debuginfo         Fedora - Rawhide - Debug
 Deshabilitado fedora-debuginfo          Fedora 13 - x86_64 - Debug
 Deshabilitado updates-testing-debuginfo Fedora 13 - x86_64 - Test Updates Debug
 Deshabilitado rawhide                   Fedora - Rawhide - Developmental packages for the next Fedora release
 Deshabilitado fedora-source             Fedora 13 - Source
 Deshabilitado rubyera                   Rubyera repo
 Habilitado updates                   Fedora 13 - x86_64 - Updates

Habilitar repositorio
$ su -c "pkcon repo-enable _local"
...
Transacción:	Habilitando repositorio
Estado: 	Esperando en cola
Estado: 	Esperando autenticación
Estado: 	Esperando en cola
Estado: 	Comenzando
Estado: 	Obteniendo información
Resultados:
Deshabilitar repositorio
$ su -c "pkcon repo-disable _local"
...
Transacción:	Habilitando repositorio
Estado: 	Esperando en cola
Estado: 	Esperando autenticación
Estado: 	Esperando en cola
Estado: 	Comenzando
Estado: 	Obteniendo información
Resultados:

10.1.9. Descarga de paquetes

Debe especificar un directorio donde descargar, y el nombre de paquete.
$ pkcon download . fwsnort
Transacción:	Descargando paquetes
Estado: 	Esperando en cola
Estado: 	Comenzando
Estado: 	Descargando paquetes
Porcentaje:	0
Paquetes:	fwsnort-1.6.2-1.fc17.noarch
Porcentaje:	100
Estado: 	Copiando archivos
Porcentaje:	100
Resultados:
Descargado   fwsnort-1.6.2-1.fc17.noarch

10.1.10. Uso de filtros

Listado de filtros disponibles. Debe usar los nombres listados aunque la ayuda en línea diga "ej. instalado".
$ pkcon get-filters
installed
devel
gui
free
basename
newest
arch
Uso de filtro ejemplo
Actualizaciones disponibles de aplicaciones gráficas GUI.
$ pkcon --filter=gui get-updates
Transacción:	Obteniendo actualizaciones
Estado: 	Esperando en cola
Estado: 	Comenzando
Estado: 	Obteniendo información
Estado: 	Descargando listas de modificaciones
Resultados:
Mejora       NetworkManager-openconnect-0.9.4.0-7.git20120612.fc17.x86_64
Solución de error PackageKit-0.7.5-1.fc17.x86_64
Solución de error PackageKit-browser-plugin-0.7.5-1.fc17.x86_64
Solución de error PackageKit-gtk3-module-0.7.5-1.fc17.x86_64
Solución de error audacious-3.2.4-1.fc17.x86_64
Solución de error audacious-libs-3.2.4-1.fc17.x86_64
Solución de error audacious-plugins-3.2.4-2.fc17.x86_64
Solución de error audacious-plugins-amidi-3.2.4-2.fc17.x86_64
Solución de error audacious-plugins-exotic-3.2.4-2.fc17.x86_64
Solución de error audacious-plugins-jack-3.2.4-2.fc17.x86_64
Solución de error audacious-plugins-sid-3.2.4-2.fc17.x86_64
Solución de error empathy-3.4.2.3-1.fc17.x86_64
Solución de error eog-3.4.3-2.fc17.x86_64
Solución de error evolution-3.4.3-2.fc17.x86_64
Solución de error evolution-NetworkManager-3.4.3-2.fc17.x86_64
Seguridad    firefox-14.0.1-1.fc17.x86_64
Solución de error gnome-bluetooth-1:3.4.2-1.fc17.x86_64
Solución de error gnome-bluetooth-libs-1:3.4.2-1.fc17.x86_64
Normal       google-talkplugin-3.2.4.0-1.x86_64
Solución de error qt-1:4.8.2-4.fc17.x86_64
Solución de error qt-1:4.8.2-4.fc17.i686
Solución de error qt-x11-1:4.8.2-4.fc17.i686
Solución de error qt-x11-1:4.8.2-4.fc17.x86_64
Solución de error webkitgtk3-1.8.1-3.fc17.x86_64
Seguridad    xulrunner-14.0.1-3.fc17.x86_64

10.1.11. Transacciones

Listado de transacciones
$ pkcon get-transactions
Transacción:	Obteniendo transacciones
Estado: 	Esperando en cola
Resultados:
Transacción: /611_aaceaeee_data
 Hora del sistema: 2012-07-26T12:54:44.761305Z
 Exitosa: Verdadero
 Función: remove-packages
 Duración: 2514 (segundos)
 Línea de comandos: pkcon
 ID de usuario: 0
 Nombre de usuario: root
 Nombre real: root
 Paquetes involucrados:
 - removing suitesparse
Transacción: /608_ebdebcac_data
 Hora del sistema: 2012-07-26T12:53:50.587200Z
 Exitosa: Verdadero
 Función: install-packages
 Duración: 49 (segundos)
 Línea de comandos: pkcon
 ID de usuario: 0
 Nombre de usuario: root
 Nombre real: root
 Paquetes involucrados:
 - installing atlas-3.8.4-3.fc17.x86_64
 - installing suitesparse-3.6.1-3.fc17.x86_64
Transacción: /605_bbbaeded_data
 Hora del sistema: 2012-07-26T12:50:15.777950Z
 Exitosa: Verdadero
 Función: update-packages
 Duración: 90 (segundos)
 Línea de comandos: pkcon
 ID de usuario: 0
 Nombre de usuario: root
 Nombre real: root
 Paquetes involucrados:
 - updating tar-2:1.26-7.fc17.x86_64
 - cleanup tar
...

10.2. gpk-install-local-file

Instala archivos de paquete de software locales. También se ejecuta cuando se hace doble-clic sobre un paquete de software en su escritorio o explorador de archivos.
$ gpk-install-local-file -h
Uso:
  gpk-install-local-file [OPCIÓN…] gpk-install-local-file

Instalador de archivos PackageKit

Opciones de ayuda:
  -h, --help               Mostrar opciones de ayuda
  --help-all               Muestra todas las opciones de ayuda
  --help-gtk               Mostrar opciones GTK+

Opciones de la aplicación:
  -v, --verbose            Mostrar información de depurado para todos los archivos
  --display=VISOR          Visor [display] X que usar

10.3. gpk-install-catalog

gpk-install-catalog lee un archivo de entrada .catalog que provoca que los paquetes listados adecuadamente en él sean instalados si es que ya no lo están. Esta opción de PackageKit puede ser muy útil a los distribuidores y desarrolladores de software ya que permite por ejemplo al usuario bajar un catálogo e instalar en su distribución sin tener que preocuparse de identificar los componentes.
Es una especie de equivalente a los grupos yum pero más específico. ¿Cómo luce un archivo .catalog?
[PackageKit Catalog]

# Simplemente el paquete en Fedora que provee la dependencia
# Si hay múltiples paquetes, se le pregunta al usuario
InstallProvides(fedora)=audio/QCELP

# Específico para Fedora 9, instala dos paquetes de desarrollo
InstallPackages(fedora;9)=glib2-devel;PolicyKit-gnome-devel

# En cualquier distro, instala el paquete con el archivo indicado
InstallFiles=/usr/bin/fontinst

# Para cada arquitectura en Fedora 8, instala uno de los dos diferentes
# archivos compat
InstallFiles(fedora;8;i686)=/usr/lib/pango/1.6.0/modules/pango-arabic-fc.so
InstallFiles(fedora;8;x64)=/usr/lib64/pango/1.6.0/modules/pango-arabic-fc.so
Note el distro-id entre paréntesis (), esto le permite al empaquetador entonar el nombre de paquete, donde por ejemplo en Fedora es PolicyKit, en Debian es policykit. Se puede ser granular con la distribución, versión de la distrinución y la arquitectura.
Note que no hay verificación de versiones. Se debe especificar la distribución y ésta tener los datos correctos.
Si existe un paquete opcional no presente en versiones anteriores de la distribución, entonces puede hacer algo como lo siguiente:
[PackageKit Catalog]

# Fedora 9 no tiene Unique
InstallPackages(fedora;9)=glib2-devel;PolicyKit-gnome-devel

# Rawhide es fedora 9.90
InstallPackages(fedora;9.90)=glib2-devel;PolicyKit-gnome-devel;unique-devel
Tampoco existe una descripción del catalogo que haya que traducir o verificar, simplemente es un listado de paquetes, archivos y requerimientos (provides) que le puede ser de utilidad. Todas las traducciones provienen de los metadatos de la distribución y depende del usuario verificar el listado de paquetes que se está pidiendo instalar, asi que no hay firmas ni nada por el estilo.
Los métodos soportados son InstallPackages, InstallProvides e InstallFiles. Cualquier línea que no comience con alguna de estas tres palabras, será descartada.

10.4. pkmon

pkmon - Monitor de PackageKit. Esta aplicación permite ver en tiempo real el progreso de las distintas transacciones que realiza PackageKit.
$ pkmon -h
Uso:
  pkmon [OPCIÓN…]

Monitor de PackageKit

Opciones de ayuda:
  -h, --help         Mostrar opciones de ayuda
  --help-all         Muestra todas las opciones de ayuda

Opciones de la aplicación:
  --version          Mostrar la versión del programa y salir
  -v, --verbose      Mostrar información de depuración para todos los archivos

$ pkmon
Transactions:
 [none]
network status=offline
Transactions:
 1	/2923_dadbdeab_data
Transactions:
 1	/2923_dadbdeab_data
 2	/2925_edbcdebb_data
Transactions:
 1	/2923_dadbdeab_data
 2	/2925_edbcdebb_data
 3	/2926_aaaaedac_data
Transactions:
 1	/2923_dadbdeab_data
 2	/2925_edbcdebb_data
 3	/2926_aaaaedac_data
 4	/2927_abcbdcad_data
/2923_dadbdeab_data	percentage   -1
/2923_dadbdeab_data	role         simulate-install-packages
/2923_dadbdeab_data	status       setup
/2925_edbcdebb_data	percentage   -1
/2925_edbcdebb_data	role         resolve
/2925_edbcdebb_data	status       wait
/2925_edbcdebb_data	allow_cancel 1
/2926_aaaaedac_data	percentage   -1
/2926_aaaaedac_data	role         get-distro-upgrades
/2926_aaaaedac_data	status       wait
/2926_aaaaedac_data	allow_cancel 1
/2927_abcbdcad_data	percentage   -1
/2927_abcbdcad_data	role         get-updates
/2927_abcbdcad_data	status       wait
/2927_abcbdcad_data	allow_cancel 1

10.5. PackageKit-command-not-found

pk-command-not-found es una ayudante simple que ofrece instalar nuevos paquetes en la línea de comandos utilizando PackageKit. Funciona atajando los comandos en la consola y cuando no se encuentra, busca en los repositorios si hay alguno que provea la funcionalidad, si la consigue, ofrece instalarla.
$ brctl show
bash: brctl: comando no encontrado...
¿Instalar el paquete «bridge-utils» para proporcionar el comando «brctl»? [N/y]
        * Esperando en cola..
        * Ejecutando..
        * Resolviendo dependencias..
        * Esperando autenticación..
        * Esperando en cola..
        * Ejecutando..
        * Resolviendo dependencias..
        * Descargando paquetes..
        * Comprobando modificaciones..
        * Instalando paquetes..
        * Escaneando aplicaciones..
        * Obteniendo información..
bridge name     bridge id               STP enabled     interfaces
Si es un usuario regular, y se encuentra en su escritorio gráfico, se le requerirá autenticación para proceder a la instalación. Si es un terminal fuera de un entorno desde donde el cual obtener autenticación gráfica, no podrá instalar y no obtendrá esta facilidad.

Capítulo 11. Elementos de la gestión rpm

Como ha podido darse cuenta el lector a todo lo largo de este manual, YUM y PackageKit pueden resolver la gran mayoría de las necesidades del administrador de sistemas a la hora de la gestión del software de los sistemas Fedora. Sin embargo siguen existiendo casos borde en los cuales no es posible tener una respuesta satisfactoria a alto nivel, entiéndase con alguna de las aplicaciones YUM y PackageKit. Para esos casos el remedio es bajar de nivel y usar la herramienta rpm y comprender lo fundamental que es. En esta sección no se pretende dar información completa del funcionamiento del sistema RPM ni de todas sus opciones y configuraciones, sino ofrecer una guía de supervivencia de complementación y como punto de entrada para que no necesite ir a leer un manual completo de RPM en al menos los casos que presentamos a continuación.

11.1. ¿Por qué evitar RPM?

En la introducción de este capítulo no se le ha dado una respuesta completa de por qué debe evitar usar rpm en el día día del administrador de sistemas al momento de gestionar el software. Una de las razones fundamentales es que es "bajo nivel", ello significa que las capas superiores, entiéndase YUM y PackageKit no son notificadas por el uso de rpm. YUM se lo hará notar por medio de mensajes que las bases de datos rpm han sido modificadas por elementos extraños.
En general usted querra evitar este tipo de mensajes y mantener la gestión lo más simplificada y unificada posible. Claro está, siempre puede que se encuentre con ciertos casos en los cuales no podrá resolver y no tendrá otra opción que volcar su atención hacia RPM para poder resolver su problema o caso particular.

Se manifestará como una interferencia

En los registros y salidas de ciertos comandos como yum, se reportará el acceso al sistema RPM como una interferencia.
$ yum install ...				
				...
Ejecutando el rpm_check_debug
Ejecutando prueba de transacción
La prueba de transacción ha sido exitosa
Ejecutando transacción
Advertencia: Las bases de datos (RPMDB) han sido modificadas por un elemento ajeno a yum.
...
Otro razón para no usar rpm es el hecho de que éste no considera los archivos idénticos como conflicto y ello puede fácilmente permitir la instalación de múltiples versiones de un mismo paquete en ciertas circunstancias, por ejemplo, de binarios ejecutables basados rubygems. Si bien esto puede ser considerado por algunos como una virtud, en general es considerado mala práctica y está desaconsejado.

11.2. Documentación en el paquete

Si los empaquetadores han sido diligentes, rpm permite listar los archivos previamente etiquetados como documentación:
$ rpm -qd mc
/usr/share/doc/mc-4.6.1a/COPYING
/usr/share/doc/mc-4.6.1a/FAQ
/usr/share/doc/mc-4.6.1a/NEWS
/usr/share/doc/mc-4.6.1a/README
/usr/share/man/es/man1/mc.1.gz
/usr/share/man/hu/man1/mc.1.gz
/usr/share/man/it/man1/mc.1.gz
/usr/share/man/man1/mc.1.gz
/usr/share/man/man1/mcedit.1.gz
/usr/share/man/man1/mcview.1.gz
/usr/share/man/pl/man1/mc.1.gz
/usr/share/man/ru/man1/mc.1.gz
/usr/share/man/sr/man1/mc.1.gz

11.3. Archivos de configuración del paquete

Siguiendo con el ejemplo anterior, para conocer que archivos de configuración se incluyen en el paquete mc se usa la opción de consulta -c
$ rpm -qc mc
/etc/mc/cedit.menu
/etc/mc/edit.indent.rc
/etc/mc/edit.spell.rc
/etc/mc/extfs/extfs.ini
/etc/mc/extfs/sfs.ini
/etc/mc/mc.charsets
/etc/mc/mc.ext
/etc/mc/mc.lib
/etc/mc/mc.menu
/etc/mc/syntax/Syntax

11.4. Propiedad de un archivo

Cuando un paquete rpm es instalado éste declara la propiedad sobre sus archivos, los que instala. Luego es posible consultar la base de datos en reversa, es decir, preguntar quién es el dueño de cierto archivo, es decir, qué paquete lo instaló, un ejemplo abajo:
$ rpm -qf /usr/bin/xwininfo
xorg-x11-utils-7.4-9.fc13.x86_64

11.5. Respaldo y reconstrucción de la base de datos

Puede darse el caso que la base de datos RPM se corrompa por distintos motivos. Si es así, puede reconstruir toda su base de datos con tener exclusivamente /var/lib/rpm/Packages en buen estado, el resto de archivos se regeneran a partir de él, haga un respaldo por favor de forma rutinaria.
Luego para restaurar la base de datos RPM a partir del archivo Packages:
$ su -
# cd /var/lib/rpm
# rm __db.00*
# cp /root/Pacakges.bu Packages
# rpm --rebuilddb

11.6. Importando llaves

Para verificar los paquetes rpm usted debe importar las llaves públicas correspondientes del empaquetador. Para hacerlo ejecute el siguiente comando en la línea de comandos:
$ rpm --import /ruta/al/archivo/con/la/llavepki

11.7. Listar llaves instaladas

$ rpm -qa gpg-pubkey*
gpg-pubkey-536ceb2a-419e7fcd
gpg-pubkey-2425b284-4affedb7
gpg-pubkey-66534c2b-495ca3b8
gpg-pubkey-a3780952-4affed06
gpg-pubkey-e8e40fde-4b563cdc
gpg-pubkey-a109b1ec-3f6e28d5
gpg-pubkey-16ca1a56-4a100959
gpg-pubkey-57bbccba-4a6f97af
gpg-pubkey-f6777c67-45e5b1b9
gpg-pubkey-a7a1d4b6-43281558
gpg-pubkey-a3a882c1-4a1009ef
Para información de una llave específica:
$ rpm -qi gpg-pubkey-2425b284-4affedb7
Name        : gpg-pubkey                   Relocations: (not relocatable)
Version     : 2425b284                          Vendor: (none)
Release     : 4affedb7                      Build Date: vie 28 may 2010 05:56:16 VET
Install Date: vie 28 may 2010 05:56:16 VET      Build Host: localhost
Group       : Public Keys                   Source RPM: (none)
Size        : 0                                License: pubkey
Signature   : (none)
Summary     : gpg(RPM Fusion nonfree repository for Fedora (13) <rpmfusion-buildsys@lists.rpmfusion.org>)
Description :
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: rpm-4.8.0 (NSS-3)

mQINBEr/7bcBEADR9g8j2q5iI+NUJ6ZHS5yht56nPP4I9US/HcPs6PsozMtT0H3j
eLA+nH6DSn9rVUTS84anaUB6uSf/yzd5yUibnw4XZ6ZE7MaEjM/GIRymRqkV7sIX
ZTDU88mv3KIHbjC611iROfkH7l8Dl3aWRWOp1XY/G8LIxVC5ExzSFHRI02VXo6nM
UpnxEoysyvcVsm+gmnnRYDnwN7edYt0M4vHeRcedKu8uhzqw2dBwiSzZssCIZR7/
qejEJQwSZuEjf7hN7iGIhjQcfrNCxHdcGk8/1tZL2XnDZe/Uxe28nfUTe5wGfufY
Y70sr3Bnx0eJc/nsGH7RHSBSII2NNXZPmvCSMx0wfNUxq37kok8XkUwL+crV/YIw
7lcUWTEDY1Y3VAto1uF5EXdrWrSjhmArVMOxiGDYCUyyaBZw84tlI0wq/PKeHYuy
nDK6JNGa+ZN9Hr/houp7wqxoXOv6SfnAvTGKH0QAsSSAiPQQzDDZReT+rDw+PKmD
Y+TYVMDoh/hafSFmGOAjShoIl/1PBwy+U0ncMelMvwB0kMR95ygheFe29hDYJH06
hiX6H9kBTZtvImsKwEwOiPozA1UZdknvyP+2cHcoOClg+uZFeq7aFJ/E5Fw72RO9
iy8YFeQoN84QAQpOm1rl3GGnGFRLPEGGi92KPXUvvHvaP+cqjGPnFtBhbQARAQAB
tFZSUE0gRnVzaW9uIG5vbmZyZWUgcmVwb3NpdG9yeSBmb3IgRmVkb3JhICgxMykg
PHJwbWZ1c2lvbi1idWlsZHN5c0BsaXN0cy5ycG1mdXNpb24ub3JnPokCNgQTAQIA
IAUCSv/ttwIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJECvvL9IkJbKEGksQ
AIAK65TxLFj+F4JjRFyd1YvhEUbJKoTpgZ9r4Sz7hcVDOdvnesHugcERvzGrDgd4
XrmKd0bojBHPTQYROUQ6tu85KdYABZOQTOuB6vKxXVbZgvfNqJzuqsMUklma6uGo
L0Cy9W6H3YmzmtaupuxCW5HBvWzN3OjXH7KQmW4enH8+2qy1p1mDSHyFuBJoF6UE
8Jf0q9dsjYArTrTbGFl6n8vrdGCbKHXhGW9J8gsyOIXo8yZzYEkytujjydtr3R/9
A8LpLeHNiPGU/hnNPHVYZPnYcT7XLy8uhwTgBvhglCVlp9ouZjhPomfqw/qNmjWh
zDY7lYtEIKeywweOGw9Ft/WCgFlB7X3V4OLK3P2c9HGoAQ1WAohU5Y8gpqyrSt0d
fs7PrlHoZbYG7bEPc3x9VXAcnMc+FGYP7X1J/lNXWNvqaBrBp8dB73FcNHJOGfa8
x25V8Tnq1aqCwUS+BQQCSdz637PZrx6KjcTRRLuiEU1KiNeCgFJP6jyffzkbpLPl
PtNTrD76qoQfNPZqQKlDTwcIii6Yo87SWOvXBZvokrArPxWTFs9fcuHXBS2axHg3
cLRUC03TASCDSz6WtygouphUBAtDgSC71DLlCbIN8EmXN6C0sSB5Ywnzdsy7yIT2
2yrVZna0hI/wBR+AqW8jszgJ5JVdEDftqSAKBUxXKela
=3/KO
-----END PGP PUBLIC KEY BLOCK-----

11.8. Listar dependencias de un paquete instalado

Es posible que haya conseguido un RPM y desea conocer las dependencias.
Si ya se encuentra instalado, consulte la base datos rpmdb.
# rpm -q --requires  teamviewer6
bash >= 3.0
glibc(x86-32) >= 2.7
alsa-lib(x86-32)  
zlib(x86-32)  
libSM(x86-32)  
libXext(x86-32)  
libXtst(x86-32)  
libXdamage(x86-32)  
libXfixes(x86-32)  
libXrender(x86-32)  
freetype(x86-32)  
/bin/sh  
/bin/sh  
/bin/sh  
/bin/sh  
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
Si lo que tiene es el archivo local rpm, consulte el paquete con -p.
# rpm -q -p --requires fwsnort-1.6.2-1.fc16.noarch.rpm 
/bin/sh  
/bin/sh  
/bin/sh  
/usr/bin/perl  
config(fwsnort) = 1.6.2-1.fc16
iptables  
logrotate  
perl(:MODULE_COMPAT_5.14.2)  
perl(Cwd)  
perl(Data::Dumper)  
perl(File::Copy)  
perl(File::Path)  
perl(Getopt::Long)  
perl(IO::Socket)  
perl(IPTables::Parse)  
perl(NetAddr::IP)  
perl(Sys::Hostname)  
perl(strict)  
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
wget  
rpmlib(PayloadIsXz) <= 5.2-1

Capítulo 12. Técnicas para administradores de sistemas

Los siguientes son introducción a tópicos suplementarios que pueden ser considerados de uso más avanzado que el material que se ha presentado hasta ahora en este manual y que puede ser de utilidad en entornos más complejos de gestión de sofware Fedora, en particular, en redes de estaciones de trabajo o servidores, centros de computo, etc.

12.1. Configuración remota

Es posible centralizar todas las configuraciones yum en un servidor externo y hacer que yum obtenga dichas configuraciones al momento de su ejecución. Entonces el administrador puede incluso tener varias configuraciones para el mismo servidor y dada la circunstancia específica, usar una u otra configuración a voluntad.
La primera opción útil en esta dirección es la opción general de ejecución del comando yum --config (-c) que permite especificar el archivo de configuración a utilizar que por omisión en Fedora es /etc/yum.conf, sin embargo, es posible utilizar URLs HTTP y FTP para especificar una ubicación remota del archivo de configuración.
# yum --config=http://central.repo.conf/yum.conf
Si esto se combina con un alias de bash, entonces se tiene una solución transparente al usuario local.
$ alias yum='yum --config=http://central.repo.conf/yum.conf '
$ alias 
 alias l.='ls -d .* --color=auto'
 alias ll='ls -l --color=auto'
 alias ls='ls --color=auto'
 alias vi='vim'
 alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
 alias yum='yum --config=http://central.repo.conf/yum.conf '
La sintaxis de inclusión con include en /etc/yum.conf y archivos .repo en el directorio /etc/yum.repos.d/ permite la incorporación de configuración adicional remota por medio de un URL, esta es la segunda forma de cargar configuración remota. Use el formato:
include=url://ruta/seleccionada/archivo/de/configuracion
El archivo de configuración será insertado en la posición del include. Los archivos incluidos pueden anidar nuevos include. yum abortará si detecta un error de lazo infinito.

12.2. Soporte syslog

Las siguientes tres opciones de configuración yum permiten configurar el comportamiento syslog.
syslog_ident
Permite establecer la identificación, el nombre del programa a utilizar en los mesajes syslog.
syslog_facility
Permite establecer el nombre "facility" para los mensajes syslog generados por yum, vea syslog(3). Por omisión es ‘LOG_USER’.
syslog_device
Le indica a yum dónde debe enviar los mensajes syslog. Puede ser un dispositivo (ruta) local o una cadena tipo máquina:puerto para utilizar un sistema syslog remoto. Si se deja sin definir, o apunta a un dispositivo inexistente, la capacidad syslog es deshabilitada. Por omisión su valor es /dev/log.
Muestra de los mensajes syslog de YUM en Fedora.
# grep yum /var/log/messages | tail
Oct  1 16:20:33 movix yum[10917]: Installed: ruby-dbus-0.3.0-1.fc13.noarch
Oct  1 17:40:45 movix yum[12154]: Installed: ruby-cairo-1.8.5-1.fc13.x86_64
Oct  1 17:40:47 movix yum[12154]: Installed: ruby-pango-0.19.4-2.fc13.x86_64
Oct  1 17:40:49 movix yum[12154]: Installed: ruby-gdkpixbuf2-0.19.4-2.fc13.x86_64
Oct  1 17:40:51 movix yum[12154]: Installed: ruby-libart2-0.19.4-2.fc13.x86_64
Oct  1 17:40:53 movix yum[12154]: Installed: ruby-atk-0.19.4-2.fc13.x86_64
Oct  1 17:40:58 movix yum[12154]: Installed: ruby-gtk2-0.19.4-2.fc13.x86_64
Oct  1 17:41:00 movix yum[12154]: Installed: ruby-gnomecanvas2-0.19.4-2.fc13.x86_64
Oct  1 17:41:02 movix yum[12154]: Installed: ruby-gnome2-0.19.4-2.fc13.x86_64
Oct  2 07:27:22 movix yum[16700]: Installed: fwsnort-1.0.6-7.fc13.noarch

Historial de revisiones

Historial de revisiones
Revisión 3Mon May 7 2012Guillermo J. Gómez Savino
Fedora 17 revision
Revisión 2Sun Dec 18 2011Guillermo J. Gómez Savino
Fedora 16 revision
Revisión 1Sat Jul 2 2011Guillermo J. Gómez Savino
Fedora 15 revision
Revisión 0Thu Sep 20 2010Guillermo J. Gómez Savino
Initial creation of book by publican

Capítulo 13. Agradecimientos

13.1. Personales

Trabajar para la comunidad implica un sacrificio importante, y a la primera persona que quiero agradecer su soporte, es a mi esposa Elba. Igualmente le pido a Miguel, mi hijo de seis años, que me disculpe por el tiempo que no estuve con él, pero estoy seguro que en el futuro sabrá entender que fué por una buena causa. A José Luis Wirkes mi socio y compañero, a Ricardo Fernández y Orlando Marquina por ser tan buenos compañeros de trabajo y amigos a la vez. A Jared Smith por haber rescatado mis ganas de seguir adelante y participar en Fedora durante FUDCon Chile 2010.

13.2. Traducción

Así mismo, el autor desea agradecer a todos los traductores que hicieron posible que este manual llegue a usted en su idioma.

13.3. Revisores

Igualmente a las siguientes personas de la comunidad que ayudaron en la revisión crítica del documento.
Domingo Becker
Diego Daguerre

Índice

C

comentarios
información de contacto para este manual, ¡Necesitamos sus comentarios!