[ anterior ] [ Contenidos ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ siguiente ]
Los paquetes normalmente contienen todos los archivos necesarios para implementar un conjunto de órdenes o características relacionadas. Hay dos tipos de paquetes Debian:
paquetes Binarios, que contienen ejecutables, archivos de configuración, páginas man/info, información de copyright, y otra documentación. Estos paquetes se distribuyen en un ¿Cuál es el formato de un paquete Debian?, Sección 6.2 específico de Debian; se distinguen normalmente por tener una extensión de archivo '.deb'. Los paquetes binarios se pueden desempaquetar usando la utilidad Debian dpkg; se dan detalles en su página de manual.
Paquetes Fuente, que consisten en un archivo .dsc que describe el paquete fuente (incluyendo los nombres de los siguientes archivos), un archivo .orig.tar.gz que contiene el código fuente original sin modificar en formato tar comprimido con gzip, y usualmente un archivo .diff.gz que contiene los cambios específicos de Debian al código fuente original. La utilidad dpkg-source empaqueta y desempaqueta los archivos fuente de Debian; se dan detalles en su página de manual.
La instalación de software por el sistema de paquetes usa "dependencias" que son cuidadosamente diseñadas por los encargados del paquete. Estas dependencias están documentadas en el archivo de control asociado con cada paquete. Por ejemplo, el paquete que contiene el compilador de C de GNU (gcc) "depende" del paquete binutils que incluye el enlazador y el ensamblador. Si un usuario intenta instalar gcc sin haber instalado antes binutils, el sistema de paquetes de Debian dará un mensaje de error avisando de que también necesita binutils, e instalará gcc sólo si el usuario acepta instalar binutils primero. (Sin embargo, esta opción puede ser anulada por el usuario persistente). Ver más ¿A qué se refieren al decir que un archivo Depende/Recomienda/Sugiere/Entra en conflicto/Reemplaza/Proporciona otro paquete?, Sección 6.9 abajo.
Las utilidades de paquetes de Debian se pueden usar para:
manipular y gestionar paquetes o partes de paquetes,
ayudar al usuario en la fragmentación de paquetes que deben ser distribuidos a través de un medio de tamaño limitado, como disquetes,
ayudar a los desarrolladores en la construcción de archivos de paquetes, y
ayudar a los usuarios en la instalación de paquetes que residen en un servidor de FTP remoto.
Un "paquete" Debian, o un archivo Debian, contiene los ejecutables, bibliotecas y documentación asociada con una forma particular de un programa o conjunto de programas relacionados. Normalmente un archivo Debian tiene un nombre que acaba en .deb. Los detalles del formato de los paquetes binarios Debian se describen en la página de manual deb(5). Este formato interno está sujeto a cambios, así que use siempre dpkg-deb(8) para manipular archivos .deb.
Los nombres de los paquetes binarios siguen la siguiente convención: <nombre>_<NúmeroDeVersión>-<NúmeroDeRevisiónDebian>.deb
Nótese que nombre se supone que es el nombre del paquete. Como prueba, se puede sacar el nombre de paquete asociado con un archivo Debian concreto (archivo .deb) de una de las siguientes formas:
inspeccionar el archivo "Packages" en el directorio donde se guardaba el paquete en un servidor de FTP de Debian. Este archivo contiene un párrafo describiendo cada paquete; el primer campo del párrafo es el nombre formal del paquete.
usar la orden dpkg --info nombre_VVV-RRR.deb. Esto manda un mensaje a STDOUT que da, entre otras cosas, el nombre formal del paquete.
El componente VVV es el número de versión especificado por el desarrollador original. Aquí no hay estándares establecidos, así que el número de versión puede tener formatos tan distintos como "960428" y "2.7.2.l.3".
El componente RRR es el número de revisión Debian, y lo establece el desarrollador Debian (o un usuario individual, si decide construir el paquete él mismo). Este número corresponde al nivel de revisión del paquete debian (que incluye el Makefile específico de Debian, llamado debian/rules, así como el archivo de control Debian, normalmente llamado debian/control). De este modo, un nuevo nivel de revisión normalmente significa cambios en el Makefile de Debian, el archivo de control, los scripts de instalación o desinstalación, o en los archivos de configuración usados en el paquete.
Se dan detalles sobre el contenido de un archivo de control en el manual
del programador de dpkg
. Resumiendo, este es un ejemplo de archivo
de control para el paquete hello:
Package: hello Status: install ok installed Priority: optional Section: devel Installed-Size: 472 Maintainer: Santiago Vila <sanvila@debian.org> Architecture: i386 Version: 2.1.1-4 Depends: libc6 (>= 2.2.4-4) Description: The classic greeting, and a good example The GNU hello program produces a familiar, friendly greeting. It allows non-programmers to use a classic computer science tool which would otherwise be unavailable to them. . Seriously, though: this is an example of how to do a Debian package. It is the Debian version of the GNU Project's `hello world' program (which is itself an example for the GNU Project).
El campo Package informa del nombre del paquete. Este es el nombre mediante el cual el paquete se puede manipular con las utilidades de paquetes de Debian, y normalmente es parecido (aunque no necesariamente igual) que la primera cadena de caracteres del nombre del archivo Debian.
El campo Version da a la vez el número de versión del desarrollador original y (como último componente) el nivel de revisión del paquete Debian de este programa, tal y como se describe en ¿Por qué los nombres de los paquetes Debian son tan largos?, Sección 6.3.
El campo Architecture especifica el procesador para el que fué compilado este binario en concreto.
El campo Depends da una lista de paquetes que tienen que estar instalados para poder instalar este paquete con éxito.
El campo Installed-Size indica cuanto espacio de disco ocupará el paquete instalado. Está pensado para que lo usen los programas de instalación para indicar si existe suficiente espacio de disco para instalar el programa.
El campo Maintainer da la dirección de correo electrónico de la persona actualmente responsable del mantenimiento del paquete.
El campo Description da un pequeño resumen de las características del paquete.
Los conffiles son listas de archivos de configuración, normalmente guardadas en /etc, que el sistema de mantenimiento de paquetes no sobrescribe cuando se actualiza un paquete. Esto asegura que los valores locales de los contenidos de estos archivos se conserven, y es una característica imprescindible para permitir la actualización de paquetes en un sistema en funcionamiento. Para determinar exactamente qué archivos se conservan durante una actualización, ejecutedpkg --status paquete.
Estos archivos son scripts ejecutables que se usan automáticamente antes o después de que se instale un paquete. Junto con el archivo control, todos estos archivos forman parte de la sección de "control" de un archivo Debian.
Los archivos individuales son:
Este script se ejecuta antes de que se desempaquete el contenido del archivo Debian (".deb"). Muchos scripts 'preinst' detienen los servicios de los paquetes que se actualizan hasta que su instalación o actualización se completa (después de la ejecución exitosa del script 'postinst').
Este script normalmente completa cualquier configuración necesaria en el paquete nombre una vez que nombre ha sido desempaquetado de su archivo Debian (".deb"). A veces, los scripts 'postinst' piden al usuario datos, y/o le advierten de que si acepta los valores por defecto, tendrá que acordarse de volver atrás y reconfigurar dicho paquete. Muchos scripts 'postinst' ejecutan las órdenes necesarias para empezar o reanudar un servicio una vez que el nuevo paquete ha sido instalado o actualizado. Es una buena idea el repasar el contenido de un script 'postinst' en busca de consejos de configuración cuando se instale un paquete por primera vez.
Este script normalmente detiene cualquier demonio asociado con un paquete. Se ejecuta antes de borrar los archivos asociados a un paquete.
Este script normalmente modifica enlaces u otros archivos asociados con nombre. (Ver notas sobre ¿Qué es un paquete virtual?, Sección 6.8).
Todos los archivos de control se pueden encontrar en /var/lib/dpkg/info. Los archivos importantes para el paquete nombre empiezan con el nombre "nombre" y tienen extensiones "preinst", "postinst", etc., como corresponda. El archivo nombre.list en dicho directorio enumera todos los archivos que se instalaron con el paquete nombre. (Nótese que la localización de estos archivos es información interna de dpkg; no se debe confiar en ella.)
Cada paquete Debian recibe una prioridad por los responsables de la distribución, como ayuda al sistema de mantenimiento de paquetes. Las prioridades son:
Requerido Los paquetes requeridos son necesarios para el correcto funcionamiento del sistema. Esto incluye todas las herramientas necesarias para reparar defectos del sistema. No se deben eliminar estos paquetes o su sistema puede volverse totalmente inestable y probablemente ni siquiera será capaz de usar dpkg para volver a poner las cosas en su sitio. Sistemas con sólo los paquetes requeridos probablemente no son utilizables, pero tienen la suficiente funcionalidad para permitir al administrador del sistema arrancarlo e instalar más programas.
Los paquetes importantes están presentes en cualquier sistema parecido a Unix. Aquí se encuentran los paquetes sin los que el sistema no funcionará correctamente. Esto NO incluye Emacs, X11, TeX o cualquier otra aplicación grande. Estos paquetes sólo constituyen la infraestructura base.
Los paquetes estándar son los típicos en cualquier sistema Linux, incluyendo un sistema en modo carácter razonablemente pequeño, aunque no muy limitado. Se instalará por defecto si los usuarios no seleccionan nada más. No incluye demasiadas aplicaciones mayores, aunque incluye Emacs (que es más una pieza de la infraestructura que una aplicación) y una parte razonable de Tex y Latex (si es que es posible usarlos sin X).
Los paquetes opcionales incluyen todos los que razonablemente se desearía instalar a no ser que no se sepa lo que son o exijan requisitos especiales. Esto incluye X11, una distribución completa de TeX, y montones de aplicaciones.
Los paquetes extra tienen conflictos con otros de mayor prioridad, o es sólo probable que se usen si ya se sabe lo que son, o tienen requisitos especiales.
Un paquete virtual es un nombre genérico que se aplica a uno cualquiera de un conjunto de paquetes, los cuales proveen todos ellos de una funcionalidad básica similar. Por ejemplo, los programas tin y trn son lectores de noticias los dos, y por tanto satisfacen por igual cualquier dependencia de un programa que necesite un lector de noticias en el sistema para funcionar o ser útil. Se dice que ambos proveen el "paquete virtual" llamado lector de noticias.
Igualmente, smail y sendmail proveen ambos de la funcionalidad de un agente de transporte de correo. También se dice que ambos proporcionan el paquete virtual "agente de transporte de correo". Si cualquiera de ellos está instalado, cualquier programa que exija la instalación de un agente de transporte de correo se dará por satisfecho con la existencia de este paquete virtual.
Debian proporciona un mecanismo mediante el cual, si más de un paquete que permita el mismo paquete virtual se instala en un sistema, los administradores del sistema pueden marcar uno como el paquete preferido. La orden importante es alternativas de actualización, y se describe con detalle en la sección de A algunos usuarios les gusta mawk, a otros les gusta gawk; algunos prefieren vim mientras que otros prefieren elvis; algunos quieren usar trn, a otros les gusta tin; ¿cómo soporta Debian la diversidad?, Sección 10.9.
El sistema de paquetes Debian tiene un conjunto de "dependencias" diseñadas para indicar (mediante un único indicador) el nivel al que puede operar un Programa A independientemente de la existencia del Programa B en un sistema dado:
El paquete A depende del paquete B si B tiene que estar instalado obligatoriamente para que funcione A. En ese caso, la versión de dependencia normalmente es un límite inferior, de modo que A depende de cualquier versión de B más reciente que alguna versión especificada.
El paquete A recomienda al paquete B, si el responsable del paquete considera que la mayoría de usuarios no querrán A sin tener la funcionalidad permitida por B.
El paquete A sugiere al paquete B si B contiene archivos que están relacionados con (y normalmente mejoran) la funcionalidad de A.
El paquete A Entra en conflicto con el paquete B cuando A no funcionará si B está instalado en el sistema. La mayoría de las veces los conflictos son casos en los que A contiene archivos que son una mejora respecto a los que contiene B. Los "Conflictos" se combinan frecuentemente con "reemplazos".
El paquete A reemplaza al paquete B cuando archivos instalados por B son borrados y (en algunos casos) sobrescritos por archivos en A.
El paquete A proporciona al paquete B cuando todos los archivos y la funcionalidad de B se incorporan en A. Este mecanismo proporciona un modo de que los usuarios con espacio de disco reducido instalen la parte del paquete A que realmente necesitan.
Información más detallada sobre estos temas se puede encontrar en el ftp://ftp.debian.org/debian/doc/package-developer/programmer.ps.gz
.
"Pre-Dependencia" es una dependencia especial.
En el caso de la mayoría de paquetes, dpkg extraerá el contenido del archivo correspondiente (p.ej., su archivo .deb) tanto si los archivos de los que depende existen en el sistema como si no. Desempaquetar significa que dpkg extraerá los archivos del paquete que se espera que queden instalados en el sistema de ficheros, y los pondrá en su localización correspondiente. Si el paquete depende de la existencia de otro paquete no instalado en el sistema, dpkg se negará a completar la instalación ejecutando su orden "configure" hasta que los otros paquetes se instalen.
Pero para algunos paquetes, dpkg se negará incluso a desempaquetar
los archivos hasta que se resuelvan las dependencias. Se dice de esos paquetes
que "Pre-dependen" de la presencia de algún otro paquete. El
proyecto Debian proporcionó este mecanismo para permitir la actualización
segura de sistemas en formato a.out a formato ELF,
donde el orden en que se instalan los paquetes era crítico. Información más
detallada sobre el uso de estos términos se puede encontrar en el Manual
del Programador de Debian
.
Estas marcas indican lo que el usuario desea hacer con un paquete (ya sea mediante las acciones del usuario en la sección "Select" de dselect, o por las llamadas directas del usuario a dpkg). Sus significados son:
desconocido - el usuario no ha dicho si quiere el paquete
instalar - el usuario ha dicho que quiere instalar o actualizar el paquete
quitar - el usuario quiere desinstalar el paquete, pero sin borrar cualquier fichero de configuración que exista.
Borrar - el usuario quiere eliminar completamente el paquete, incluyendo ficheros de configuración.
conservar - el usuario no quiere procesar este paquete, quiere mantener la versión actual con su estado actual, cualquiera que sea.
Ver ¿Qué otra documentación existe sobre y para un sistema Debian?, Sección 11.1.
[ anterior ] [ Contenidos ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ siguiente ]
Las Preguntas Frecuentes (FAQ) sobre Debian GNU/Linux
30 de December de 2009