En la mayoría de distribuciones Linux, es posible obtener los programas precompilados en formato de paquetes
- Ventajas:
- Fáciles de instalar y desinstalar
- Fáciles de actualizar
- Fácil control de los programas instalados
- Inconvenientes
- Binarios menos optimizados
- Problemas de dependencias de paquetes
- Problemas si la base de datos de paquetes se corrompe
Formatos de paquetes más populares
- Paquetes DEB (distribución Debian)
- Paquetes RPM (RedHat Package Manager, distribuciones Fedora, RedHat, Mandriva, etc.)
Subsecciones
La distribución Debian incluye un elevado número de paquetes (más de 17.000)
Varias herramientas para el manejo de esos paquetes.
- dpkg - herramienta de bajo nivel, para gestionar directamente los paquetes DEB
- apt-xxx - herramientas APT, permiten gestionar los paquetes, descargándolos de varias fuentes (CDs, ftp, http)
- dselect - herramienta de administración de paquetes basada en menús (alto nivel)
- tasksel - interfaz para instalación de tareas (grupos de paquetes relacionados)
- aptitude - front-end de APT para usar en consola
- synaptic - front-end de APT para usar en entorno gráfico
- alien - permite convertir e instalar paquetes de otro tipo, p.e. RPMs
Para más información ver el capítulo Administración de paquetes Debian
de la Guía de referencia Debian
Permite instalar, actualizar o desinstalar paquetes DEB
Los paquetes DEB contienen:
- Los binarios que se van a instalar
- Metadatos, con información sobre el paquete, scripts para su configuración, lista de dependencias, etc.
Nombre de los paquetes:
- paquete_versión-build_arquitectura.deb, donde
- paquete - nombre de la aplicación
- versión - número de versión de la aplicación
- build - número de ``compilación'' (subversión)
- arquitectura - plataforma para la que está compilado
- Ejemplo:
- ethereal_0.10.11-1_i386.deb
Instalación y eliminación de paquetes con dpkg:
- Instalación de paquetes
dpkg --install paquete.deb, o
dpkg -i paquete.deb
- la instalación chequea la existencia de dependencias, paquetes en conflicto, sobreescritura de ficheros existentes, etc.
- se puede forzar la instalación usando la opción --force-cosas, donde cosas
- conflicts - permite la instalación de paquetes en conflicto
- overwrite - sobrescribe un fichero de un paquete con otro
- overwrite-dir - sobrescribe el directorio de un paquete con uno nuevo
- etc.
- para ver todas las opciones de forzado hacer: dpkg --force-help
- Eliminación de paquetes, manteniendo los ficheros de configuración
dpkg --remove paquete, o
dpkg -r paquete
- Eliminación total de paquetes, eliminando los ficheros de configuración
dpkg --purge paquete, o
dpkg -P paquete
- Reconfiguración de un paquete ya instalado
dpkg-reconfigure paquete
Información sobre los paquetes
- Listar paquetes
dpkg --list [patrón], o dpkg -l [patrón]
- si no se pone patrón muestra los paquetes instalados
- ejemplo
- Las tres primeras columnas representan:
- Estado de selección: indica el estado del paquete para su uso con dselect
- u, Unknown - estado no conocido
- i, Install - paquete seleccionado para instalar (se instala con dselect install)
- r, Remove - paquete seleccionado para eliminar (se elimina con dselect install)
- p, Purge - paquete seleccionado para purgar (se elimina con dselect install)
- h, Hold - paquete retenido (no puede actualizarse)
- Estado actual: indica el estado actual del paquete
- n, Not Installed - paquete no instalado
- i, Installed - paquete instalado en el sistema
- c, Config-files - paquete no instalado, pero ficheros de configuración presentes (p.e. después de un remove)
- u, Unpacked - paquete desempaquetado y listo para instalación
- f, Failed-config - durante la instalación falló la configuración del paquete
- h, Half-installed - paquete a medio instalar debido a algún problema
- Condiciones de error
- h, Hold - paquete retenido, no puede instalarse o eliminarse
- r, Reinstallation Required - necesita reinstalarse
- Información y estado del paquete
- información general
dpkg --print-avail paquete, o dpkg -p paquete
- estado del paquete
dpkg --status paquete, o dpkg -s paquete
- ejemplo
# dpkg -s wget
Package: wget
Status: install ok installed
Priority: important
Section: web
Installed-Size: 1428
Maintainer: NoÚl Köthe <noel@debian.org>
Architecture: i386
Version: 1.10-2
Depends: libc6 (>= 2.3.2.ds1-21), libssl0.9.7
Conflicts: wget-ssl
Conffiles:
/etc/wgetrc a9465704a21e403be628d38e10b0e128
Description: retrieves files from the web
Wget is a network utility to retrieve files from the Web
....
- Ficheros de un paquete
dpkg --listfiles paquete, o dpkg -L paquete
- Paquete al que pertenece un fichero
dpkg --search fichero, o dpkg -S fichero
- Más información: ver ficheros en el directorio /var/lib/dpkg/
- Fichero /var/lib/dpkg/available
- muestra los paquetes disponibles
- Fichero /var/lib/dpkg/status
- muestra el estado de los paquetes
- dpkg lee estos ficheros para obtener información sobre los paquetes
Permite descargar e instalar paquetes desde una fuente local y/o remota
Fuentes de apt: fichero /etc/apt/sources.list
# See sources.list(5) for more information
deb ftp://ftp.rediris.es/debian/ stable main contrib non-free
#Para descargar fuentes, a través de apt-get source
deb-src ftp://ftp.rediris.es/debian/ stable main
- formato de sources.list
deb uri distribución componente #Para binarios
deb-src uri distri. componente #Para ficheros fuente
- componente puede ser:
- main - conjunto principal de paquetes
- contrib - paquetes adicionales
- non-free - paquetes que no son libres
El fichero sources.list puede modificarse
- editándolo directamente, o
- a través del comando apt-setup
Cuando el fichero sources.list contiene referencias a más de una distribución (por ejemplo, estable y pruebas), APT asigna una prioridad a cada versión disponible
Comando apt-get
Comando principal de las herramientas APT
Permite descargar, instalar, actualizar o borrar un paquete
- Actualizar la lista de paquetes
apt-get update
b
- Instalar un paquete
apt-get install nombre_paquete
- Actualizar los paquetes
apt-get upgrade
- debe hacerse un apt-get update antes de un apt-get upgrade
- Eliminar paquetes
apt-get remove nombre_paquete
- Actualizar la distribución
apt-get dist-upgrade
- maneja inteligentemente los cambios de dependencias debidos a nuevas versiones de paquetes
- Eliminar los paquetes descargados
- Cuando se instala un paquete a través de apt-get se guarda una copia en /var/cache/apt/archives/
apt-get clean #Elimina todos los paquetes descargados
apt-get autoclean #Elimina sólo los paquetes obsoletos
- Descargar ficheros fuente
apt-get source nombre_paquete
- con la opción --compile compila el paquete después de descargarlo (y genera el .deb)
apt-get acepta diversas opciones, por ejemplo:
- -s - simula la acción, pero no instala nada
- -y - responde y a todas las preguntas
para más opciones man apt-get
Dependencias entre paquetes
Los paquetes pueden depender unos de otros:
- El paquete A depende (Depends) del paquete B si B es absolutamente necesario para usar A
- El paquete A recomienda (Recommends) el paquere B si se considera que la mayoría de los usuarios no querrían A sin las funcionalidades que proporciona B
- El paquete A sugiere (Suggests) el paquete B si B está relacionado y mejora las funcionalidades de A
- El paquete A está en conflicto (Conflicts) con B en el caso de que A no funcionae correctamente si B está instalado
Otras herramientas APT
- apt-cache - permite manipular la caché de paquetes de APT, buscando paquetes o obteniendo información sobre los mismos
- Ejemplo: buscar el paquete que contiene el firefox
# apt-cache search firefox
gtkcookie - Editor for cookie files
mozilla-firefox - lightweight web browser based on Mozilla
...
- el argumento puede ser una expresión regular
- apt-build - permite descargar, compilar e instalar un paquete a partir de las fuentes
Interfaces del gestor de paquetes
Proporcionan interfaces para consola o gráficas para simplificar el manejo de los paquetes
- aptitude tiene opciones similares a apt-get
- aptitude update: actualiza la lista de paquetes
- aptitude upgrade o aptitude safe-upgrade: actualiza los paquetes instalados, sin eliminar ninguno
- aptitude dist-upgrade o aptitude full-upgrade: actualiza los paquetes instalados, eliminando paquetes si es necesario
Convierte paquetes entre diferentes formatos
Soporta los formatos Red Hat rpm, Debian deb, Stampede slp, Slackware tgz, y Solaris
pkg