[ anterior ] [ Contenidos ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ siguiente ]
Este capítulo proporciona información fundamental sobre el sistema Debian para aquellos que no son desarrolladores. Para información autorizada, consulte:i
Manual de Normativa de Debian
Referencia para los Desarrolladores de Debian
Guía para Nuevos Encargados de Paquetes de Debian
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/
:
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.
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 Sarge (3.1r0), se
encuentran en el directorio stable
(enlace simbólico a
sarge
):
stable/main/
: Este directorio contiene los paquetes que pertenecen
a la versión oficial más reciente del sistema Debian.
Todos estos paquetes son libres, es decir, 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
).
stable/non-free/
: este directorio contiene paquetes que no se
pueden considerar como libres de acuerdo con la DFSG.
Por ejemplo, algunos paquetes tienen licencias que prohiben su distribución comercial. Otros pueden ser redistribuidos pero, de hecho, son shareware.
stable/contrib/
: este directorio contiene paquetes que son libres
de acuerdo con la DFSG pero que dependen de algún modo de otro paquete que
no es libre.
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 Etch, se encuentran
en el directorio testing
(enlace simbólico a etch)
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 deben poder instalarse; 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:
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.
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 sarge
y etch
, 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 sarge y
testing/
es un enlace simbólico a etch. Esto
significa que Sarge es la distribución estable y Etch
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.
Buzz (Buzz Lightyear) era el cosmonauta,
Rex era el tiranosaurio,
Bo (Bo Peep) era la niña que cuidaba la oveja,
Hamm era el cerdito alcancía,
Slink (Slinky Dog) era el perro de juguete,
Potato era, por supuesto, el Sr. Potato,
Woody era el vaquero.
Sarge era el líder del ejército de plástico verde,
Etch (Etch-a-Sketch) era el pizarón,
Sid era el vecinito que destruyó los juguetes.
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
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.10 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:
Paquetes binarios, que contienen ejecutables, archivos de
configuración, páginas man/info, información sobre derechos de autor y otra
documentación. Estos paquetes se distribuyen en un formato de archivo
específico de Debian (véase Formato de los paquetes
Debian, Sección 2.2.2); que se distinguen por tener a .deb
como extensión de archivo. Los paquetes binarios se pueden desempaquetar
usando la utilidad de Debian dpkg
; se brindan más detalles en la
página del manual.
Paquetes fuentes, que consisten en un archivo .dsc que
describe el paquete (incluyendo el nombre de los archivos que siguen), un
archivo .orig.tar.gz que contiene el código fuente original sin
modificar en formato tar comprimido con gzip y, generalmente, un archivo
.diff.gz que contiene los cambios del código fuente original
específicos de Debian. La utilidad 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 señaladas 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 Dependencias entre paquetes, Sección 2.2.8 más abajo.
Las herramientas de los paquetes de Debian se pueden usar para:
manipular y administrar paquetes o partes de paquetes,
ayudar al usuario a dividir paquetes que deben distribuirse a través de medios de tamaño limitado como, por ejemplo, disketes
asistir a los desarrolladores en la construcción de paquetes y
ayudar a los usuarios a instalar paquetes que se encuentran en sitios Debian remotos.
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(1)
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(1)
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_ver-rev_arq.deb
donde generalmente loquesea es el nombre del paquete, ver es el nombre de versión, rev es el número de revisión y arq es la arquitectura. Por supuesto, los archivos se pueden fácilmente cambiar de nombre. Uno puede averiguar qué paquete esta realmente contenido en un nombre de archivo loquesea ejecutando el siguiente comando:
dpkg --info loquesea
El número de revisión es asignado por el desarrollador Debian o por quien creó el paquete. Un cambio en el número de revisión generalmente indica que a cambiado algún aspecto del empaquetado.
Los archivos que pueden ser modificados por el administrador local se
encuentran en /etc/
. La política de Debian establece que durante
la actualización de paquetes se deben conservar todos los cambios de archivos
de configuración local.
Si con el propio paquete viene una versión predeterminada de un archivo configurable localmente éste se denomina "conffile". El sistema de administración de paquetes no actualiza los archivos de configuración que han sido modificados por el administrador. Por otra parte, si el archivo de configuración no ha sido modificado por el administrador, entonces será actualizado junto con el resto del paquete.
Para dstar los archivos de configuración de un paquete ejecute el siguiente comando:
dpkg --status paquete
y consulte la línea "Conffiles:".
Para más información sobre los archivos de configuración puede consultar la sección "Archivos de configuración" del Manual de Normativa de Debian (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:
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").
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.
Generalmente, este script detiene los demonios asociados a un paquete. Es ejecutado antes de la eliminación de los archivos relacionados con el mismo.
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)
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:
Los paquetes requeridos son necesarios para el correcto funcionamiento del sistema.
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.
Los paquetes Importantes son los que habitualmente se encuentran en cualquier sistema tipo Unix.
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.
Los paquetes Estándar son aquellos que están en todo sistema Linux e incluyen un sistema en modo texto razonablemente pequeño pero no por eso demasiado limitado.
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).
Los paquetes Opcionales incluye a todos los paquetes que probablemente desearía instalar incluso si no está familiarizados con ellos y no tiene requerimientos específicos.
Esto incluye a X11, a la distribución completa de TeX y a un montón de aplicaciones.
Los paquetes Extra son aquellos que entran en conflicto con otros de mayor importancia, y que carecen de utilidad para los usuarios que no están familiarizados con ellos, o que necesitan de requerimientos específicos como para incluirlos como "Opcionales".
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 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 maneja declaraciones de dependencia que se utilizan para expresar que un paquete necesita de la instalación de otro para funcionar.
El Paquete A Depende del Paquete B si B debe instalarse sí o sí para poder ejecutar A. En algunos casos A Depende no sólo de B, sino de una versión específica de B. En este caso, la dependencia de versión constituye un límite inferior, es decir, A dependerá de cualquier versión de B más reciente que la versión especificada.
El Paquete A Recomienda al Paquete B si el encargado del mismo considera que la mayoría de los usuarios no querrán a A sin tener también la funcionalidad proporcionada por B.
El Paquete A Sugiere al Paquete B si B contiene archivos que están relacionados y mejoran la funcionalidad de A. La misma relación se expresa diciendo que el paquete B Mejora el paquete A.
El Paquete A Está en conflicto con el Paquete B cuando A no funciona si se instala B en el sistema. A menudo los "Conflictos" están relacionados con "Reemplazos".
El Paquete A Reemplaza el Paquete B cuando los archivos instalados por B se eliminan o se sobreescriben por los archivos de A.
El Paquete A Proporciona el Paquete B cuando todos los archivos y funcionalidad de B están incorporados en A.
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.
dpkg
configura siempre primero el paquete del cual otro Depende.
Sin embargo, dpkg
generalmente desempaquete los archivos de los
paquetes de modo arbitrario indpendientemente de las dependencias
(desempaquetar consiste en extraer los archivos de un paquete y ubicarlos en el
lugar correcto) No obstante, si un paquete Pre-Depende de otro
éste último se desempaquetará y configurará primero. [2] El uso de esta dependencia se
mantiene al mínimo.
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:
unknown (desconocido) - el usuario nunca indicó si deseaba el paquete.
install (para instalar) - el usuario desea instalar o actualizar el paquete.
remove (para eliminar) - el usuario desea eliminar el paquete pero no sus archivos de configuración ya existentes.
purge (para purgar) - el usuario desea eliminar completamente el paquete incluyendo sus archivos de configuración.
hold (para conservar) - el usuario no desea que el paquete sea procesado, es decir, quiere conservar la versión actual con su estado independientemente de cual sea.
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
.
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 sin problemas, segura y fiable. El sistema de paquetes alerta al administrador sobre cambios importantes o, a veces, le solicita que tome decisiones.
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 solamente los detalles básicos comenzando con las herramientas de empaquetar.
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. Cuando los paquetes son actualizados cualquier servicio proporcionado por estos paquetes son reiniciados si han sido configurados para ejecutarse en el nivel de ejecución presente. El sistema Debian no exige usar el modo monousuario para actualizar un 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 los siguientes niveles de ejecución:
1 (modo monousuario),
2 al 5 (modos multiusuario) y
0 (apagar el sistema),
6 (reiniciar el sistema).
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
.
Al entrar a un nivel de ejecución se ejecutan todos los scripts ubicadosi en
/etc/rcnivel_de_ejecución.d/
. La primera letra del
nombre del script determina la manera en que se ejecuta el
script: Los scripts cuyos nombres comienzan con K se ejecutan con
el argumento stop. Los scripts que comienzan con S
se ejecutan con el argumento start. Los scripts se ejecutan de
acuerdo al orden alfabético de sus nombres; de esta manera los scripts
"stop" se ejecutan antes que los scripts "start" y los dos
díguitos a continuación de K o S determinan el orden
en que se ejecutan los scripts.
Los scripts situados en /etc/rcnivel_de_ejecución
son
de hecho sólo enlaces simbólicos que apuntan a los scripts situados en
/etc/init.d/
Cada script también acepta como argumento
"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
La personalización de los niveles de ejecución es una tarea avanzada del administrador del sistema. Los siguientes consejos son válidos para la mayoría de los servicios.
Para habilitar el servicio servicio en el nivel de ejecución
R cree el enlace simbólico
/etc/rcR.d/Sxyservicio
con
objetivo ../init.d/servicio
. El número de secuencia
xy debe ser igual al asignado al servicio cuando fue instalado el
paquete.
Para deshabilitar un servicio, cambie de nombre el enlace simbólico de modo que su nombre comience con K y no con S y su número de secuencia sea 100 menos xy.
Para estos fines, es conveniente usar un editor de niveles de ejecución tales
como sysv-rc-conf
o ksysv
.
En vez de cambiarle el nombre, es posible eliminar el enlace simbólico
S de un servicio de un directorio de niveles de ejecución
determinado. Esto no deshabilita el servicio sino que lo deja en un estado
"potencial" al menos en lo que respecta al sistema init
sysv-rc
: al cambiar de nivel de ejecución el servicio no se lo
activará ni se lo detendrá sino que se lo dejará como estaba,
independientemente si esta ejecutándose o no. Obsérvese, no obstante, que un
servicio que está en este estado potencial se activará si se actualiza su
paquete independientemente si estaba o no ejecutándose antes de la
actualización. Este es un atajo conocido del sistema Debian actual. Nótese
además que debería conservar los enlaces simbólicos K de un
servicio en los niveles de ejecución 0 y 6. Si borra todos los enlaces
simbolicos de un servicio, entonces al actualizar el paquete del mismo
restaurará todos los enlaces simbólicos a su estado predeterminado de fábrica.
No es aconsejable realizar modificaciones a los enlaces
simbólicos situados en /etc/rcS.d/
.
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(1)
. 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
.
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)
[ 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, jue ene 18 11:52:44 UTC 2007osamu#at#debian.org
wecharri#at#infovia.com.ar