Capítulo 6. Cómo cargar y mantener paquetes personalizados

Dependiendo del servicios de Red Hat Network usado, hay dos mecanismos para cargar paquetes a los canales privados.
Los usuarios del RHN Proxy Server utilizan la aplicación RHN Package Manager, la cual envía la información de cabecera del paquete a los servidores centrales de Red Hat Network y ubica los paquetes mismos en el repositorio local del Proxy que invocó el RHN Package Manager.
Los usuarios del RHN Satellite Server utilizan la aplicación RHN Push, la cual envía la información de cabecera del paquete al RHN Satellite Server local y ubica los paquetes dentro del repositorio local del Satellite que invocó el RHN Push.
Este capítulo aborda estas dos herramientas en detalle.

Aviso

Si está utilizando ambos, el RHN Proxy Server y el RHN Satellite Server, utilice únicamente el RHN Push. La combinación Proxy-Satellite requiere que los paquetes y canales personalizados sean cargados al Satellite únicamente. Desde allí, el servidor Proxy obtiene los paquetes y los distribuye a los sistemas cliente.

6.1. Carga de paquetes al RHN Proxy Server

El RHN Package Manager le permite a una organización servir paquetes personalizados asociados con los canales privados de RHN a través de un RHN Proxy Server. Si desea que el RHN Proxy Server distribuya únicamente paquetes oficiales de Red Hat Enterprise Linux, no necesitará instalar el RHN Package Manager.
Para usar el RHN Package Manager, instale el paquete RPM de rhns-proxy-package-manager y sus dependencias. Este paquete está disponible para sistemas con el RHN Proxy Server registrados y puede ser instalado ejecutando up2date rhns-proxy-package-manager.

Nota

Sólo la información de cabecera de los paquetes es cargada en los servidores RHN. Las cabeceras se requieren para que el RHN pueda resolver las dependencias de paquetes para los sistemas de cliente. Los archivos de paquetes (*.rpm) son almacenados en el RHN Proxy Server. Por esta razón, los paquetes personalizados no pueden ser descargados a través del sitio web de RHN, aunque estén listados allí. Estos deben ser obtenidos desde los sistemas de cliente con up2date.

6.1.1. Configuración y uso del RHN Package Manager

Antes de poder usar el RHN Package Manager para cargar paquetes a RHN, deberá copiar manualmente los paquetes al Proxy mismo. Por ejemplo, desde un host de desarrollo se puede utilizar scp:
scp foo.rpm root@rhnproxy.example.com:/tmp
Al usar el RHN Package Manager para cargar paquetes a Red Hat Network, señale los archivos anteriormente copiados al servidor.

Nota

Cree al menos un canal privado para recibir los paquetes antes de su envío a Red Hat Network, ya que se requiere un canal para que los sistemas obtengan los paquetes.
El siguiente comando carga las cabeceras de paquetes a los servidores RHN y copia los paquetes al repositorio del RHN Proxy Server:
rhn_package_manager -c label_of_private_channelpkg-list
etiqueta_del_canal_privado es el canal personalizado creado para recibir estos paquetes. Asegúrese de utilizar la etiqueta de canal correcta utilizada durante la creación. Si tiene más de un canal especificado (con -c o --channel), las cabeceras de paquetes serán enlazadas a todos los canales identificados. Si no especifica un canal, los paquetes se almacenarán en la sección Sin canales de la página Administración de paquetes. Consulte la Sección 4.6, “Asignación de paquetes a los canales de software” para obtener instrucciones de cómo reasignar paquetes
La referencia pkg-list representa la lista de paquetes a ser cargados. Estos paquetes deben haber sido ya copiados al host del Proxy. Alternativamente, utilice la opción -d para especificar el directorio local que contiene los paquetes a ser añadidos al canal. El RHN Package Manager puede también leer la lista de paquetes desde la entrada estándar (con la opción --stdin).
Otras opciones son especificadas en el archivo de configuración, como la URL del servidor Red Hat Network, el nombre de usuario y contraseña del proxy HTTP (si su proxy HTTP requiere autenticación), y el directorio superior donde los paquetes residen. Esta configuración especial no debe ser editada y es ubicada en /etc/rhn/default/rhn_proxy_package_manager.conf. Usted puede sobrescribir las opciones en ese archivo de configuración predeterminado con los parámetros del archivo de configuración principal /etc/rhn/rhn.conf o a través de las opciones de la línea de comandos pasadas al RHN Package Manager.
Los parámetros no establecidos en este archivo son leídos en .rhn_package_manager en el directorio inicial (home) del usuario actualmente en sesión y finalmente en /etc/rhn/rhn_package_manager.conf. Asegúrese de que los archivos en cuestión tengan los permisos apropiados para prevenir que otros los lean.
Después de cargar los paquetes, revise que el directorio local esté sincronizado con la imagen de los canales del servidor RHN:
rhn_package_manager -s -c name_of_private_channel
La opción -s lista todos los paquetes faltantes, los cuales son paquetes cargados en el servidor RHN pero que no están presentes en el directorio local. Se debe ser un Organization Administrator para poder utilizar esta opción. La aplicación preguntará el nombre de usuario y contraseña de RHN.
La opción --copyonly copia el archivo listados en el argumento en el canal especificado sin cargar el Satellite. Es útil cuando un canal en un RHN Proxy Server tiene un paquete faltante y no se desea importar de nuevo todos los paquetes al canal.
rhn_package_manager -c channel-name --copyonly /path/to/missing/file
Se puede utilizar también el RHN Package Manager para obtener una lista de los paquetes en un canal, como están almacenados en el servidor RHN:
rhn_package_manager -l -c name_of_private_channel
La opción -l lista el nombre de paquete, el número de versión, el número de lanzamiento, la arquitectura y el nombre de canal para cada paquete en el canal o canales especificados. Consulte la Tabla 6.1, “Opciones de rhn_package_manager para obtener las opciones adicionales.
Tabla 6.1, “Opciones de rhn_package_manager presenta un resumen de todas las opciones para la línea de comandos del RHN Package Manager (rhn_package_manager):

Tabla 6.1. Opciones de rhn_package_manager

Opción Descripción
-v, --verbose Incrementa la verbosidad de los mensajes de la salida estándar.
-d, --dir NOMBRE_DIRECTORIO Procesa paquetes de este directorio.
-c, --channel NOMBRE_CANAL Especifica el canal que recibirá los paquetes. Varios canales pueden ser especificados utilizando varias instancias de -c (por ejemplo: -c canal_uno -c canal_dos)
-n, --count NÚMERO Procesa este número de cabeceras por llamada — por defecto es 32.
-l, --list Lista los paquetes en el canal(es) especificado.
-s, --sync Revisa si el directorio local está sincronizado con el servidor.
-p, --printconf Muestra la configuración actual y sale.
--newest Envía sólo los paquetes que son más recientes que los presentes en el servidor. Observe que los paquetes de código fuente son especiales, ya que sus versiones no son comparadas entre ellos. La comparación para determinar el paquete más reciente depende de sus paquetes binarios correspondientes. Al utilizar esta opción del RHN Package Manager en un paquete de código fuente, se cargará el paquete, pero éste no aparecerá en la interfaz web de RHN hasta que el paquete binario correspondiente no sea cargado. Compare esta opción con --source. Al usar las opciones --source --newest juntas se cargará la versión más reciente del paquete de código fuente sin tener que esperar por la carga del paquete binario.
--source Carga el paquete de código fuente indicado. Con esta opción se tratará el paquete como individual y no como un paquete dependiente del paquete binario. Por ejemplo, usted puede utilizar esta opción cuando quiere distribuir el código fuente de la aplicación a desarrolladores y depuradores fuera de la administración de código central.
--stdin Lee los nombres de paquetes desde la entrada estándar.
--nosig No falla si los paquetes no están firmados.
--no-ssl Desactiva SSL (no recomendado).
--stdin Lee los nombres de paquetes desde la entrada estándar.
--username NOMBRE_USUARIO Especifica el nombre de usuario RHN. Si no se proporciona se le preguntará por el nombre de usuario de un administrador de canal válido.
--password CONTRASEÑA Especifica una contraseña RHN. Si no se proporciona se preguntará por la contraseña de un administrador de canal válido.
--dontcopy En el paso posterior a la carga, no copia los paquetes en su ubicación final en el árbol de paquetes.
--copyonly Copia los paquetes únicamente, no los importa nuevamente.
--test Imprime una lista de los paquetes a ser enviados únicamente.
-?, --help Muestra una lista de ayuda con la lista de opciones.
--usage Describe brevemente las opciones disponibles.
--copyonly Copia los paquetes únicamente

Nota

Estas opciones para la línea de comandos se describen también en la página del manual: man rhn_package_manager.