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.
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/
:Contents-*.gz
, y archivos Packages.gz
.
pool/
:tools/
:doc/
:indices/
:project/
:project/experimental/
:project/orphaned/
:
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
Los paquetes de la versión estable, Debian Woody (3.0r0), se
encuentran en el directorio stable
(enlace simbólico a
woody
):
stable/main/
: Este directorio contiene los paquetes que
formalmente constituyen la versión más reciente del sistema Debian.
Todos estos paquetes están de acuerdo con Las directivas del
Software Libre de Debian (DFSG)
(también disponible como
/usr/share/doc/debian/social-contract.txt
que se instala mediante
debian-doc
), y todos se pueden usar y distribuir libremente.
stable/non-free/
: este directorio contiene paquetes cuya
distribución está restringida y necesita que los distribuidores tomen
cuidadosamente en cuenta las exigencias especificadas por la licencia.
Por ejemplo, algunos paquetes tienen licencias que prohiben su distribución comercial. Otros pueden ser redistribuidos pero, de hecho, son shareware y no software libre. La licencia de cada uno de estos paquetes debe analizarse y, quizás, negociarse antes de incluirse en cualquier forma de redistribución (por ejemplo, en un CD-ROM).
stable/contrib/
: este directorio contiene paquetes que son libres
de acuerdo con la definición de software libre de Debian y, en sí mismos,
de libre distribución, pero que dependen de algún modo de otro paquete
que no es de distribución libre y, por lo tanto, disponible únicamente
en la sección non-free.
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
.
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:
update
excuses
testing
problems
release-critical
bugs
base system
bugs
bugs in standard
and task packages
other bugs and bug-squashing party
notes
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
.
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).
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.
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.
Hasta aquí han sido tomados de la película Toy Story de Pixar.
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
.
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).
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/
.
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/
.
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.
binary-all/
para paquetes no dependen de la arquitectura. Aquí se
incluyen, por ejemplo, scripts escritos en Perl o documentación.
binary-platform/
para paquetes que se ejecutan en una
plataforma determinada.
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
.
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.
Los paquetes contienen generalmente todos los archivos necesarios para implementar un conjunto de comandos relacionados o características. Existen dos tipos de paquetes Debian:
dpkg
; se brindan más detalles en la
página del manual.
dpkg-source
empaqueta y
desempaqueta los archivos fuentes de Debian; se brindan más detalles en la
página del manual.
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:
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.
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.
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).
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:
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)
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:
Esto incluye todas las herramientas necesarias para reparar inconvenientes en
el sistema. Nunca debería eliminar estos paquetes ya que podría inutilizar su
sistema e incluso podría ser incapaz de poder usar dpkg
para
recuperarlo. Los sistemas con únicamente con paquetes requeridos probablemente
no sean utilizables, pero tienen la funcionalidad suficiente como para permitir
al administrador del sistema arrancar e instalar más programas.
Son otros paquetes sin los que el sistema no funcionará correctamente o no será totalmente utilizable. No incluye a Emacs, a X11, a Tex o cualquier otra aplicación grande. Estos paquetes sólo constituyen la infraestructura básica.
Esto es lo que se intalará por defecto si el usuario no selecciona otra cosa más. No incluye aplicaciones demasiado grandes, pero incluye Emacs (que es más una parte de la infraestructura que una aplicación) y un subconjunto razonable de TeX y LaTeX (si resulta ser posible sin X).
Esto incluye a X11, a la distribución completa de TeX y a un montón de aplicaciones.
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í".
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.
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.
"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.
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:
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.
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).
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.
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/
.
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.
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.
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.
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-deb
: Manipula los archivos .deb.
dpkg-deb(1)
dpkg-ftp
: un antiguo comando para la obtención de paquetes.
dpkg-ftp(1)
dpkg-mountable
: un antiguo comando para la obtención de paquetes.
dpkg-mountable(1)
dpkg-split
: divide un paquete grande en archivos más pequeños.
dpkg-split(1)
dpkg-ftp
y dpkg-mountable
han quedado obsoletos luego
de la introducción del sistema 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
.
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
.
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.
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.
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)
.
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.
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
Supongamos que desea añadir el servicio loquesea al conjunto de aquellos servicios que fueron iniciados tras el arranque. Siga los siguientes pasos:
/etc/init.d/loquesea
.
update-rc.d
con los argumentos adecuados.
Debian ofrece diversas alternativas para satisfacer los deseos del administrador del sistema sin dañar al sistema.
dpkg-divert
, véase El
comando dpkg-divert
, Sección 6.5.1.
equivs
, véase El paquete
equivs
, Sección 6.5.2.
update-alternative
, véase Comandos alternativos, Sección
6.5.3.
make-kpkg
puede alojar distintos cargadores de arranque. Véase
make-kpkg(1)
.
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.
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.
Véase El kernel de Linux en Debian, Capítulo 7.
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.
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
.
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).
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
.
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.
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)
Guía de referencia Debian
CVS, lun abr 3 22:57:45 UTC 2005osamu@debian.org
wecharri@infovia.com.ar