<< Back to man.lupaworld.com


[ anterior ] [ Contenidos ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ siguiente ]

Guía de referencia Debian
Capítulo 2 - Fundamentos de Debian


Este capítulo proporciona información fundamental sobre el sistema Debian para aquellos que no son desarrolladores. Para información autorizada, consulte:i

listada en la sección Referencias, Sección 15.1.

Si está buscando explicaciones menos detalladas, vaya directamente a la Administración de paquetes Debian, Capítulo 6 o a los capítulos adecuados.

Este capítulo se basa en información obtenida de las "FAQ de Debian" reorganizada totalmente a fin de permitir dar sus primeros pasos a los administradores de sistemas Debian.


2.1 Los archivos Debian


2.1.1 Estructura de los directorios

El software que ha sido empaquetado para Debian está disponible en alguno de los diversos árboles de directorios situados en cada sitio réplica Debian a través de FTP o HTTP.

En cada sitio réplica de Debian, bajo el directorio debian se pueden encontrar los siguientes directorios:

dists/:
Este directorio contiene las "distribuciones" y se utilizan para acceder a los paquetes actualmente disponibles en las versiones y pre-versiones de Debian. Aún se pueden encontrar aquí algunos paquetes antiguos, archivos Contents-*.gz, y archivos Packages.gz.
pool/:
La nueva ubicación de todos los paquetes de todas las versiones y versiones previas de Debian.
tools/:
Utilidades del DOS para crear discos de arranque, particionar su unidad de disco, comprimir/descomprimir archivos y arrancar Linux.
doc/:
La documentación básica de Debian: FAQ, instrucciones para dar a conocer un fallo, etc.
indices/:
El archivo Maintainers y los archivos override.
project/:
principalmente recursos para el desarrollador, tales como:
project/experimental/:
Este directorio contiene paquetes y herramientas que aún están en desarrollo y en la etapa alfa de prueba. Los usuarios no deberían usar estos paquetes ya que pueden resultar peligrosos y perjudicial incluso para los más experimentados.
project/orphaned/:
Paquetes que han sido abandonados por las personas los tenían a cargo y que han sido retirados de la distribución.

2.1.2 Distribuciones Debian

Normalmente existen tres distribuciones Debian en el directorio dists: la distribución estable (stable) , la distribución de prueba (testing) y la distribución inestable (unstable). A veces existe una distribución congelada (véase La distribución congelada, Sección 2.1.6). Cada distribución viene definida por un enlace simbólico al directorio real, utilizando un nombre de código en el directorio dists


2.1.3 La distribución estable

Los paquetes de la versión estable, Debian Woody (3.0r0), se encuentran en el directorio stable (enlace simbólico a woody):

Actualmente, además de las ubicaciones anteriores, los paquetes nuevos se encuentran físicamente en el directorio pool (El directorio pool, Sección 2.1.10).

El estado actual de los fallos de la distribución estable se puede consultar en la página web Stable Problems.


2.1.4 La distribución de prueba

Los paquetes de la versión de prueba, Debian Sarge, se encuentran en el directorio testing (enlace simbólico a sarge) tras haber sido probados durante cierto tiempo en la rama inestable. Actualmente, además de las ubicaciones anteriores, los paquetes nuevos se localizan en el directorio pool (El directorio pool, Sección 2.1.10). Asimismo, también están los subdirectorios main, contrib y non-free que cumplen las mismas funciones que en la rama estable.

Estos paquetes deben estar en sintonía con todas las arquitecturas para las cuales fueron construidos y no deben tener dependencias que impida su instalación; además, deben tener menos fallos críticos que las versiones que se encuentran en la rama inestable. De esta manera, es de esperar que la rama de prueba sea la posible candidata de la próxima versión. Más detalles sobre este mecanismo en: http://www.debian.org/devel/testing.

El estado final de la distribución de prueba se puede consultar en los siguientes sitios:


2.1.5 La distribución inestable

Los paquetes de la versión inestable, denominada siempre "Sid", se encuentran en el directorio unstable (enlace simbólico a sid) tras haber sido transferidos al archivo Debian y permanecer allí hasta su translado a la rama de prueba Actualmente, además de las ubicaciones anteriores, los paquetes nuevos se ubican en el directorio pool (El directorio pool, Sección 2.1.10). Asimismo, también están los subdirectorios main, contrib y non-free que cumplen las mismas funciones que en la rama estable.

La distribución inestable contiene la imagen más reciente del sistema en desarrollo. Se alienta a los usuarios a usar y probar estos paquetes pero se les advierte sobre su estado. La ventaja de usar la distribución inestable es que uno siempre está actualizado con lo último del proyecto Debian— pero si deja de funcionar deberá conservar ambas partes :-)

El estado actual de los fallos de la distribución inestable se puede consultar en la página web Problemas de la rama inestable.


2.1.6 La distribución congelada

Cuando la distribución de prueba está suficientemente madura se "congela", es decir, ya no se aceptan programas nuevos y -de ser necesario- sólo se eliminan fallos. Asimismo, en el directorio dists se crea un nuevo árbol "de prueba" al que se le asigna un nuevo nombre. La distribución congelada está durante algunos meses de prueba con actualizaciones continuas y congelaciones totales denominadas `ciclos de prueba (el reciente lanzamiento de Woody no incluía un enlace simbólico a la versión congelada, por lo tanto ésta no era una distribución sino una etapa de desarrollo de la distribución de prueba)

En la distribución congelada se mantiene un registro de fallos que pueden retrasar la liberación de un paquete o de la distribución completa. Una vez que los fallos están por debajo de los valores máximos aceptables, la distribución congelada se transforma en la distribución estable, es liberada y la versión estable anterior se vuelve obsoleta (y se archiva).


2.1.7 Los nombres de versión de la distribución Debian

Los nombres de los directorios situados en el directorio dists, tales como woody y sarge, son simplemente los "nombres de versión". Cuando una distribución Debian se encuentra en la etapa de desarrollo, no tiene número de versión sino un "nombre de versión". El propósito de estos nombres es facilitar la replicación de la distribuciones Debian (si un directorio como unstable cambia de repente su nombre a stable, sin ser necesario, se tendrían que descargar un montón de cosas nuevamente).

Actualmente, stable/ es un enlace simbólico a woody y testing/ es un enlace simbólico a sarge. Esto significa que Woody es la distribución estable y Sarge la distribución de prueba actuales.

unstable es un enlace simbólico permanente a sid/, ya que Sid siempre es la distribución inestable.


2.1.8 Nombres de versión usados en el pasado

Nombres de versión que ya han sido usados: "Buzz" para la versión 1.1, "Rex" para la versión 1.2, "Bo" para la versión 1.3.x, "Hamm" para la versión 2.0, "Slink" para la versión 2.1, "Potato" para la versión 2.2, "Woody" para la versión 3.0, y "Sarge" para la versión 3.1.


2.1.9 El origen de los nombres de versión

Hasta aquí han sido tomados de la película Toy Story de Pixar.


2.1.10 El directorio pool

Históricamente, los paquetes se guardaban en el subdirectorio dists correspondiente a una determinada distribución. Esto ocasionaba diversos problemas, como -por ejemplo- un gran consumo del ancho de banda de los sitios réplicas cuando se realizaban grandes cambios.

Actualmente, los paquetes se guardan en un gran `depósito', estructurado según el nombre del paquete fuente. Para facilitar su uso, el depósito está subdividido en secciones (main, contrib y non-free) y por la primer letra del nombre del paquete fuente. Estos directorios contienen diversos archivos: los paquetes binarios para cada arquitectura y los paquetes fuentes a partir de los cuales se han generado los mismos.

Puede averiguar el lugar donde se encuentra un paquete ejecutando el comando apt-cache showsrc nombre_paquete y leyendo la línea que dice `Directory:'. Por ejemplo, los paquetes de apache se encuentran en pool/main/a/apache/. Puesto que existen tantos paquetes lib* estos son tratado de una manera especial: por ejemplo, los paquetes libpaper se encuentran en pool/main/libp/libpaper/.

Los directorios dists aún se siguen utilizando para los archivos índice usados por programas como apt. De todas maneras, al momento de escribir este doucmento, las distribuciones antiguas no han sido modificadas para usar estos 'depósitos' por lo que verá rutas que contienen nombres de distribuciones tales como potato o woody en el campo de cabecera "Directory".

Normalmente, no se debe preocupar por nada de esto ya que la reciente apt y probablemente la antigua dpkg-ftp (véase Métodos para actualizar un sistema Debian, Sección 2.3.1) se harán cargo en forma totalmente transparente. Si desea más información, consulte las RFC: implementación de las herramientas de paquetes.


2.1.11 Algunas notas históricas sobre Sid

Cuando la actual Sid no existía, la organización del archivo Debian adolecía de un grave inconveniente: se suponía que cuando una arquitectura era creada en la rama inestable, iba a ser liberada cuando la distribución se transformara en la nueva versión estable. Para muchas arquitecturas éste no era el caso con lo cual los correspondientes directorios debían desplazarse ante un nuevo lanzamiento. Esto no resultaba práctico ya que esta acción consumía ingentes cantidades de ancho de banda.

Los administradores del archivo evitaron el problema durante muchos años ubicando los binarios de las arquitecturas no liberadas en un directorio especial llamado sid. Cerca del lanzamiento de estas arquitecturas se creaba un enlace entre la versión estable y sid y a partir de allí eran creadas dentro de la rama inestable de manera normal. Esta disposición era un tanto confusa para los usuarios.

Con la llegada de los repositorios de paquetes (véase El directorio pool, Sección 2.1.10) durante el desarrollo de la distribución Woody, los paquetes binarios comenzaron a guardarse en un lugar estándar del depósito, independientemente de la distribución, de modo que al liberar una distribución no se produciera un gran consumo de ancho de banda en los sitios réplica (existe, no obstante, un consumo gradual del ancho de banda durante el proceso de desarrollo).


2.1.12 Transferencias de paquetes en incoming/

Los paquetes transferidos primero se ubican en http://incoming.debian.org/ luego de haber sido analizados para asegurar que realmente provienen de un desarrollador de Debian (y son ubicados en el subdirectorio DELAYED en el caso de una transferencia de una persona que no es encargada: Non-Maintainer Upload (NMU)). Una vez por día, se transladan de incoming/ a unstable/.

En una emergencia, si desea instalar paquetes desde incoming/ antes de ir a unstable/.


2.1.13 Recuperando una paquete antiguo

Mientra que las distribuciones de Debian más recientes se encuentran en el directorio debian de cada sitio réplica, los archivos de las antiguas distribuciones de Debian tales como Slink se guardan en http://archive.debian.org/ o en el directorio debian-archive de cada sitio réplica de Debian.

Los paquetes antiguos de la rama de prueba e inestable se pueden localizar en http://snapshot.debian.net/.


2.1.14 Distintas arquitecturas

Dentro de cada uno de los árboles de directorios principales (dists/stable/main, dists/stable/contrib, dists/stable/non-free, dists/unstable/main/, etc.) las entradas de los paquetes binarios residen en subdirectorios cuyos nombres indican la arquitectura para la cual fueron compilados.

Por favor, observe que los paquetes binarios para la versión de prueba y la versión inestable ya no residen en estos directorios sino en el directorio de nivel superior pool. No obstante, por cuestiones de compatibilidad hacia atrás se siguen conservando los archivos índice (Packages y Packages.gz).

Para las arquitectura binarias actualmente soportadas, consulte las Release Notes de cada distribución. Se pueden ubicar en los sitios de Notas de versión para stable y testing.


2.1.15 El código fuente

En el sistema Debian se incluye el código fuente para todo. Por otra parte, los términos de la licencia de la mayoría de los programas del sistema exigen que se distribuyan junto con su código fuente o que proporcionen una manera de obtenerlo.

Normalmente el código fuente se distribuye a través de los directorios source, que son paralelos a todos los directorios que contienen los binarios correspondiente a una arquitectura específica o, más recientemente, en el directorio pool (véase El directorio pool, Sección 2.1.10). Para obtener el código fuente sin estar familiarizado con la estructura del archivo Debian, pruebe hacer apt-get source nombre_paquete.

Algunos paquetes, en especial pine, se distribuyen únicamente como código fuente debido a las limitaciones impuestas por su licencia (hace poco se ha incluido el paquete pine-tracker para facilitar la instalación de Pine). El procedimiento descrito en Portar un paquete a la rama stable, Sección 6.4.10 y Creación de paquetes Debian, Sección 13.9 describe la manera de contruir un paquete en forma manual.

Para los paquetes de los directorios "contrib" y "non-free", que formalmente no forman parte del sistema Debian, el código fuente puede o no estar disponible.


2.2 Sistema de administración de paquetes Debian


2.2.1 Repaso sobre los paquetes Debian

Los paquetes contienen generalmente todos los archivos necesarios para implementar un conjunto de comandos relacionados o características. Existen dos tipos de paquetes Debian:

La instalación de software mediante el sistema de paquetes utiliza "dependencias" que fueron cuidadosamente concebidas por las personas a cargo de los paquetes. Estas dependencias están documentadas en el archivo control asociado a cada paquete. Por ejemplo, el paquete que contiene el compiladodr C GNU (gcc) "depende" del paquete binutils que incluye el enlazador y ensamblador. Si un usario intenta instalar gcc sin haber previamente instalado binutils, el sistema de administración de paquetes (dpkg) mostrará un mensaje de error diciendo que necesita también a binutils y abortará la instalación de gcc (no obstante, el usuario insistente puede hacer caso omiso, véase dpkg(8)) Para más detalles, véase Dependencia entre paquetes, Sección 2.2.8 más abajo.

Las herramientas de los paquetes de Debian se pueden usar para:


2.2.2 Formato de los paquetes Debian

Un "paquete" Debian o un archivo Debian contiene los archivos ejecutables, bibliotecas y la documentación asociada con un programa particular o con un conjunto de programas relacionados. Normalmente, un archivo Debian tiene ua extensión de archivo que termina en .deb.

La estructura interna del formato de paquetes binarios de Debian se describen en la página del manual deb(5). Puesto que el formato interno está sujeto a cambios (entre los lanzamientos principales de Debian), siempre utilice dpkg-deb(8) para manipular archivos .deb. [1]

Los detalles internos de este formato de paquete binario de Debian se describen en la página del manual deb(5). Puesto que este formato está sujeto a cambios (entre los lanzamientos principales de Debian), siempre utilice dpkg-deb(8) para manipular archivos .deb.

Por lo menos en la distribución Sarge, todos los archivos del repositorio de Debian son manipulables por los comandos estándar Unix ar y tar, incluso cuando los comandos de dpkg no se encuentran disponibles.


2.2.3 Convención usada para designar a los paquetes Debian

Los nombres de los paquetes Debian siguen la siguiente convención:

     <loquesea>_<número_de_versión>-<número_de_revisión_Debian>.deb

donde loquesea es el nombre del paquete. A modo de verificación, uno puede determinar el nombre del paquete asociado a un archivo Debian determinado (archivo .deb) mediante una de las siguientes maneras:

La parte VVV indica el número de versión especificada por el desarrollador original. No hay un estándar que regule los números de versión, por lo tanto pueden tener formatos diferentes tales como "19990513" y "1.3.8pre1".

La parte RRR indica el número de revisión y es asignado por el desarrollador Debian (o por un usuario particular si decide crear el paquete por sí mismo). Este número corresponde al nivel de revisión del paquete Debian; de esta manera, un nivel de revisión nuevo implica generalmente cambios en el Makefile de Debian (debian/rules), en el archivo de control (debian/control), en los guiones de instalación y desinstalación (debian/p*) o en los archivos de configuración utilizados por el paquete.


2.2.4 Preservando la configuración local

La preservación de los archivos configuración del usuario se activa a través del mecanismo "conffiles" de Debian. Los archivos de configuración del usuario (generalmente localizados en /etc/) son especificados en el archivo conffiles del sistema de paquetes Debian. El sistema de administración de paquetes evita que estos archivos sean reescritos al actualizar un paquete.

En lo posible configurar el sistema sin modificar los archivos que pertenecen a distintos paquetes Debian. También resulta generalmente una buena idea no modificarlos incluso si son archivos de configuración. Esto asegura que las operaciones de actualizaciones sean rápidas y sin problemas.

Para determinar con exactitud qué archivos serán preservados durante una actualización, ejecute:

     dpkg --status package

y consulte la línea "Conffiles:".

Los detalles del contenido de un archivo conffiles son proporcionados por el Manual de Normativa de Debian, sección 11.7 (véase Referencias, Sección 15.1).


2.2.5 Scripts de mantenimiento de Debian

Los scripts de mantenimiento de Debian son scripts ejecutables que se ejecutan automáticamente antes o después de la instalación de un paquete. Todos estos archivos, junto con otro llamado control, son parte de la sección "control" de un archivo Debian.

Los archivos individuales son:

preinst
Este script se ejecuta antes que su paquete sea desempaquetado de su archivo Debian (.deb). Muchos scripts "preinst" detienen los servicios de los paquetes que están siendo actualizados hasta que la actualización o instalación de los mismos haya finalizado (luego de la ejecución exitosa del script "postinst").
postinst
Generalmente este script completa la configuración requerida por un paquete una vez desempaquetado de su archivo Debian (.deb). A menudo, los scripts 'postinst' le piden al usuario ciertos datos y/o le advierte que si acepta los valores predeterminados deberá volver a reconfigurar el paquete cuando la situación lo requiera. Muchos scripts "postinst" a continuación ejecutan los comandos necesarios para reiniciar el servicio una vez que el paquete nuevo correspondiente haya sido instalado o actualizado.
prerm
Generalmente, este script detiene los demonios asociados a un paquete. Es ejecutado antes de la eliminación de los archivos relacionados con el mismo.
postrm
Generalmente, este script modifica los enlaces u otros archivos asociados a un paquete y/o elimina los archivos creados por él (véase, también Paquetes virtuales, Sección 2.2.7.)

Actualmente, todos los archivos de control se pueden encontrar en el directorio /var/lib/dpkg/info. Los archivos asociados al paquete loquesea comienzan con la palabra "loquesea" y llevan las extensiones "preinst", "postinst", etc., según corresponda. El archivo loquesea.list de este directorio lista todos los archivos que fueron instalados con el paquete loquesea (obsérvese, que la ubicación de estos archivos es interno a dpkg y puede estar sujeto a cambios)


2.2.6 Prioridad de los paquetes

Los encargados de la distribución, asignan a cada paquete Debian una prioridad para ayudar al sistema de administración de paquetes. Las prioridades son:

En la descripción del paquete nótese las diferencias entre "Prioridad: requerida", "Sección: base" y "Esencial: sí". "Sección: base" significa que el paquete se instalará antes que cualquier otro en un sistema nuevo. La mayoría de los paquetes de la "Sección: base" posee una "Prioridad requerida" o por lo menos una "Prioridad: importante" y muchos de ellos están marcados con la etiqueta "Esencial: sí". "Esencial: sí" significa que para que el sistema de administración de paquetes tal como dpkg pueda eliminarlo del mismo necesita de una opción extra para forzar su desinstalación. Por ejemplo, libc6, mawk y makedev tienen una "Prioridad: requerida" y una "Sección: base" pero no llevan la etiqueta "Esencial: sí".


2.2.7 Paquetes virtuales

Un paquete virtual es un nombre genérico que se le asigna a cualquier paquete de un grupo de paquetes que básicamente proporcionan la misma funcionalidad. Por ejemplo, tanto tin como trn son lectores de noticias y, por lo tanto, deberán satisfacer cualquier dependencia exigida por un programa que requiera de un lector de noticias a fin de que éste funcione correctamente o resulte útil. Se dice que ambos proporcionan el "paquete virtual" llamado news-reader.

De manera similar, muchos paquetes tales como exim, exim4, sendmail y postfix proporcionan la funcionalidad de un agente de transporte de correo. Por lo tanto, se dice que proporcionan el mismo paquete virtual mail transport agent. Si se instala alguno de los dos, cualquier programa que dependa de la instalación de un agente de transporte de correo se ejecutará sin problemas debido a la existencia de este paquete virtual.

Debian posee un mecanismo de modo que, si se instala en un sistema más de un paquete que proporciona el mismo paquete virtual, el administrador puede configurar uno de los dos como paquete preferido. El comando utilizado se llama update-alternatives y se describe mas adelante en Comandos alternativos, Sección 6.5.3.


2.2.8 Dependencia entre paquetes

El sistema de paquetes Debian tiene un rango de "dependencias" entre paquetes que fue concebido para señalar (mediante un simple indicador) el nivel en el que el Programa A puede operar en forma independiente de la existencia del Programa B en un sistema determinado:

Información más detallada sobre el uso de cada uno de estos términos se puede encontrar en el Manual para la creación de paquetes y el Manual de Normativa.

Obsérvese que dselect tiene un mayor control sobre los paquetes considerados como recomendados y sugeridos que apt-get, el cual simplemente obtiene todos los paquetes considerados como dependientes y deja todos los paquetes considerados como recomendados y sugeridos. En sus versiones modernas ambos programas usan APT como interfaz.


2.2.9 Significado de Pre-depends

"Pre-depends" es una dependencia especial. En el caso de un paquete común y corriente, dpkg desempaquetará sus archivos (es decir, su archivo .deb) estén o no en el sistema los archivos de los cuales dependen. Simplificando, desempaquetar significa que dpkg extraerá los archivos del archivo .deb que iba a ser instalado en el sistema y los coloca en su lugar. Si el paquete depende de la existencia de otros paquetes en el sistema, dpkg se negará a completar la instalación (ejecutando su acción "configure") hasta que dichos paquetes sean instalados.

No obstante, en el caso de algunos paquetes, dpkg se negará incluso a desempaquetarlos hasta que se resuelvan ciertas dependencias. Se dice que estos paquetes "pre-dependen" de la presencia de algún(algunos) otro(s) paquete(s). El proyecto Debian proporcionó este mecanismo para realizar actualizaciones del sistema seguras del formato a.out al formato ELF en donde el orden en que se desempaquetaban los paquetes era crítica. Existen otras situaciones con actualizaciones masivas donde este método resulta útil, por ejemplo cuando los paquetes con prioridad "requerida" y su depencencia con libc.

Nuevamente, información más detallada se puede encontrar en el Manual de creación de Paquetes.


2.2.10 Estado de un paquete

El estado de un paquete puede ser "unknown" (desconocido), "install" (para instalar), "remove" (para eliminar), "purge" (para purgar), o "hold" (en espera). Estas banderas indican lo que el usuario quiere hacer con un paquete (como viene indicado por las acciones del usuario en la sección "Select" de dselect o por la invocación directa de dpkg por parte del mismo).

Significados:


2.2.11 Evitando la actualización de un paquete

Existen dos mecanismos para evitar la actualización de un paquete, mediante dpkg o, comenzando con Woody, mediante APT.

Con dpkg, exporte primero la lista de las selecciones de paquetes:

       dpkg --get-selections > selections.txt

A continuación, edite el archivo resultante selecciones.txt, cambiando la línea que contiene el paquete que se desea conservar, por ejemplo libc6, de:

     libc6                       install

a:

     libc6                       hold

Guárdelo y actualice la base de datos de dpkg haciendo:

     dpkg --set-selections selectiones.txt

O, si conoce el nombre del paquete que desea conservar, simplemente escriba:

     echo libc6 hold | dpkg --set-selections

Este proceso conserva los paquetes durante el proceso de instalación de cada paquete.

El mismo efecto se puede obtener mediante dselect. Simplemente entre a la pantalla [S]elect, busque el paquete cuyo estado desea conservar y presione la tecla `=' (o la tecla `H'). Los cambios se producirán inmediatamente al salir de la pantalla.

En la distribución Woody el sistema a APT pose un mecanismo nuevo alternativo para conservar paquetes durante el proceso de obtención de archivos .deb usando Pin-Priority. Véase la página del manual apt_preferences(5) junto con http://www.debian.org/doc/manuals/apt-howto/ o el paquete apt-howto. Repaso de /etc/apt/preferences, Sección 6.2.8 también contiene una breve explicación.


2.2.12 Paquetes fuente

Los paquetes fuente se distribuyen en un directorio denominado source y se pueden descargar manualmente o usar

     apt-get source loquesea

para conseguirlos (consulte la página del manual apt-get(8) para saber cómo configurar APT para que haga esto).


2.2.13 Construir un paquete binario a partir de un paquete fuente

Para un paquete loquesea, necesitará los archivos loquesea_*.dsc, loquesea_*.tar.gz y loquesea_*.diff.gz para compilar los fuentes (observación: para un paquete Debian nativo el paquete .diff.gz no existe).

Una vez que los tiene a todos, y si tiene instalado el paquete dpkg-dev , el comando

     dpkg-source -x loquesea_version-revision.dsc

extraerá el paquete en un directorio llamado loquesea-version.

Ejecutar el siguiente comando para construir el paquete binario:

     $ cd loquesea-version
     $ su -c "apt-get update ; apt-get install fakeroot"
     $ dpkg-buildpackage -rfakeroot -us -uc

Finalmente haga,

     # su -c "dpkg -i ../loquesea_version-revision_arch.deb"

para instalar el paquete recientemente construido. Véase Portar un paquete a la rama stable, Sección 6.4.10.


2.2.14 Creando paquetes Debian nuevos

Para una información más detallada, consulte la Guía para Nuevos Encargados de Paquetes de Debian disponible en el paquete maint-guide o en http://www.debian.org/doc/manuals/maint-guide/.


2.3 Actualizando un sistema Debian

Uno de los objetivos de Debian es proporcionar una manera de actualizar el sistema en forma consistente y segura. Siempre hacemos todo lo posible para que una nueva versión se pueda actualizar fácilmente a partir de las anteriores. Durante el proceso de actualización, los paquetes alertan a los usuarios sobre posibles inconvenientes y a menudo proporcionan una solución al posible problema.

También debería leer las Release Notes, el documento que describe los detalles sobre actualizaciones específicas, que acompañan a todos los CDs de Debian y disponibles en la WWW en http://www.debian.org/releases/stable/releasenotes o http://www.debian.org/releases/testing/releasenotes.

En Administración de paquetes Debian, Capítulo 6 se proporciona una guía práctica sobre actualizaciones. Esta sección describe los detalles básicos.


2.3.1 Métodos para actualizar un sistema Debian

Uno podría simplemente ejecutar un FTP anónimo o una llamada a wget a un repositorio Debian, recorrer los distintos directorios hasta encontrar el archivo deseado, obtenerlo y, finalmente, instalarlo usando dpkg. Obsérvese que dpkg instalará los archivos de actualización en el momento, incluso en un sistema andando. A veces, no obstante, la versión nueva de un paquete requerirá de la versión nueva de otros en cuyo caso la instalación no tendrá éxito hasta/salvo que se instalen dichos paquetes.

Mucha gente encuentra que este enfoque insume gran cantidad de tiempo, ya que Debian evoluciona muy rápidamente —en general, cada semana se agregan una docena o más de paquetes nuevos. Este número es más grande justo antes de la salida de una nueva versión. Para poder hacer frente a esta avalancha, muchas personas prefieren usar un programa automatizado. Para este fin, existen diversas herramientas de administración de paquetes especializadas.


2.3.2 Repaso de las herramientas de administración de paquetes

El sistema de administración de paquetes Debian tiene dos objetivos: la manipulación del propio paquete y la obtención de los archivos del paquete desde un repositorio Debian. dpkg realiza la primer tarea, APT y dselect la segunda.


2.3.3 dpkg

Este es el programa principal para manipular los archivos de un paquete ; consulte dpkg(8) para una descripción completa.

dpkg viene acompañado con diversos programas suplementarios primitivos.

dpkg-ftp y dpkg-mountable han quedado obsoletos luego de la introducción del sistema APT.


2.3.4 APT

APT (Advanced Packaging Tool) es una interfaz avanzada del sistema de paquetes de Debian que consiste en diversos programas cuyos nombres generalmente comienzan con "apt-". apt-get, apt-cache y apt-cdrom son herramientas de la línea de comandos para el manejo de paquetes. Estos también funcionan como frontales de usuario para otras herramientas tales como dselect y aptitude.

Para más información, instale el paquete apt y lea apt-get(8), apt-cache(8), apt-cdrom(8), apt.conf(5), sources.list(5), apt_preferences(5) (Woody) y /usr/share/doc/apt/guide.html/index.html.

Una fuente alternativa de información es el APT HOWTO. Éste se puede instalar mediante apt-howto en /usr/share/doc/apt-howto/en/apt-howto-en.html/index.html.

apt-get upgrade y apt-get dist-upgrade tienden a obtener todos los paquetes situados bajo "Dependen:" y descarta todos los paquetes listados en "Recomendados:" y "Sugeridos:". Para evitar esto, use dselect.


2.3.5 dselect

Este programa es una interfaz de usuario con menús para el sistema de administración de paquetes Debian. Particularmente resulta útil para las primeras instalaciones y actualizaciones a gran escala. Véase dselect, Sección 6.2.3.

Para más información, instale el paquete install-doc y lea /usr/share/doc/install-doc/dselect-beginner.en.html o Documentación dselect para principiantes.


2.3.6 Actualizando un sistema en funcionamiento

El kernel (el sistema de archivos) en los sistemas Debian admite el reemplazo de archivos incluso cuando están siendo usados.

Asimismo se cuenta con un programa llamado start-stop-daemon que se utiliza para arrancar demonios en tiempo de arranque o para detenerlos cuando se cambian el nivel de ejecución del kernel (por ejemplo, de modo multiusuario a monousuario, para detener el sistema, etc.). Los scripts de instalación utilizan el mismo programa cuando se instala un nuevo paquete que contenga un demonio para detener los demonios en ejecución y rearrancarlos si fuese necesario.

Obsérvese que Debian no exige usar el modo monousuario para actualizar el sistema en funcionamiento.


2.3.7 Archivos .deb descargados y en caché

Si ha descargado manualmente los paquetes a su disco (lo cual no es en absoluto necesario, véase arriba para la descripción de dpkg-ftp o APT), entonces después de haber instalados puede eliminarlos de su sistema.

Si utiliza APT, los archivos se guardan en el caché situado en el directorio /var/cache/apt/archives. Tras la instalación puede eliminarlos (apt-get clean) o copiarlos al directorio /var/cache/apt/archives de otra máquina para economizar el tiempo de descarga para instalaciones posteriores.


2.3.8 Mantener un registro de las actualizaciones

dpkg mantiene un registro de los paquetes que han sido desempaquetados, configurados, eliminados y/o purgados pero (hasta el momento) no mantiene un registro de la actividad del terminal que tiene lugar cuando el paquete está siendo manipulado.

La manera más sencilla de superar este inconveniente consiste en ejecutar las sesiones de dpkg, dselect, apt-get, etc., con el programa script(1).


2.4 El proceso de arranque de Debian


2.4.1 El programa init

Al igual que todos los sistemas Unix, Debian arranca ejecutando el programa init. El archivo de configuración de init (que es el /etc/inittab) indica que el primer script que se debe ejecutar es el /etc/init.d/rcS.

Lo que ocurre a continuación depende de si se encuentra instalado el paquete sysv-rc o el file-rc. A continuación, supondremos que se encuentra instalado el paquete sysv-rc (file-rc contiene su propio script /etc/init.d/rcS y utiliza un archivo en vez de enlaces simbólicos en los directorios rc para controlar qué servicios se inician en los diferentes niveles de ejecución)

El archivo /etc/init.d/rcS del paquete sysv-rc ejecuta todos los scripts situados en /etc/rcS.d/ para realizar inicializaciones tales como la comprobación y montaje de los sistemas de archivos, la carga de módulos, la inicialización de los servicios de red, la configuración del reloj, etc. Luego, y por compatibilidad, también ejecuta todos los archivos (excepto aquellos con un `.' en su nombre) situados en /etc/rc.boot/. Este último directorio está reservado para el administrador del sistema y su utilización ha caído en desuso. Véase Trucos para la inicialización del sistema, Sección 9.1 y el Sistema de niveles de ejecución y scripts init.d en el Manual de Normativa de Debian para más información.

Debian no utiliza el directorio rc.local del tipo BSD.


2.4.2 Niveles de ejecución

Luego de completar el proceso de arranque, init inicia todos los servicios que han sido configurados para ejecutarse en el nivel de ejecución predeterminado. Este último viene indicado por una entrada id en el /etc/inittab. Debian viene con id=2.

Debian utiliza 7 niveles de ejecución:

Tambien puede utilizarse los niveles de ejecución 7, 8 y 9 pero sus directorios rc no se van llenando a medida que son instalados los paquetes.

Cambie los niveles de ejecución utilizando el comando telinit.

Si está instalado el paquete sysv-rc entonces para entrar al nivel de ejecución predeterminado se ejecutan todos los scripts de inicio situados en /etc/rcnivel_de_ejecución.d/ (donde nivel_de_ejecución es el nivel de ejecución predeterminado). Los scripts situados en /etc/rcnivel_de_ejecución.d son, de hecho, enlaces simbólicos que apuntan a los scripts ubicados en /etc/init.d/. No obstante, la primera letra del nombre del enlace simbólico determina la manera en que se ejecuta el script de /etc/init.d/. Para ser más precisos, antes de entrar a cualquier nivel de ejecución, se ejecutan todos los scripts que comienzan con `K'; estos scripts detienen servicios. Luego se ejecutan todos los scripts que comienzan con `S'; estos scripts inician servicios. Los números de dos dígitos que preceden a `K' o a `S' determinan el orden en que se ejecutarán los scripts: aquellos con las numeraciones más bajas se ejecutarán primero.

Este enfoque funciona porque cada script de /etc/init.d/ toma un argumento "start" o "stop" y actúa en consecuencia. Cada script también acepta "restart" y "force-reload"; estos métodos se pueden utilizar para reiniciar los servicios una vez que haya sido arrancado el sistema o forzarlos para que vuelvan a cargar sus archivos de configuración.

Por ejemplo:

     # /etc/init.d/exim4 force-reload

2.4.3 Personalizando el proceso de arranque

Supongamos que desea añadir el servicio loquesea al conjunto de aquellos servicios que fueron iniciados tras el arranque. Siga los siguientes pasos:

  1. Instale el script init /etc/init.d/loquesea.
  1. Ejecute update-rc.d con los argumentos adecuados.

2.5 En apoyo a la diversidad

Debian ofrece diversas alternativas para satisfacer los deseos del administrador del sistema sin dañar al sistema.

Cualquier archivo situado en /usr/local/ pertenece al administrador del sistema y Debian no los va a tocar. La mayoría los archivos situados en /etc/ son conffiles (archivos de configuración) y Debian no los sobreescribirá durante una actualización salvo que el administrador del sistema los solicite en forma explícita.


2.6 Internacionalización

El sistema Debian se encuentra internacionalizado y provee soporte para la visualización y entrada de caracteres en diversos idiomas, tanto en la consola como en X. Diversos, documentos, páginas del manual y mensajes del sistema han sido traducidos en un número creciente de idiomas. Durante la instalación, Debian le pide al usuario elegir el idioma de instalación ( y a veces una variante local del idioma)

Si el sistema que ha instalado no soporta todas las características que necesita de su idioma, si necesita cambiar de idioma o instalar un teclado diferente que soporte su idioma, consulte Localización y soporte de idiomas, Sección 9.7.


2.7 Debian y el kernel

Véase El kernel de Linux en Debian, Capítulo 7.


2.7.1 Compilando un kernel desde un fuente no perteneciente a Debian

Uno tiene que comprender la política de Debian en relación a las cabeceras.

Las bibliotecacs C de Debian se construyen con las versiones más reciente de las cabeceras del kernel de la rama estable.

Por ejemplo, la versión Debian-1.2 usaba la versión 5.4.13 de las cabeceras. Esta práctica contrasta con los paquetes fuentes del kernel de Linux distribuidos por todos los sitios de archivos FTP de Linux que usan incluso versiones más recientes de las cabeceras. Los archivos de cabecera del kernel distribuidos con los fuentes del mismo están ubicados en /usr/include/linux/include/.

Si necesita compilar un programa con las cabeceras del kernel que son más nuevas que las proporcionadas por libc6-dev debe incluir al compilar -I/usr/src/linux/include/ en la línea de comando. Esto me ocurrió una vez con el empaquetado del demonio automounter (amd). Cuando los nuevos núcleos cambiaron algunos detalles internos relacionados con el NFS, amd necesitaba saber de ellos. Esto me obligó a incluir las cabeceras de los últimos núcleos.


2.7.2 Herramientas para crear núcleos personalizados

A los usuarios que desean (o deben) crear un núcleo personalizado se les recomienda descargar el paquete kernel-package. Este paquete contiene el script para crear el paquete del kernel y proporciona la posibilidad de crear un paquete Debian kernel-image ejecutando el comando

     # make-kpkg kernel_image

en el directorio principal de los fuentes del kernel. La ayuda disponible se obtiene ejecutando el comando

     # make-kpkg --help

o mediante la página del manual make-kpkg(8). y El kernel de Linux en Debian, Capítulo 7.

Los usuarios deben descargar por cuenta propia el código fuente más reciente del núcleo (o del núcleo de su preferencia) de su sitio Linux favorito a menos que se encuentre disponible un paquete kernel-source-version (donde version hace referencia a la versión del kernel). El script de arranque initrd de Debian requiere de un parche especial para el kernel llamado initrd; véase http://bugs.debian.org/149236.

En el archivo /usr/doc/kernel-package/README se dan instrucciones detalladas para el uso del paquete kernel-package.


2.7.3 Cargadores de arranque alternativos

Para usar cargadores de arranque alternativos tales como grub o loadlin, copie el kernel de Linux compilado bzimage a otras ubicaciones (por ejemplo, a /boot/grub o a una partición MS-DOS).


2.7.4 Discos de arranque personalizados

La tarea de crear discos de arranque personalizados se vió grandemente facilitada por el paquete Debian boot-floppies que solía estar en la en la sección admin del archivo FTP Debian para Potato y versiones anteriores. Los scripts de shell de este paquete crean discos de arranque en formato syslinux. Se tratan de discos formateados en MS-DOS cuyos sectores de arranque han sido alterados de modo de poder arrancar Linux directamente (o cualquier otro sistema operativo que haya sido definido en el archivo syslinux.cfg del disquete). Otros scripts de este paquete crean discos de arranque de emergencia e incluso crean los discos básicos.

Encontrará más información sobre esto en el archivo /usr/doc/boot-floppies/README luego de instalar el paquete boot-floppies.


2.7.5 Cuidados especiales para tratar con módulos

El paquete modconf de Debian proporciona un script de shell (/usr/sbin/modconf) que se puede usar para personalizar la configuración de los módulos. Este script presenta una interfaz basada en menús en donde el usuario puede elegir los distintos controladores de dispositivos que se pueden cargar en el sistema. Las respuestas se utilizan para personalizar el archivo /etc/modules.conf (que contiene los alias y demás argumentos que se deben usar para los diferentes módulos) gracias a los archivos /etc/modutils/ y /etc/modules (que contiene los módulos que se deben cargar durante el arranque).

Al igual que los archivos (nuevos) Configure.help que ahora están disponibles para admitir la construcción de núcleos personalizados, el paquete modconf package viene con una serie de archivos de ayuda (en /usr/share/modconf/) que proporcionan información detallada sobre los argumentos apropiados para cada uno de los módulos. Véase El kernel modular 2.4, Sección 7.2 para algunos ejemplos.


2.7.6 Desinstalando el paquete de un kernel antiguo

El script kernel-image-NNN.prerm comprueba si el kernel que está actualmente ejecutando es el mismo que el que está intentando desinstalar. Por lo tanto, puede eliminar de manera segura los núcleos que no desea seguir usando con el siguiente comando:

     # dpkg --purge --force-remove-essential kernel-image-NNN

(obviamente, hay que reemplazar NNN por el número de versión y revisión de su kernel)


[ anterior ] [ Contenidos ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ siguiente ]

Guía de referencia Debian

CVS, lun abr 3 22:57:45 UTC 2005

Osamu Aoki osamu@debian.org
Coordinador de la traducción al español: Walter O. Echarri wecharri@infovia.com.ar
Autores, Sección A.1