Académique Documents
Professionnel Documents
Culture Documents
Red Hat Package Manager es un sistema gestor de paquetes creado en origen para la distribución
Red Hat aunque puede ser usada bajo cualquier otra distribución Linux y UNIX. En este artículo
vamos a aprender a trabajar con este gestor de paquetes desde el intérprete de comandos de la shell.
Antes de proseguir hay que tener en cuenta el concepto de paquete. Un paquete es un archivo que
contiene una aplicación o más concretamente los archivos que integrarán la aplicación (archivos de
configuración, documentación y los archivos que interrelacionados componen la propia aplicación)
generados al administrarse por esta herramienta.
En este documento tomaremos como ejemplo el siguiente paquete:
prog-1.0-1.i386.rpm
-v : Indica a rpm que nos muestre por el terminal información acerca de como se va
realizando el proceso de instalación.
#: Indica a RPM que nos muestre por pantalla marcas "#" que nos indican el porcentaje
del proceso que se ha llevado a cabo hasta el momento, para poder hacernos una idea de
como se va procesando la operación.
Así pues la mejor forma de instalar un paquete evitandonos posibles situaciones de error sería:
rpm -Uvh prog-1.0-1.i386.rpm
Con esta orden se instalaría el paquete. Si todo a ido bien la salida que nos mostrará por pantalla
será:
Esta opción es muy util para reinstalar archivos del paquete original que se han perdido
o modificado.
b) Archivos en conflicto:
Se nos puede dar la situación de que al instalar nuestro paquete en este tengamos un
archivo que ya ha sido instalado por otro paquete o por una version mas antigua del
mismo paquete. En este caso nos mostraría:
file /usr/bin/prog from install of prog-1.0-1 conflicts with file from the package bar-
2.0.20
Para forzar a RPM a ignorar este error usaremos la opción -i para instalar en vez de
actualizar y --replacefiles para forzar a que sobreescriba los archivos necesarios
instalados por otro paquete.
c) Dependencias no resueltas:
Suggested resolutions:
bar-2.0.20-3.i386.rpm
Para solucionar el problema deberemos obtener el paquete del que depende el que
queremos instalar y una vez tengamos ambos paquetes usaremos el comando:
bar-2.0.20-3.i386.rpm
DESINSTALACIÓN DE RPMS
Se haría mediante el comando:
rpm -e prog-1.0-1
No obstante al desinstalar el paquete nos podríamos encontrar un error de dependencia ya que los
archivos del paquete que estamos desinstalando dependen aparte de otro paquete. Si quisieramos
desinstalarlo no obstante (no es recomendable) podríamos hacerlo añadiendo la opción --nodeps.
ACTUALIZACIÓN DE RPM
El proceso de actualización de un paquete bajo rpm tiene una mecanica bastante sencilla:
básicamente lo que hace es desinstalar el paquete existente e instalando la nueva versión
posteriormente.
Para actualizar un paquete usaremos el comando:
rpm -Uvh prog-2.0-1.i386.rpm
Los posibles errores que nos podría reportar este comando serían los habituales de una
desinstalación y de una instalación.
Si al actualizar un paquete nos encontramos que ya tenemos una versión mas actual del paquete a
instalar y aún así queremos realizar la operación lo haríamos de la siguiente manera:
rpm -Uvh --oldpackage prog-1.0-1.i386.rpm
(suponiendo que queremos reemplazar la versión prog-2.0-1.i386.rpm)
REFRESCAMIENTO DE RPM
Si bien la opción de actualizar un paquete nos instala un paquete tengamos una versión previa o no,
la opción de refrescamiento funciona de forma similiar con la excepción de que sólo instala una
version nueva si ya teniamos instalada una versión anterior.
rpm -Fvh prog-2.0-1.i386.rpm
Esta opción es muy util para actualizar toda una serie de paquetes y no sabemos de cuales de ellos
tenemos una versión previa instalada. Mediante el comando:
rpm -Fvh *.rpm
Actualizaríamos todos los paquetes de nuestro directorio, pero solamente se instalarían los paquetes
de los que ya teniamos una versión anterior.
CONSULTAS RPM
A la hora de realizar una consulta siempre usaremos la opción -q. Así pues si usamos el comando:
rpm -q prog
Nos daría por el terminal el nombre del paquete, la versión y número del paquete instalado.
Con esta opción podríamos usar una serie de Opciones de especificación de paquetes que son:
Los metadatos(1) son la información que necesita el paquete así como la información del propio
paquete.
Cualquier aplicación incluida en una distribución GNU/Linux debe estar en un paquete, bien junto
con otras aplicaciones, o bien ella misma constituir un paquete propio. Por ejemplo, el navegador
web Firefox tiene su propio paquete llamado mozilla-firefox . El metapaquete ubuntu-mediapack
( deb http://www.xente.mundo-r.com/roax/archive feisty/) contiene un conjunto de aplicaciones
relativas a codecs, tipos de fuentes, plugin de Flash o plugins para Firefox, utilidades de
compresión/descompresión de archivos ,... que se han empaquetado conjuntamente bajo este
nombre de metapaquete.
Existen 2 tipos de paquetes:
Binarios: contiene ejecutables, archivos de configuración, páginas man/info, información de
copyright y documentación en general. Tienen la extensión .deb y se dese mpaquetan con la
utilidad dpkg .
Fuentes: conjunto de archivos que definen el paquete. S e empaquetan /desempaquetan con
dpkg-source .
Los paquetes binarios .deb contienen los siguientes archivos:
debian-binary: contiene laversión del archivo .deb
sección de control del paquete ( control.tar.gz ) que contiene:
archivo control (metadatos): dependencias del paquete, prioridad, mantenedor, arquitectura,
conflictos, versión, md5sum,...
scripts que se ejecutan antes o despues de instalar el paquete para, por ejemplo,
detener los servicios de los paquetes que se actualizan hasta que su instalación o actualización se
completa o ejecutan órdenes necesarias para empezar o reanudar un servicio una vez que el paquete ha
sido instalado o actualizado, etc.
data.tar.gz : contiene todos los archivos que se instalarán, con sus rutas de destino.
Los paquetes fuente contienen los siguientes archivos:
. dsc : archivo de descripción del paquete. En general es información sobre el paquete.
. orig.tar.gz : archivo fuente original.
.diff.gz : archivo con los cambios de Debian sobre el código fuente original.
3. Dependencias
El funcionamiento de un paquete puede que dependa de otros. Es decir, su ejecución requiere la
presencia en el sistema de otros paquetes.
Cada paquete tiene asociado un archivo control donde están documentadas las dependencias de dicho paquete.
Existen varios niveles de dependencia. Como ejemplo utilizamos los paquetes A y B y se pretende
instalar el paquete A.
Puede ocurrir que:
A dependa de B: es necesario instalar B.
A recomienda B: no es necesario el paquete B pero es conveniente.
A sugiere B: el paquete B contiene archivos que mejoran la funcionalidad de A.
A está en conflicto con B: el paquete A no funciona si B está instalado.
A reemplaza B: los archivos del paquete A sustituyen los de B.
A proporciona B: los archivos del paqute B están incluidos en los de A.
Por ejemplo, si se quiere conocer las dependencias del paquete Totem (aplicación utilizada para la
reproducción de audio y vídeo) ejecutar en una terminal:
#dpkg -s totem
Package: totem
Priority: optional
Section: gnome
Installed-Size: 44
Version: 2.18.1-0ubuntu3
La línea de dependencias se ha subrayado y se comprueba que la instalación de Totem requiere la instalación de los
paquetes totem-gstreamer y totem-xine.
<nombre>_<NúmeroDeVersión>-
<NúmeroDeRevisiónUbuntu>.deb
donde:
<NúmeroDeRevisiónUbuntu> es el número de revisión que normalmente implica cambios en el archivo de control, los
scripts de instalación o desinstalación, o en los archivos de configuración usados en el paquete.
totem_2.18.1-0ubuntu3_all.deb
Orden dpkg
dpkg es una herramienta de bajo nivel que
se utiliza para instalar, eliminar y dar
información sobre los paquetes .deb y
constituye la base fundamental del sistema
de gestión de paquetes de Debian y, en
consecuencia, de Ubuntu (2).
Es decir, dpkg instala o elimina paquetes y maneja la base de datos ( /var/lib/dpkg/ ) del sistema con la situación de
paquetes indicando claramente los cambios.
Su ejecución requiere privilegios de administrador del sistema.
Consideraciones:
La instalación de un paquete .deb utilizando dpkg sólo se utiliza cuando se dispone del paquete en local, no a
través de la red.
No resuelve las posibles dependencias que se puedan presentar en la instalación del paquete.
Opción Descripción
-i <paquete.deb> instala un paquete .deb3. El usuario debe ser root o ser un usuario sudo.
-c <paquete.deb> ver los archivos que contiene un paquete binario incluido el dueño, grupo y
permisos.
Existen muchas mas opciones disponibles para dpkg. Remitimos al lector a la página de manual de la orden dpkg (
$man dpkg ).
Ejemplos:
1. Instalar un paquete .deb: hay que recordar que se requiere, primero, descargar el paquete desde Internet.
#dpkg -i totem_2.18.1-0ubuntu3_all.deb
#dpkg -L totem
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/totem
/usr/share/doc/totem/copyright
/usr/share/doc/totem/changelog.Debian.gz
2. Motrar los archivos del paquete binario de Totem con información complementaria:
#dpkg -c
/var/cache/apt/archives/totem_2.18.1-
0ubuntu3_all.deb
3. Conocer el nombre completo y versión de un paquete instalado en el sistema. Por ejemplo, para
Totem ejecutar:
Opción Descripción
update Obtiene una nueva lista de paquetes actualizando las descripciones de los paquetes que hay
en la base de datos local.
dist-upgrade actualiza todo entre ramas de desarrollo. Con -u vemos TODOS los paquetes a actualizar.
source Baja los paquetes fuente (los fuentes, los parches y los archivos de control de Debian) de un
paquete de las listas y descomprime.
Ejemplos:
#apt-get update
2. Instalar nuevas versiones de los paquetes ya instalados en el sistema:
#apt-get upgrade
3. Instalar un paquete desde la red resolviendo las dependencias que pudiera presentar:
5. El sistema presenta problemas de dependencias que han quedado pendientes de resolver y que impiden la instalación
de nuevos paquetes:
#apt-get install -f
Opción Descripción
Ejemplos:
1. Queremos conocer información sobre un paquete que tenemos instalado:
# more /etc/apt/sources.list
deb http://es.archive.ubuntu.com/ubuntu/
feisty main restricted
deb-src
http://es.archive.ubuntu.com/ubuntu/ feisty
main restricted
deb http://es.archive.ubuntu.com/ubuntu/
feisty-updates main restricted
deb-src
http://es.archive.ubuntu.com/ubuntu/ feisty-
updates main restricted
deb http://es.archive.ubuntu.com/ubuntu/
feisty universe
deb-src
http://es.archive.ubuntu.com/ubuntu/ feisty
universe
deb http://es.archive.ubuntu.com/ubuntu/
feisty multiverse
deb-src
http://es.archive.ubuntu.com/ubuntu/ feisty
multiverse
deb http://security.ubuntu.com/ubuntu
feisty-security main restricted
deb-src http://security.ubuntu.com/ubuntu
feisty-security main restricted
deb http://security.ubuntu.com/ubuntu
feisty-security universe
deb-src http://security.ubuntu.com/ubuntu
feisty-security universe
deb http://security.ubuntu.com/ubuntu
feisty-security multiverse
deb-src http://security.ubuntu.com/ubuntu
feisty-security multiverse
Conviene tener siempre el sistema actualizado con las últimas versiones de los paquetes instalados,
siempre que correspondan a una versión estable de la distribución.
Tal y como se dijo en el punto 6 la orden apt-get permite, tanto tener actualizada la lista de
paquetes disponibles en el sistema como su actualización a las últimas versiones.
Hay que tener en cuenta que hay que actualizar el sistema siempre que:
Introducimos cambios en el archivo /etc/apt/sources.list
Queremos actualizar4 la lista de paquetes del sistema
Para ello hay que ejecutar la orden:
#apt-get update
En este artículo se repasan los conceptos mas importantes acerca de la gestión de paquetes en
Edubuntu en particular, y por extensión en Debian.
#synaptic &
El usuario administrador debe tener en cuenta que la utilización de Synaptic es crítica, ya que, en
función de las actualizaciones que se hagan se puede dejar el sistema inestable.
Cuando se arranca Synaptic el sistema pide la contraseña del usuario administrador y, a
continuación, se visualiza la siguiente ventana:
Componente Descripción
Barra de menú Contiene menús que proporcionan acceso a todas las funciones de Synaptic.
Barra de Proporciona acceso directo a las funciones principales de Refrescar, Actualizar Sistema,
herramientas Aplicar y Buscar.
Lista paquetes Lista todos los paquetes conocidos. La lista puede reducirse utilizando filtros.
Donde:
Recargar: consulta todos los repositorios y actualiza la lista de aplicaciones disponibles.
Marcar todas las actualizaciones disponibles.
Estado: sólo muestra los paquetes del estatus seleccionado (Instalado / No instalado).
Alfabético: sólo muestra paquetes con la letra inicial seleccionada. Hay que estar situado en
la lista de paquetes y pulsar la letra deseada.
El orden de las columnas y los colores usados se pueden cambiar desde la ventana de Preferencias.
Pestaña Descripción
Comunes Muestra información básica del paquete: nombre, descripción corta, mantenedor,
estatus, prioridad, sección, versión instalada y versión disponible.
El método de actualización por defecto actualiza solo los paquetes instalados. La actualización no podrá ser
marcada si la última versión del paquete depende de paquetes no instalados o hay conflictos con paquetes ya
instalados.
El método dist-upgrade intenta resolver conflictos entre paquetes de forma inteligente. Este método desde una
terminal es equivalente a la ejecución de la orden:
#apt-get dist-upgrade
Desde la ventana de Preferencias se puede establecer el método utilizado por defecto u optar por
preguntar cada vez que se realice la actualización.
Ejemplo de utilización:
Para actualizar el sistema a la última versión seguir los siguientes pasos:
1. Refrescar la lista de paquetes conocidos para conocer la última versión disponible:
Ir a: Menú -> Editar -> Recargar información de paquetes
2. Marcar los paquetes para actualizar:
Pulsar sobre 'Marcar todas las actualizaciones' en la Barra de herramientas.
3. Escoger el método dist-upgrade. Se recomienda la actualización inteligente.
4. Aplicar los cambios marcados para actualizar el paquete(s).
Pulsar en Aplicar cambios en la Barra de herramientas.
Se puede modificar el método de actualización por defecto en Preferencias para futuras
actualizaciones.
1.
1.
1.
Fijar paquetes rotos
Se puede romper la estructura de dependencias si existen errores en las dependencias de los
paquetes, fallos en las instalaciones o instalaciones incompletas.
Synaptic no permitirá cambios futuros en el sistema hasta que todos los paquetes rotos sean fijados.
Para corregir los paquetes rotos elegir: Menú -> Editar -> Reparar paquetes rotos
Para mostrar todos los paquetes rotos elegir el filtro Roto en Menú -> Configuración -> Filtros
1.
1.
1.
Repositorios
Los paquetes estan disponibles a partir de los Repositorios. El repositorio contiene los paquetes y
un índice que incluye información básica acerca de los paquetes, como dependencias y una pequeña
descripción.
Para acceder a los repositorios ir a: Menu -> Configuración -> Repositorios
Los repositorios pueden estar disponibles a través de Internet, vía http o ftp, también pueden estar
en soporte CD-ROM/DVD o en discos duros locales.
8.6 Filtros
La activación de filtros reduce la lista de paquetes mostrados. El conjunto de filtros predefinidos de
Synaptic es el siguiente:
Filtro Descripción
Nuevo en archivo Visualiza sólo paquetes nuevos desde la última actualización del repositorio.
Paquete con Debconf Visualiza sólo paquetes que pueden ser configurados mediante el sistema de
configuración de paquetes, llamado debconf.
Obsoleto o localmente Visualiza sólo paquetes que no están incluidos en uno de los repositorios
instalado especificados.
1.
1.
1.
Edición o creación de filtros
El editor de filtros permite crear, borrar y modificar filtros. Para ello ir a: Menú -> Configuración -
> Filtros.
Estado: muestra la selección de paquetes por su estado.
Sección: muestra la selección de paquetes por su sección.
Propiedades: permite definir filtros por diversas propiedades del paquete.
Pestañas:
8.7 Preferencias
La ventana de preferencias5 (Menu -> Configuración -> Preferencias) tiene 6 pestañas:
1. General
Marcado de cambios: permite establecer las condiciones por defecto para los cambios.
Aplicación de cambios: permite establecer las condiciones por defecto para la aplicación de
los cambios.
2. Columnas y Tipos
Columnas
Establece las columnas de información que serán visibles.
Tipografía
Establece el tipo de uso de la tipografía.
3. Colores
El marcado de colores permite diferenciar las acciones a realizar sobre los paquetes.
4. Ficheros temporales
Permite determinar si los paquetes descargados serán almacenados en la caché o eliminados
después de su instalación.
5. Red
Permite configurar la salida a Internet de forma directa o a través de proxy.
6. Experto
Las acciones tienen un efecto sobre todo el sistema, a nivel de distribución. Hay que ir con
cuidado.
La aplicación Update Manager no puede ser ejecutada si existe lanzada otra instancia de Synaptic
y pedirá que se cierre una de ellas. A partir de este momento la actualización es inmediata y,
dependiendo del volumen de paquetes a actualizar y de la velocidad de la conexión a Internet,
tardará un cierto tiempo.
10 Conclusión
8. A lo largo del artículo el usuario-lector ha podido comprobar la potencia y versatilidad del
sistema de paquetes de Debian (.deb). Es interesante, también, que sepa que es posible
convertir paquetes de diferentes formatos, en concreto, pasar de paquetes RPM a paquete
Debian mediante la utilización de la heramienta Alien que, de forma rápida y sencilla, es
capaz de generar un .deb totalemente funcional. Esto es especialmente interesante para poder
acceder a software Red-Hat que todavía no está disponible para Debian (Ubuntu).
9. Queda fuera del ámbito de este artículo adentrarse en la propia creación de paquetes y
estudiar los mecanismos necesarios, así como los archivos implicados. Pero el objetivo de
proporcionar una visión de usuario, que puede ser suficiente para aprender a manejar
paquetes en el sistema así como comprender su funcionamiento, esperamos que haya
quedado cubierto.