Tabla de contenidos
apt
vs. apt-get
/
apt-cache
vs. aptitude
«en pruebas»
con algunos paquetes de
«inestable»
«inestable»
con algunos paquetes de
experimental
Nota | |
---|---|
Este capítulo ha sido escrito según la última distribución estable, cuyo
nombre de publicación es: |
Debian es una organización constituida por voluntarios que construyen versiones de paquetes binarios precompilados compatibles basados en software libre y lo distribuyen en su archivo,
El archivo de Debian lo constituyen múltiples nodos espejo a los que se accede por medio de los protocolos HTTP y FTP. También esta disponible en CD-ROM/DVD.
El sistema de gestión de paquetes Debian, cuando se usa de forma adecuada desde el archivo, ofrece al usuario la instalación en el sistema de un conjunto de paquetes binarios consistentes. Actualmente existen 60425 paquetes disponibles para la arquitectura amd64.
El sistema de gestión de paquetes de Debian tiene un pasado enriquecedor y muchas opciones para el interfaz de usuario y para el motor de acceso al archivo. Le recomendamos los siguientes:
apt(8) para todas las operaciones de la línea de órdenes, incluidas la actualización de la distribución (dist-upgrade), la instalación y el borrado de paquetes. Dicha herramienta esta disponible desde Debian Jessie (Debian 8).
apt-get(8)
para llamar desde los archivos de órdenes al sistema de gestión de paqutes
de Debian. Es una opción de reserva en antiguos sistemas Debian en los que
apt
no esta disponible.
aptitude(8) para la gestión interactiva mediante interfaz de texto para la gestión de los paquetes instalados y búsquedas sobre los paquetes disponibles
Tabla 2.1. Relación de herramientas para la gestión de paquetes de Debian
paquete | popularidad | tamaño | descripción |
---|---|---|---|
apt
|
V:875, I:999 | 3997 |
«Advanced Packaging Tool» (APT), interfaz de usuario de
dpkg encargado de proporcionar los métodos de acceso al
archivo mediante «http », «ftp » y
«file » (incluye las órdenes
apt /apt-get /apt-cache )
|
aptitude
|
V:104, I:571 | 4366 | gestor de paquetes interactivo basado en la terminal: aptitude(8) |
tasksel
|
V:36, I:974 | 378 | herramienta de selección de tareas en la instalación de un sistema Debian (interfaz de usuario para APT) |
unattended-upgrades
|
V:299, I:421 | 299 | paquete mejorado de APT, para permitir la instalación automática de actualizaciones de seguridad |
dselect
|
V:3, I:43 | 2603 | gestor de paquetes basado en terminal (era el estándar anterior, interfaz de usuario de APT y otros métodos de acceso anteriores) |
dpkg
|
V:940, I:999 | 6651 | sistema de gestión de paquetes de Debian |
synaptic
|
V:60, I:438 | 7810 | gestor de paquetes gráfico (interfaz de usuario de GNOME para APT) |
apt-utils
|
V:397, I:996 | 1130 | utilidades de APT: apt-extracttemplates(1), apt-ftparchive(1) y apt-sortpkgs(1) |
apt-listchanges
|
V:401, I:849 | 399 | herramienta de notificación de cambios en el histórico de paquetes |
apt-listbugs
|
V:8, I:11 | 457 | relación de bugs críticos después de cada instalación APT |
apt-file
|
V:17, I:78 | 90 | utilidad APT para la búsqueda de paquetes — interfaz de línea de órdenes |
apt-rdepends
|
V:0, I:5 | 40 | relación de dependencias recursivas de los paquetes |
Aquí se muestra algunos puntos fundamentales para realizr la configuración de paquetes de un sistema Debian:
Se respeta la configuración manual del administrador del sistema. Dicho de otra forma, por convenio el sistema de configuracion de paquetes no realiza configuraciones de manera intrusiva.
Cada paquete viene con su propio archivo de órdenes para su configuración con un interfaz de usuario estándar llamado debconf(7) que facilita el proceso de la instalación inicial del paquete.
Los desarrolladores de Debian lo hacen lo mejor posible para que tenga una experiencia de actualización perfecta a través de los archivos de órdenes para la configuración del paquete.
Las funcionalidades completas del software empaquetado están disponibles para el administrador del sistema. Sin embargo, aquellas que representan riesgos para la seguridad están deshabilitadas en la instalación por defecto.
Si manualmente activa un servicio peligroso para la seguridad, será el responsable de los riesgos que contenga.
El administrador del sistema puede realizar manualmente configuraciones esotéricas. Esto puede interferir con los programas de ayuda estándar que se utilizan para la configuración del sistema.
Aviso | |
---|---|
No mezcle paquetes de diferentes fuentes. Probablemente romperá la consistencia entre paquetes del sistema lo que requiere un conocimiento de su gestión interna, como son el compilador ABI, versiones de bibliotecas, funcionalidades de intérpretes, etc. |
Los administradores de sistemas novatos
deberían utilizar la distribución «estable»
de Debian y aplicar
unicamente actualizaciones de seguridad. Queremos decir, que es mejor evitar
algunas de las siguientes acciones válidas, como precaución, hasta que
entienda el sistema Debian muy bien. Aquí están algunos consejos:
no incluya los repositorios de la distribución «en pruebas»
o «inestable»
en
«/etc/apt/sources.list
»;
no mezcle repositorios estándar de Debian con otros, como por ejemplo de
Ubuntu en «/etc/apt/sources.list
»;
no cree «/etc/apt/preferences
»;
no cambie el comportamiento por defecto de las herramientas del gestión de paquetes por medio de sus archivos de configuración su no conoce todas sus implicaciones;
no instale paquetes de forma aleatoria por medio de «dpkg
-i<paquete_aleatorio>
»;
no instale paquetes de forma aleatoria mediante «dpkg --force-all
-i <paquete_aleatorio>
»;
no borre o modifique archivos en el directorio
«/var/lib/dpkg
»;
no sobreescriba el sistema de archivos al instalar software compilado directamente de su código fuente.
Si lo necesita instálelos en «/usr/local
» o
«/opt
».
Los efectos de falta de compatibilidad causado por las acciones anteriores sobre el sistema de gestión de paquetes Debian puede dejar su sistema inservible.
Los administradores de sistemas Debian que operan servidores críticos, deberian tomar precauciones adicionales:
No instalar ningún paquete de Debian, incluyendo las actualizaciones de seguridad, sin probarlo con su configuración especifica en un entorno seguro.
en último término como administrador es el responsable de su sistema;
el largo historial de estabilidad del sistema Debian no es una garantía por sí misma.
Tras mis advertencias anteriores sé que muchos lectores desearán ejecutar
las distribuciones de Debian «en prueba»
o
«inestable»
como su sistema principal de escritorio. Esto es debido a que funcionan muy
bien, son actualizados frecuentemente y disponen de las últimas
funcionalidades.
Atención | |
---|---|
Para sus servidores de producción es
recomendable la distribución |
La configuración de la distribución elegida se realiza incluyendo su nombre
en «/etc/apt/sources.list
»: «testing
»,
«unstable
»; o su nombre de publicación:
«bullseye
»,
«sid
». Esto le hará entrar en el ciclo de las actualizaciones eternas.
El uso de la distribución «en pruebas»
o
«inestable»
es muy
aparente pero acarrea algunos riesgos. Aunque la distribución
«inestable»
del sistema Debian permanece estable la mayor
parte de tiempo ha habido algunos problemas de paquetes en las
distribuciones del sistema Debian «en pruebas»
e
«inestable»
y algunos de ellos no fueron fáciles de
resolver. Lo cual puede resultarle muy
doloroso. A veces tendrá paquetes rotos o pérdida de
funcionalidades durante semanas.
Algunas ideas para asegurar la recuperación fácil y rápida de errores en los paquetes de Debian son:
haga que su sistema tenga un arranque
dual instalando la distribución «estable»
en
otra partición;
tenga un CD de la instalación manual para un arranque de rescate;
considere instalar apt-listbugs
para comprobar la
información del Sistema de
Seguimiento de Errores Debian (BTS) antes de actualizar;
conozca suficientemente la infraestructura del sistema de paquetes para indagar cuando surjan problemas;
cree un entorno chroot o similar para comprobar las actualizaciones del sistema (consulte Sección 9.10, “Sistemas virtualizados”).
(Si no puede realizar alguna de estas medidas de seguridad probablemente no
esté preparado para las distribuciones «en prueba»
e
«inestable»
).
La iluminación de las siguientes secciones salva a las personas de la eterna lucha kármica de actualizar el infierno y las dejan llegar al nirvana de Debian.
Examinemos el archivo de Debian desde el punto de vista de un usuario del sistema.
Sugerencia | |
---|---|
Las directrices oficiales del archivo de Debian están definidas en el Manual de Directrices Debian, Capítulo 2 - El archivo de Debian. |
Para el acceso normal mediante HTTP el archivo está definido en el archivo
«/etc/apt/sources.list
» de la siguiente manera,
p. ej. para la sistema actual stable
=
buster
.
deb http://deb.debian.org/debian/ buster main contrib non-free deb-src http://deb.debian.org/debian/ buster main contrib non-free deb http://security.debian.org/ buster/updates main contrib deb-src http://security.debian.org/ buster/updates main contrib
Entre el nombre de publicación «buster
» o el
nombre de la distribución «estable»
prefiero inclinarme
por el primero para evitar sorpresas cuando se libere la nueva distribución
«estable»
.
El significado de «/etc/apt/sources.list
» está descrito
en
sources.list(5)
y los puntos más importantes son:
la línea «deb
» se define para paquetes binarios;
la línea «deb-src
» se define para los paquetes de código
fuente;
el primer elemento es la URL raíz del archivo de Debian;
el segundo elemento es el nombre de la distribución: bien el nombre de la distribución o el nombre de publicación;
el tercero y siguientes son la relación de nombres de área válidos del archivo de Debian.
Las líneas «deb-src
» pueden ser omitadas de forma segura
(o comentadas añadiendo «#» al comienzo de la línea) haciendo que
aptitude
no tenga acceso a la metainformación de las
fuentes. La URL puede utilizar los protocolos «http://
»,
«ftp://
», «file://
», ….
Sugerencia | |
---|---|
Si en el ejemplo anterior se sustituye « |
A continuación se muestra la relación de los archivos de Debian, junto con sus nombres de distribución o su nombre de publicación, utilizados por el archivo de configuración.
Tabla 2.2. Relación de sitios de archivo de Debian
URL del archivo | nombre de distribución (y de publicación) | propósito |
---|---|---|
https://deb.debian.org/debian/ | «stable» (buster )
|
distribución «estable» (buster) |
https://deb.debian.org/debian/ | «testing» (bullseye )
|
distribución «en pruebas» (bullseye) |
https://deb.debian.org/debian/ | «unstable» (sid )
|
distribución «inestable» (sid) |
https://deb.debian.org/debian/ |
«experimental»
|
distribución previa «experimental» (opcional, solo para desarrollo) |
https://deb.debian.org/debian/ |
«stable-proposerd-updates»
|
actualizaciones para la siguiente distribución «estable» (opcional) |
http://security.debian.org/ |
«stable/updates»
|
actualizaciones de seguridad para la distribución «estable» (importante) |
http://security.debian.org/ |
«testing/updates»
|
actualizaciones de seguridad para la distribución «en pruebas» (importante) |
https://deb.debian.org/debian/ |
buster-updates
|
actualizaciones compatibles sobre filtros de spam, clientes IM, etc. para buster |
https://deb.debian.org/debian/ |
buster-backports
|
paquetes nuevos adaptados a buster (opcional) |
Atención | |
---|---|
La mejor estabilidad se consigue utilizando únicamente la distribución
|
Atención | |
---|---|
Por defecto debería tener únicamente una de las distribuciones
|
Sugerencia | |
---|---|
En un sistema Debian que utilice |
Nota | |
---|---|
El equipo de seguridad de Debian soluciona los problemas de seguridad de la
distribución |
Tabla 2.3. Relación de áreas de archivo Debian
área | número de paquetes | criterio de componente del paquete |
---|---|---|
main
|
59430 |
cumplen con DFSG y sin dependencias con non-free
|
contrib
|
343 |
cumplen con DFSG pero con dependencias con non-free
|
non-free
|
652 | no cumplen con DFSG |
El número de paquetes que se indica es para la arquitectura amd64. El área
main
proporciona el sistema Debian (consulte Sección 2.1.5, “Debian es 100% software libre”).
Al navegar por cada URL junto a dists
o
pool
conocerá mejor la organización del archivo de
Debian.
Una distribución puede ser nombrada de dos formas, por la distribución o nombre de publicación. La palabra distribución es usada de forma inambigua como sinónimo de versión en gran parte de la documentación. La relación existente entre la distribución y el nombre de publicación se resume en la tabla siguiente.
Tabla 2.4. Relación entre los nombres de publicación y distribución
Momento |
distribución = estable
|
distribución = «en pruebas»
|
distribución = «inestable»
|
---|---|---|---|
después de la publicación de buster
|
nombre de publicación = buster
|
nombre de publicación = bullseye
|
nombre de publicación = sid
|
después de la publicción de bullseye
|
nombre de publicación = bullseye
|
nombre de publicación = bookworm
|
nombre de publicación = sid
|
La historia de los nombres de publicación se cuenta en ¿Debian FAQ: 6.2.1 Qué otros nombres clave han sido usados en el pasado?
En la terminología de archivo de Debian de forma estricta, se usa la palabra «sección» especificamente para la categorización de paquetes por el tipo de aplicación. (Sin embargo las palabras «sección principal» algunas veces es usado para describir el área del archivo Debian llamado «main».)
Cada vez que un desarrollador Debian (DD) realiza una nueva entrega a la
distribución «inestable»
(a través del procesamiento de
entrada), se les pide que se aseguren que la
entrega de paquetes sea compatible con el último conjunto de paquetes de la
distribución «inestable»
.
Si un desarrollador de Debian con su actualización rompe la compatibilidad de alguna biblioteca importante de forma intencionada etc, normalmente se anuncia en la lista de correo de desarrollo (debian-devel mailing list) etc.
Después de que un conjunto de paquetes han sido movidos de forma automática
desde la distribución «inestable»
a la distribución
«en pruebas»
el archivo de órdenes de mantenimiento que
lo movió comprueba su madurez (más de 10 días de antiguedad), el estado RC
de los informes de errores de los paquetes y comprueba su compatibilidad con
el último conjunto de paquetes de la distribución «en
pruebas»
. Este proceso hace que la distribución «en
pruebas»
este actualizada y se pueda utilizar.
Durante el proceso gradual de estabilización del archivo, liderado por el
equipo de publicación, la distribución «en pruebas»
se va
corrigiendo por medio de intervenciones manuales para hacerla completamente
consistente y libre de errores. Entonces se crea la nueva distribución
«estable»
asignándole a esta el nombre de publicación de
la antigua distribución «en pruebas»
. También se crea un
nuevo nombre de publicación para la nueva distribución «en
pruebas»
. El contenido inicial de la nueva distribución
«en pruebas»
es exactamente el mismo que el de la nueva
versión de la distribución «estable»
.
Tanto la distribución «inestable»
como la distribución
«en pruebas»
pueden sufrir fallos técnicos temporales
debido a diferentes factores:
entrega de paquetes rotos al archivo (más frecuentemente a
«inestable»
);
retraso en la aceptación de nuevos paquetes al archivo (en la mayor parte de
los casos en «inestable»
);
problemas de sincronización de cadencia (para «en
pruebas»
e «inestable»
);
acciones manuales sobre el archivo como la eliminación de paquetes
(generalmente para «en pruebas»
) etc.
Así que si decide usar esos archivos, usted debe ser capaz de arreglar o indagar sobre este tipo de problemas.
Atención | |
---|---|
Incluso unos meses después de la publicación de una nueva distribución
|
Sugerencia | |
---|---|
Al utilizar la distribución |
Consulte el Manual de Directrices Debian para obtener más información sobre las definiciones del archivo.
Debian es 100% software libre ya que:
Debian instala por defecto únicamente software libre para respetar las libertades del usuario.
Debian proporciona únicamente software libre en el área
principal
.
Debian recomienda ejecutar únicamente el software libre del área
principal
.
Ningún paquete del área principal
depende o recomienda
paquetes de non-free
o contrib
.
Algunas personas se preguntan si los siguientes 2 hechos se contradicen o no:
«Debian se mantendrá 100% libre». (Es la primera claúsula del Contrato Social de Debian)
los servidores de Debian albergan algunos paquetes de
non-free
y contrib
Esto no se contradice por lo siguiente:
el sistema Debian es 100% libre y sus paquetes son albergados por los
servidores Debian en el área principal
los paquetes de fuera del sistema Debian son albergados por los servidores
Debian en las áreas non-free
y
contrib
.
Se explica de forma precisa en las claúsulas cuarta y quinta del Contrato Social de Debian:
Nuestra prioridad son nuestros usuarios y el software libre
Nos guiaremos por las necesidades de nuestros usuarios y de la comunidad del software libre. Sus intereses serán una prioridad para nosotros. Daremos soporte a las necesidades de nuestros usuarios para que puedan trabajar en muchos tipos distintos de entornos de trabajo. No pondremos objeciones al software no libre que vaya a ejecutarse sobre Debian ni cobraremos a las personas que quieran desarrollar o usar ese tipo de software (no libre). Permitiremos a otros crear distribuciones de valor añadido basadas en Debian sin cobrarles nada por ello. Es más, entregaremos un sistema integrado de alta calidad sin restricciones legales que pudieran prevenir este tipo de uso.
Trabajos que no siguen nuestros estándares de software libre
Reconocemos que algunos de nuestros usuarios necesitan usar trabajos que no
sigan las directrices de software libre de Debian (DFSG). Por ello, hemos
creado las secciones «contrib
» y
«non-free
» en nuestro archivo para estos trabajos. Los
paquetes en estas secciones no son parte del sistema Debian, aunque han sido
configurados para usarse con Debian. Animamos a los distribuidores de CDs a
que lean las licencias de los paquetes en estas secciones para poder
determinar si pueden distribuir este software en sus CDs. Así pues, aunque
los trabajos que no sean libres no son parte de Debian, damos soporte para
su uso, y proporcionamos infraestructura (como nuestro sistema de informe de
errores y listas de distribución) para paquetes no libres.
Los usuarios deben ser conscientes de los riesgos que asumen al utilizar los
paquetes de las áreas non-free
y
contrib
:
restricciones a la libertad con dichos paquetes
falta de soporte de Debian para dichos paquetes (Debian no puede ayudar al software propietario por no tener acceso a su código fuente)
contagio al 100% del sistema libre Debian
Las Directrices de Software Libre Debian son los estándares del software libre de Debian. Debian entiende «software» en un ámbito amplio, incluidos los documentos, firmware, logotipos y materia gráfico de los paquetes. Esto hace que el estándar de software libre de Debian sea uno de los más estrictos.
Con el fin de cumplir con los estrictos estándares del software libre de
main
, Debian eliminó
la marca Mozilla de paquetes como Firefox, Thunderbird y Seamonkey
eliminando su logotipo y otro material gráfico y los ponía a disposición
como Iceweasel, Icedove, e Iceape, respectivamente. Estos paquetes desde la
publicación de Debian Stretch (Debian 9) han recuperado sus nombres
originales una vez solucionado el problema.
Los paquetes más frecuentes en non-free
y
contrib
son paquetes de libre distribución pertenecientes
a alguno de los tipos:
paquetes de documentación que cumplen la Licencia de Documentación Libre
GNU con secciones fijas como las de GCC y Make (la mayor parte se
encuentran en la secciónnon-free/doc
.)
los paquetes de firmware contienen datos binarios sin su código fuente como
los enumerados en Sección 9.9.6, “Controladores y firware del hardware” como
non-free (la mayor parte en sección non-free/kernel
.)
paquetes de juegos y tipos de letra con restricciones para su uso comercial y/o modificación de su contenido
Dese cuenta que el número de paquetes en non-free
y
contrib
es menos del dos por ciento del número de
paquetes de main
. El permitir el acceso a las áreas
non-free
y contrib
no oculta el origen
del paquete. Al utilizar
aptitude(8)
a pantalla completa le proporciona una vista holística y el control sobre
los paquetes que están instalados y a qué área pertenecen para poder
mantener su sistema tan libre como desee.
El sistema Debian ofrece un conjunto coherente de paquetes binarios proporcinado por su mecanismo de declaración de dependencias entre paquetes binarios por medo de los campos de control de archivos. Aquí se muestra una versión simplificada de ello:
«Depende» (Depends)
Declara una dependencia obligatoria y es obligatorio que todos los paquetes enumerados sean instalados al mismo tiempo o que estén instalados previamente.
«Predepende» (Pre-depends)
Son como las dependencias, con la excepción de que es obligatorio que estén instalados completamente con anterioridad.
«Recomienda» (Recommends)
Determina una dependencia fuerte, pero no obligatoria. La mayoría de los usuarios no querrán instalar el paquete al menos que todos los paquetes enumerados en este campo estén instalados.
«Sugiere» (Suggests)
Declara una dependencia débil. Muchos usuario podrían beneficiarse de su instalación si bien tendrán una funcionabilidad suficiente sin ellos.
«Mejora» (Enhances)
Declara una dependencia débil como «sugeridas» pero funciona en la dirección contraria.
«Rompe» (Breaks)
Declara una incompatibilidad, generalmente con una versión concreta. La solución más común es actualizar todos los paquetes que se encuentran enumerados en este campo.
«Incompatibles» (Conflicts)
Declara su total incompatibilidad. Todos los paquetes enumerados en este campo deben ser eliminados para conseguir instalar el paquete.
«Sustituye» (Replaces)
Se declara cuando los archivos instalados por el paquete sustituyen a los archivos de los paquetes que se enumeran.
«Proporciona» (Provides)
Se declara cuando el paquete proporciona todos los archivos y funcionalidades de los paquetes enumerados.
Nota | |
---|---|
Tenga en cuenta, que lo correcto es definir «Proporciona», «Imcompatible» y «Sustituye» a la vez en el caso de un paquete virtual. Esto asegura que solo un paquete real que proporciona el virtual puede ser instalado a la vez. |
La definición «oficial», incluyendo la dependencia del código fuente, está en Manual de directrices de Debian: Capítulo 7 - Declaración de relaciones entre paquetes.
Aquí hay un resumen simplificado del flujo de eventos de las órdenes de gestión de paquetes con APT:
«Update» («apt
update
», «aptitude update
» o «apt-get
update
»):
Recupera los metadatos del archivo remoto
Reconstruye y actualiza la copia local de los metadatos del archivo que utiliza APT
«Upgrade» («apt
upgrade
» y «apt full-upgrade
» o
«aptitude safe-upgrade
» y «aptitude
full-upgrade
» o «apt-get upgrade
» y
«apt-get dist-upgrade
»):
Para todos los paquetes instalados elige las versiones candidatas que normalmente son las últimas disponibles (las excepciones están explicadas en Sección 2.7.3, “Seleccionando la versión candidata” )
Realiza la resolución de dependencias del paquete
Recupera del archivo remoto los paquetes binarios que han sido seleccionados si la versión candidata es diferente de la versión instalada
Desempaqueta los paquetes binarios recuperados
Ejecuta el archivo de órdenes preinst
Instala los archivos binarios
Ejecuta el arhivos de órdenes postinst
«Install» («apt install
…
», «aptitude install …
» o «apt-get
install …
»):
Selecciona los paquetes de la relación de la línea de órdenes
Realiza la resolución de dependencias del paquete
Recupera del repositorio remoto los archivos binarios que han sido seleccionados
Desempaqueta los paquetes binarios recuperados
Ejecuta el archivo de órdenes preinst
Instala los archivos binarios
Ejecuta el arhivos de órdenes postinst
«Remove» («apt remove
…
», «aptitude remove …
» o «apt-get
remove …
»):
Selecciona los paquetes de la relación de la línea de órdenes
Realiza la resolución de dependencias del paquete
Ejecuta el archivo de órdenes prerm
Elimina los archivos instalados excepto los archivos de configuración
Ejecuta el archivo de órdenes postrm
«Purge» («apt purge
…
», «aptitude purge …
» o «apt-get
purge …
»):
Selecciona los paquetes de la relación de la línea de órdenes
Realiza la resolución de dependencias del paquete
Ejecuta el archivo de órdenes prerm
Elimina los archivos instalados incluidos los archivos de configuración
Ejecuta el archivo de órdenes postrm
De forma intencionada, se han eliminado los detalles técnicos en beneficio de la visión holística.
Debería leer la documentación oficial al respecto. Concretamente, ell primer
documento a leer sería
«/usr/share/doc/<nombre_del_paquete>/README.Debian
».
Otra documentación a consultar sería
«/usr/share/doc/<nombre_del_paquete>/
». Si tiene
asignado como intérprete de órdenes Sección 1.4.2, “Personalización de bash”,
escriba lo siguiente:
$ cd <nombre_del_paquete> $ pager README.Debian $ mc
Para obtener información especifica puede que necesite instalar el paquete
de documentación correspondiente con el sufijo «-doc
».
Si tiene problemas con un paquete concreto, asegúrese de comprobar primero el sistema de seguimiento de errores Debian (BTS).
Tabla 2.5. Relación de los principales sitios web para resolver problemas de un paquete concreto
sitio web | orden |
---|---|
Página principal de el sistema de seguimiento de errores Debian (BTS) |
sensible-browser «https://bugs.debian.org/ »
|
El informe de errores con el nombre de un paquete |
sensible-browser
«https://bugs.debian.org/<nombre_del_paquete>»
|
El informe del error, si se conoce su número de error |
sensible-browser
«https://bugs.debian.org/<número_de_error>»
|
Búsqueda en Google incluyendo alguno de los
siguientes criterios de búsqueda «site:debian.org
»,
«site:wiki.debian.org
»,
«site:lists.debian.org
», etc.
Cuando presente un informe de error, por favor utilice la orden reportbug(1).
Un sistema Debian dispone de diferentes herramientas basadas en APT para
llevar a cabo las operaciones de gestión de paquetes. En este documento
explicaremos tres herrramientas básicas para la gestión de paquetes:
apt
, apt-get
/
apt-cache
y aptitude
.
Para realizar las operaciones de gestión de paquetes que incluyen su instalación o la actualización de su metainformación necesitará privilegios de superusuario.
A pesar de que aptitude
es una herramienta interactiva
muy amigable el cual es la que utilizo personalmente por defecto, debe tener
en cuenta algunas advertencias:
la orden aptitude
no es recomendable para actualizaciones
del sistema entre distrubuciónes del sistema Debian
estable
tras la publicación de una distribución nueva .
para ello está recomendado la utilización de «apt
full-upgrade
» o «apt-get
dist-upgrade
». Consulte el Error
#411280.
La orden aptitude
algunas veces recomienda la eliminación
masiva de paquetes para la actualización del sistema Debian «en
pruebas»
o «inestable»
.
Esta situación ha aterrado a muchos administradores de sistema. No se asuste.
parece causado principalmente por la distorsión de dependencias o
recomendaciones de paquetes por metapaquetes como
gnome-core
.
se resuelve eligiendo «Cancelar las acciones pendiente» en el menú de
órdenes de aptitude
, saliendo de
aptitude
y utilizando «apt
full-upgrade
».
Las órdenes apt-get
y apt-cache
son
las herramientas más básicas basadas en
APT para la gestión de paquetes .
apt-get
y apt-cache
ofrecen únicamente
interfaz de usuario por línea de órdenes.
apt-get
es más adecuado para la actualización principal del sistema entre
distribuciones, etc.
apt-get
tiene un motor robusto para la resolución de dependencias entre
los paquetes.
apt-get
necesita menos recursos «hardware». Utiliza menos
memoria y se ejecuta más rápido.
apt-cache
tiene un sistema estándar de búsqueda que utiliza expresiones
regulares sobre el nombre y la descripción del paquete.
apt-get
y apt-cache
permiten gestionar
varias versiones de mismo paquete utilizando
/etc/apt/preferences
aunque es bastante difícil de
manejar.
La orden apt
es un interfaz de alto nivel para la gestión
de paquetes desde la línea de órdenes. Es un recubrimiento de
apt-get
, apt-cache
y órdenes parecidas
ideado para ser utilizado por el usuario final y mejorar por defecto algunas
opciones de uso interactivo.
apt
tiene una barra de progreso cuando se instalan
paquetes mediante apt install
.
por defecto apt
borra
los paquetes .deb
descargados en la caché después de
instalarlos con éxito
Sugerencia | |
---|---|
Se recomienda la utilización de la nueva orden apt(8) para el uso interactivo y utilizar apt-get(8) y apt-cache(8) para los archivos de órdenes. |
La orden aptitude
es la herramienta de gestión de
paquetes basada en APT más flexible.
aptitude
tiene un interfaz de usuario interactivo a
pantalla completa.
aptitude
también posee un interfaz de usuario por línea
de órdenes.
aptitude
esta más pensado para operaciones de la
gestión interactiva de paquetes diaria
como examinar los paquetes instalados y buscar entre los paquetes
disponibles.
aptitude
necesita más recursos «hardware». Utiliza más
memoria y se ejecuta más lentamente.
aptitude
tiene un sistema de búsqueda mejorado basado en expresiones regulares sobre
metainformación de paquetes.
aptitude
permite gestionar múltiples versiones de
paquetes sin utilizar /etc/apt/preferences
y es muy
intuitivo.
Aquí están algunas operaciones básicas para la gestión de paquetes por medio de la línea de órdenes utilizando apt(8), aptitude(8) y apt-get(8) /apt-cache(8).
Tabla 2.6. Operaciones básicas de gestión de paquetes utilizando la línea de órdenes apt(8), aptitude(8) y apt-get(8)/apt-cache(8)
Sintaxis de apt
|
Sintaxis de aptitude
|
Sintaxis de apt-get /apt-cache
|
descripción |
---|---|---|---|
apt update
|
aptitude update
|
apt-get update
|
actualiza la metainformación de los paquetes |
apt install foo
|
aptitude install foo
|
apt-get install foo
|
instala la versión candidata del paquete «foo » y sus
dependecias
|
apt upgrade
|
aptitude safe-upgrade
|
apt-get upgrade
|
actualiza los paquetes ya instalados a las nuevas versiones candidatas sin eliminar ningún paquete |
apt full-upgrade
|
aptitude full-upgrade
|
apt-get dist-upgrade
|
actualiza los paquetes ya instalados a las nuevas versiones candidatas y elimina los paquetes que necesite |
apt remove foo
|
aptitude remove foo
|
apt-get remove foo
|
elimina el paquete «foo » sin eliminar sus archivos de
configuración
|
apt autoremove
|
N/A |
apt-get autoremove
|
elimina los paquetes autoinstalados que ya no son necesarios |
apt purge foo
|
aptitude purge foo
|
apt-get purge foo
|
elimina el paquete «foo » y sus archivos de configuración
|
apt clean
|
aptitude clean
|
apt-get clean
|
limpia por completo el repositorio local de los archivos de paquetes descargados |
apt autoclean
|
aptitude autoclean
|
apt-get autoclean
|
limpia el repositorio local de los archivos de paquetes descargados que son obsoletos |
apt show foo
|
aptitude show foo
|
apt-cache show foo
|
muestra información detallada sobre el paquete «foo »
|
apt search <expresión_regular>
|
aptitude search <expresión_regular>
|
apt-cache search <expresión_regular>
|
busca paquetes que concuerden con <expresión_regular> |
N/A |
aptitude why <expresión_regular>
|
N/A | argumenta la razón por la que el paquete que concuerda con la <expresión_regular> debe ser instalado |
N/A |
aptitude why-not <expresión_regular>
|
N/A | argumenta la razón por la que el paquete que concuerda con la <expresión_regular> no debe ser instalado |
N/A |
aptitude search '~i!~M'
|
apt-mark showmanual
|
enumera los paquetes que se instalaron de forma manual |
Nota | |
---|---|
Aunque la orden |
Nota | |
---|---|
Desde que tanto |
La orden «aptitude why <expresión_regular>
» puede
mostrar mas información si se utiliza «aptitude -v why
<expresión_regular>
». Utilizando «apt rdepends
<paquete>
» o «apt-cache rdepends
<paquete>
» se puede obtener información parecida.
Cuando se ejecuta la orden aptitude
en modo de línea de
órdenes y aparece algún problema como un conflicto entre paquetes, si pulsa
la tecla «e
» como respuesta al cursor puede cambiar al
modo interactivo a pantalla completa.
Puede añadir opciones después de la orden «aptitude
».
Tabla 2.7. Opciones más importantes de la orden aptitude(8)
opción de la orden | descripción |
---|---|
-s
|
emula el resultado de la orden |
-d
|
descarga únicamente pero no instala o actualiza |
-D
|
muestra aclaraciónes breves antes de la instalación o eliminación automáticos |
Para más información consulte
aptitude(8)
y «aptitude user's manual» en
«/usr/share/doc/aptitude/README
».
Sugerencia | |
---|---|
El paquete |
Para la gestión interactiva de paquetes, se inicia
aptitude
en modo interactivo desde el cursor de la
consola como sigue:
$ sudo aptitude -u Password:
Con esto actualiza la copia local del archivo y muestra la relación de
paquetes en un menú a pantalla completa. La configuración de aptitude está
en «~/.aptitude/config
».
Sugerencia | |
---|---|
Si quiere utilizar en la orden anterior la configuración del superusuario en
vez la del usuario utilice « |
Sugerencia | |
---|---|
|
En el modo de pantalla completa las combinaciones de teclado para comprobar el estado de los paquetes y ejecutar las «acciones planificadas» son:
Tabla 2.8. Relación de combinaciones de teclado de aptitude
tecla | función |
---|---|
F10 o Ctrl-t
|
menú |
?
|
muestra la ayuda de las combinaciones de teclas (una relación más completa) |
F10 → Ayuda → Manual de usuario
|
muestra el Manual de Usuario |
u
|
actualiza la información de archivo del paquete |
+
|
marca el paquete para ser actualizado o instalado |
-
|
marca el paquete para ser eliminado (mantiene los archivos de configuración) |
_
|
marca el paquete para ser purgado (borra los archivos de configuración) |
=
|
marca el paquete para ser conservado (hold) |
U
|
marca todos los paquetes actualizables (sería el equivalente a una actualización completa) |
g
|
comienza la descarga y la instalación de los paquetes seleccionados |
q
|
sale de la pantalla actual y guarda los cambios |
x
|
sale de la pantalla actual sin guardar los cambios |
Intro
|
muestra la información de un paquete |
C
|
muestra el registro de cambios del paquete |
l
|
cambia el número de paquetes que se muestran |
/
|
busca el primer encaje |
\
|
repite la última búsqueda |
La especificación del nombre del archivo de la línea de orden y el menú del
sistema después de presionar «l
» y «/
/
» coge la expresión regular de aptitude como se describe a
continuación. La expresión regular de aptitude explícitamente puede
coincidir con un nombre de paquete utilizando una cadena iniciada por
«~ n
y seguido por el nombre del paquete.
Sugerencia | |
---|---|
Usted necesita pulsar « |
En el modo interactivo a pantalla completa de aptitude(8), los paquetes que se enumeran son visualizados como el siguiente ejemplo:
idA libsmbclient -2220kB 3.0.25a-1 3.0.25a-2
El significado de está línea empezando por la izquierda es:
La bandera del «estado actual« (la primera letra)
La bandera de la «acción planeada« (la segunda letra)
La bandera «automática« (la tercera letra)
El nombre del paquete
La variación del espacio de disco usado según la «acción planeada«
La versión actual del paquete
La versión candidata del paquete
Sugerencia | |
---|---|
Pulsando |
La versión candidata se elige de acuerdo a la configuración local del equipo (consulte apt_preferences(5) y Sección 2.7.3, “Seleccionando la versión candidata”).
Existen diferentes formas de mostrar los paquetes en la opción de menú
«Vistas
».
Tabla 2.9. Relación de vistas en aptitude
vista | estado | descripción de la vista |
---|---|---|
Vista del paquete
|
Bueno | consulte Tabla 2.10, “La clasificación de la vista de paquetes estándar” (por defecto) |
Recomendaciones de auditoria
|
Bueno | relación de paquete los cuales se recomiendan por algún paquete marcado para instalación pero sin instalar por el momento |
Relación plana de paquetes
|
Bueno | relación de paquetes sin clasificar (para usar con expresiones regulares) |
Navegador de etiquetas Debian (Debtags)
|
Muy usable | relación de paquetes clasificados de acuerdo a sus etiquetas Debian (debtags) |
Navegación por categorías
|
Abandonado |
relación de paquetes clasificados por su categoría (usado en lugar de
Navegación por etiquetas Debian )
|
Nota | |
---|---|
Por favor, ¡ayúdenos mejorando el marcado de paquetes con debtags! |
La vista estándar «Vista de paquetes
» los clasifica en
cierto modo como dselect
con algunas funcionalidades
extra.
Tabla 2.10. La clasificación de la vista de paquetes estándar
categoría | descripción de la vista |
---|---|
Paquetes actualizables
|
la relación organizada de paquetes según sección →
área → paquete
|
Nuevos paquetes
|
, , |
Paquetes instalados
|
, , |
Paquetes no instalados
|
, , |
Paquetes creados localmente y obsoletos
|
, , |
Paquetes virtuales
|
relación de paquetes con la misma función |
Tareas (tasks)
|
relación de paquetes con diferentes funciones que normalmente son necesarios para una tarea |
Sugerencia | |
---|---|
La vista de |
Aptitude ofrece varias opciones para la búsqueda de paquetes usando su fórmula de expresiones regulares.
Línea de órdenes del intérprete de órdenes:
«aptitude search '<expresión_regular_de_aptitude>'
»
enumera el estado de instalación, nombre del paquete y descripción corta de
los paquetes que encajan
«aptitude show '<nombre_del_paquete>'
» muestra la
descripción detallada del paquete
Modo interactivo de pantalla completa:
«l
» limita la visualización del paquete a los que
encajan
«/
» para buscar los paquetes que encajan
«\
» busca hacia atrás el paquete que encaja
«n
» para encontrar el siguiente
«N
» para buscar el siguiente (hacia atrás)
Sugerencia | |
---|---|
La cadena del <nombre_del_paquete> se trata como el encaje exacto de
la cadena al nombre del paquete al menos que empiece explícitamente con
« |
La fórmula de expresiones regulares de aptitude es parecido a la extensión
ERE (consulte Sección 1.6.2, “Expresiones regulares”) de mutt y aquellos significados de las
extensiones de reglas de concordancia especiales y específicas de
aptitude
son las siguientes:
Tabla 2.11. Relación de fórmulas de expresiones regulares de aptitute
descripción de las reglas extendidas de encaje | fórmula de la expresión regular |
---|---|
nombre del paquete que encaja |
~n<nombre_de_la_expresión_regula>
|
encaja en la descripción |
~d<descripcion_de_la_expresión_regular>
|
nombre de la tarea que encaja |
~t<expresión_regular_de_tareas>
|
encaja con las etiquetas debian |
~G<expresion_regular_de_etiquetas>
|
encaja con el desarrollador |
~m<expresión_regular_del_desarrollador>
|
encaja con la sección del paquete |
~s<expresión_regular_de_sección>
|
encaja con la versión del paquete |
~V<expresión_regular_de_la_versiónn>
|
encaja con la distribución | ~A{buster,bullseye,sid }
|
encaja con el origen | ~O{debian,… }
|
encaja con la prioridad | ~p{extra,important,optional,required,standard }
|
encaja con los paquetes esenciales |
~E
|
encaja con paquetes virtuales |
~v
|
encaja con nuevos paquetes |
~N
|
encaja con acciones pendientes | ~a{install,upgrade,downgrade,remove,purge,hold,keep }
|
encaja con paquetes instalados |
~i
|
encaja con paquetes marcados con A-mark (paquetes auto-instalados) |
~M
|
encaja con paquetes instalados sin la marca A (paquetes seleccionados por el administrador) |
~i!~M
|
encaja con paquetes instalados y que se pueden actualizar |
~U
|
encaja con paquetes eliminados pero no purgados |
~c
|
encaja con paquete eliminados y purgados o que se pueden eliminar |
~g
|
encaja con paquetes que declaran una dependencia rota |
~b
|
encaja con paquetes que declaran una dependencia rota de un <ipo> |
~B<type>
|
encaja el <patrón> sobre paquetes que tienen una dependencia <tipo> |
~D[<tipo>:]<patrón>
|
encaja el <patrón> con paquetes que tienen una dependencia rota de <tipo> |
~DB[<tipo>:]<patrón>
|
encaja con paquetes en los cuales el <patrón> encaja con paquetes que declaran una dependecia <tipo> |
~R[<tipo>:]<patrón>
|
encaja con los paquetes que son una dependencia rota <tipo> de los paquetes que encajan con el <patrón> |
~RB[<tipo>:]<patrón>
|
encaja con los paquetes con los que los paquetes instalados tienen dependencias |
~R~i
|
encaja con los paquetes que no dependen de ningún paquete instalado |
!~R~i
|
encaja con los paquete que dependen o son recomendados por otros paquetes instalados |
~R~i|~Rrecommends:~i
|
encaja con los paquetes según el <patrón> filtrados por la versión |
~S filtro <patrón>
|
encaja con todos los paquetes (verdad) |
~T
|
no encaja con ningún paquete (falso) |
~F
|
Las expresiones regulares son las mismas de ERE que usa la típica herramienta de textos en un
entorno Unix: «^
», «.*
»,
«$
» etc. como en
egrep(1),
awk(1)
y
perl(1).
El <tipo> de dependencias es uno de («depends«, «predepends«, «recommends«, «suggests«, «conflicts«, «replaces«, «provides«) los especificados en las relaciones entre paquetes.
El <tipo> de dependencia por defecto es «depends«.
Sugerencia | |
---|---|
Cuando el <patrón_de_la_expresión_regular> es la cadena «null«, coloca
inmediatamente después de la orden « |
Algunos atajados:
«~P<término>
» ==
«~Dprovides:<término>
»
«~C<término>
» ==
«~Dconflicts:<término>
»
«…~W término
» == «(…|término)
»
Los usuarios familiarizados con mutt
aprenderán
rápidamente, ya que mutt fue la inspiración para la sintaxis de las
expresiones. Consulte «SEARCHING, LIMITING, AND EXPRESSIONS« en el «Manual
de Usuario« «/usr/share/doc/aptitude/README
».
Nota | |
---|---|
Con la versión de |
La selección de un paquete con aptitude
no marca
únicamente los paquetes definidos en su relación de
«dependencias:
» sino también aquellos en la relación de
«Recomendados:
» si la opción «F10
→
Options → Preferences → Dependency handling« esta configurada de esa
manera. Estos paquetes instalados de forma automática son eliminados de
forma automatizada por aptitude
si no van a ser
necesarios en el futuro.
La bandera que controla el comportamiento de «autoinstalado« de la orden
aptitude
puede modifcarse también usando la orden
apt-mark(8)
del paquete apt
.
Usted puede comprobar el histórcio de acciones sobre paquetes en los archivos de registro.
Tabla 2.12. Los archivos de registro de acciones sobre paquetes
archivo | contenido |
---|---|
/var/log/dpkg.log
|
Registra la actividad a nivel de dpkg para todas las
acciones sobre paquetes
|
/var/log/apt/term.log
|
Registro de acciones genéricas APT |
/var/log/aptitude
|
Registro de acciones de la orden aptitude
|
En realidad, no es fácil conseguir una comprensión rápida de estos registros. La manera más fácil se explica en Sección 9.2.10, “Guardando cambios en los archivos de configuración”.
Algunos ejemplos de operaciones con aptitude(8):
Las órdenes siguientes enumeran los paquetes cuyos nombres encajan con la expresión regular.
$ aptitude search '~n(pam|nss).*ldap' p libnss-ldap - NSS module for using LDAP as a naming service p libpam-ldap - Pluggable Authentication Module allowing LDAP interfaces
Es bastante útil para encontrar el nombre exacto de un paquete.
La expresión regular «~dipv6
» con la nueva vista «New
Flat Package List« con el símbolo «l
» prompt, muestra en
la vista los paquetes cuya descripción encaja y le permite navegar de forma
interactiva entre ellos.
Se pueden borrar todos los archivos de configuración de los paquetes eliminados.
Compruebe los resultados de la siguiente orden:
# aptitude search '~c'
Si piensa que es correcto la purga de los paquetes enumerados, ejecute la siguiente orden:
# aptitude purge '~c'
Puede hacer lo mismo en modo interactivo para tener un control más detallado.
En la «Nueva Vista de Paquetes«, puede añadir una expresión regular a
«~c
» con el cursor «|
». Esto limita
los paquetes que se visualizan a únicamente lso que encajan con la expresión
regular, esto es, «eliminado pero no purgado«. Todos estos paquetes que
encajan con la expresión regular serán mostrados al presionar
«[
» en la cabecera de más alto nivel.
Entonces, pulse «_
» en la cabecera de mayor nivel como
«Paquetes no instalados«. Solo los paquetes que encajan con el patrón de la
expresion regular bajo dicho encabezado serán marcados para ser
purgados. Usted puede no incluir algunos paquetes de la purga presionando
«=
» de forma manual sobre cada uno de ellos.
Esta técnica es bastante útil y funciona para muchas teclas de órdenes.
A continuación mostraremos como mantenemos en orden el estado de instalación de los paquetes (después de realizar instalaciones sin usar aptitude etc.).
Lance aptitude
en modo interactivo como «root«.
Pulse «u
», «U
», «f
»
and «g
» para actualizar la relación de paquetes y los
paquetes.
Pulse «l
» para acceder a la pantalla de los paquetes
limitandolos a «~i(~R~i|~Rrecommends:~i)
» y pulse
«M
» sobre «Paquetes I
» como auto
instalados.
Pulse «l
» para acceder a la pantalla de paquetes
limitados como «~prequired|~pimportant|~pstandard|~E
» y
pulse «m
» sobre «Paquetes Instalados
»
como instalados de forma manual.
Pulse «l
» para acceder a la pantalla limitados
por«~i!~M
» y elimine los paquetes sin usa pulsando
«-
» sobre cada uno de ellos después muestrelos pulsando
«[
» sobre «Paquetes Instalados
».
Pulse «|
», para entrar en la pantalla de paquetes
limitada por «~i
»; entonces pulse «m
»
sobre Tareas
», para marcar aquellos paquetes instalados
manualmente.
Salga de aptitude
.
Ejecute «apt-get -s autoremove|less
» como superusuario
para comprobar lo que no usa.
Reinicie aptitude
en modo interactivo y marque los
paquetes que necesite con «m
».
Vuelva a ejecutar «apt-get -s autoremove|less
» como
superusuario para volver a comprobar que solo ha ELIMINADO los paquetes que
deseaba.
Ejecute «apt-get autoremove|less
» como superusuario para
eliminar los paquetes sin uso.
La acción «m
» sobre «Tasks
» es
opcional y se usa para evitar la situación de eliminar paquetes de forma
masiva en el futuro.
Nota | |
---|---|
Cuando se cambia a una nueva distribución etc, se debe considerar implantar una instalación limpia del nuevo sistema incluso cuando Debian es actualizable como se describe a continuación. Proporciona la oportunidad de eliminar la basura almacenada y acceder a las mejores combinaciones de las últimas versiones de los paquetes. Sin dudarlo, debería realizar una copia de respaldo completa del sistema a un lugar seguro (consulte Sección 10.2, “Respaldo y recuperación”) antes de hacerlo. Nosotros recomendamos crear un arranque dual en una partición diferente para realizar una transición suave. |
Se puede realizar una actualización mayor del sistema a una nueva
distribución cambiando el contenido del archivo
«/etc/apt/sources.list
» y ejecutando la orden
«apt update; apt dist-upgrade
».
Para actualizar desde la distribución estable
a
«en pruebas»
o «inestable»
, se debe
cambiar «buster
» en el ejemplo de
«/etc/apt/sources.list
» Sección 2.1.4, “Fundamentos del archivo de Debian” por
«bullseye
» o «sid
».
De hecho, se puede encontrar con algunas complicaciones debido a alguna
transicion entre paquetes, la mayor parte debido a dependencias. Cuanto
mayores es la actualización, más problemas importantes se puede encontrar.
Para la transición desde una distribución antigua de
estable
a la nueva estable
después de
su publicación, puede leer las nuevas «Release
Notes« y seguir el procedimiento concreto que se describe para
minimizar los problemas.
Cuando decide migrar de estable
a «en
pruebas»
después de una publicación formal, no existen «Release Notes« de ayuda. La diferencia entre
estable
y «en pruebas»
puede ser
bastante mayor después de la liberación de una nueva distribución
estable
y la actuailización se puede convertir en una
situación complicada.
Usted debería ser precavido cuando realiza un actualización completa y consultar la información actualizada sobre ello y usar el sentido común.
Lea las anterior «Release Notes«.
Realice una copia de respaldo (o de seguridad) completa (especialmente los datos y las configuraciones).
Disponga de un medio alternativo de arranque por si falla el cargador de arranque.
Informe con anterioridad y de forma correctamente a los usuarios.
Registre las operaciones de la actualización con script(1).
Para evitar su eliminación marque los paquetes que lo requieran como «sin
marcado automático» (unmarkauto), p. ej., «aptitude unmarkauto
vim
».
Minimize los paquetes instalados con el de minimizar la posibilidad de conflictos, p. ej., elimine los paquetes de la tarea «Escritorio«.
Elimine el archivo «/etc/apt/preferences
» (evita el
problema de prioridades (apt-pinning)).
Realice actualizaciones siguiendo los pasos de forma sensata:
vieja_estable
→ estable
→ «en
pruebas»
→ «inestable»
.
Actualice el archivo «/etc/apt/sources.list
» para
referenciar unicamente el nuevo repositorio y ejecutar «aptitude
update
».
Instale, opcionalmente, primero los nuevos paquetes
fundamentales , p. ej., «aptitude install
perl
».
Ejecute la orden «apt-get -s dist-upgrade
» para comprobar
su efecto.
Finalmente , ejecute la orden «apt-get dist-upgrade
».
Atención | |
---|---|
No es aconsejable omitir la distribución principal de Debian, la
|
Atención | |
---|---|
En «Release Notes« anteriores, GCC, el núcleo de Linux , initrd-tools, Glibc, Perl, las herramientas APT, etc. han necesitado una atención especial para la actualización mayor del sistema. |
Para actualizar de forma diaria la versión «inestable»
,
consulte Sección 2.4.3, “Protección frente a problemas con paquetes”.
A continuación puede encontrar otras operaciones de gestión de paquetes para
las cuales aptitude
es demasiada abstracta o no posee la
funcionalidad que se necesita.
Tabla 2.13. Relación de operaciones avanzadas con paquetes
orden | acción |
---|---|
COLUMNS=120 dpkg -l <patrón_del_nombre_del_paquete>
|
enumera el estado de los paquetes instalados para el informe de errores |
dpkg -L <nombre_del_paquete>
|
enumera el contenido de un paquete instalado |
dpkg -L <nombre_del_paquete> | egrep
'/usr/share/man/man.*/.+'
|
relación las páginas del manual para un paquete instalado |
dpkg -S <patrón_del_nombre_de_archivo>
|
enumera los paquetes instalados que tienen un archivo que encaja con el patrón |
apt-file search <patrón_nombre_de_archivo>
|
enumera los paquetes en el repositorio que encajan con el nombre de archivo |
apt-file list <patrón_nombre_de_paquete>
|
enumera el contenido de los paquetes del repositorio que encajan |
dpkg-reconfigure <nombre_del_paquete>
|
reconfigura el paquete dado |
dpkg-reconfigure -p=low <nombre_del_paquete>
|
reconfigura el paquete dado realizando el mayor número de preguntas |
configure-debian
|
reconfigura los paquetes desde el menú de pantalla completa |
dpkg --audit
|
auditoria del sistema referente a paquete instalados parcialmente |
dpkg --configure -a
|
configura todos los paquetes instalados parcialmente |
apt-cache policy <nombre_del_paquete_binario>
|
muestra la versión, la prioridad y la información del repositorio de un paquete binario |
apt-cache madison <nombre_del_paquete>
|
muestra la versión disponible y la informacion del repositorio de un paquete |
apt-cache showsrc <nombre_del_paquete_binario>
|
muestra la información del paquete fuente que corresponde con el paquete binario |
apt-get build-dep <nombre_del_paquete>
|
instala los paquetes requieridos para construir el paquete |
aptitude build-dep <nombre_del_paquete>
|
instala los paquetes requieridos para construir el paquete |
apt-get source <nombre_del_paquete>
|
descarga la fuente (desde el repositorio estándar) |
dget <URL_del_archivo_dsc>
|
descarga el código del paquete (desde otro repositorio) |
dpkg-source -x
<nombre_del_paquete>_<version>-<versión_de_debian>.dsc
|
construye el árbol de las fuentes para un conjunto de paquetes fuente
(«orig.tar.gz » y
«debian.tar.gz »/«*.diff.gz »)
|
debuild binary
|
construye el/los paquete(s) desde un árbol de fuentes locales |
make-kpkg imagen_del_núcleo
|
construye el paquete del núcleo desde el árbol fuente del kernel |
make-kpkg --initrd imagen_del_núcleo
|
construye el paquete del núcleo desde el árbol fuente de este con initramfs activado |
dpkg -i
<nombre_del_paquete>_<version>-<versión_de_debian>_<arquitectura>.deb
|
instala un paquete local en el sistema |
apt install /ruta/al/<package_filename>.deb
|
instala un paquete local en el sistema y trata de resolver de forma automática sus dependencias |
debi
<nombre_del_paquete>_<version>-<versión_de_debian>_<arquitectura>.dsc
|
instala el(los) paquete(s) locales en el sistema |
dpkg --get-selections '*' >selección.txt
|
guardar información de estado de selección de nivel de paquete
dpkg
|
dpkg --set-selections <seleccion.txt
|
asigna la información de estado de selección de nivel del paquete
dpkg
|
echo <nombre_paquete> hold | dpkg --set-selections
|
establecer estado de selección de nivel de paquete dpkg
para un paquete a mantener (equivalente a
' aptitude hold < nombre_del_paquete > ')
|
Nota | |
---|---|
Para paquetes que sean multi-arch, usted
puede necesitar especificar el nombre de la arquitectura para algunas
órdenes. Por ejemplo, use « |
Atención | |
---|---|
Las herramientas de bajo nivel como « |
Tenga en cuenta:
Todas las órdenes de configuración e instalación necesitan ser ejecutadas por el superusuario.
A diferencia de aptitude
que usa expresiones regulares
(consulte Sección 1.6.2, “Expresiones regulares”), otras órdenes para la
gestión de paquetes usan patrones como el intérprete de órdenes glob
(consulte Sección 1.5.6, “Expansión de un patrón en el intérprete de órdenes”).
apt-file(1)
que está en el paquete apt-file
necesita ejecutar
previamente «apt-file update
».
configure-debian(8)
que está en el paquete configure-debian
usa como su motor
dpkg-reconfigure(8).
dpkg-reconfigure(8) ejecuta los archivos de órdenes de los paquetes usando como su motordebconf(1).
Las órdenes «apt-get build-dep
», «apt-get
source
» y «apt-cache showsrc
» necesitan las
entradas «deb-src
» en
«/etc/apt/sources.list
».
dget(1),
debuild(1)
y
debi(1)
necesitan el paquete devscripts
.
Consulte el procedimiento de (re)empaquetado mediante «apt-get
source
» en Sección 2.7.13, “Portar un paquete a un sistema estable”.
La orden make-kpkg
necesita el paquete
kernel-package
(consulte Sección 9.9, “El núcleo”).
Para el empaquetado general consulte Sección 12.11, “Haciendo un paquete Debian”.
La instalación de debsums
permite de la verificación de
los archivos de los paquetes instalados comparando los valores MD5sum en el
archivo «/var/lib/dpkg/info/*.md5sums
» con
debsums(1).
Para saber como funciona MD5sum consulteSección 10.3.5, “El resumen MD5”.
Nota | |
---|---|
Ya que la base de datos de MD5sum pueden ser alterados por un intruso, debsums(1) su uso como herramienta de seguridad es limitada. Solo es aceptable para que el administrador compruebe modificaciones locales o daños producidos por errores del medio de almacenamiento. |
Muchos usuario prefieren usar la distribución «inestable» del sistema Debian por sus nuevos paquetes y funcionalidades. Esto hace que el sistema sea más propenso a paquetes con errores críticos.
La instalación del paquete apt-listbugs
protege su
sistema contra errores críticos comprobando estos de forma automática BTS de
Debian cuando se actualiza mediante el sistema APT.
La instalación del paquete apt-listchanger
aporta
noticias importantes en «NEWS.Debian
» cuando se actualiza
mediante el sistema APT.
Aunque hoy en día https://packages.debian.org/ proporciona métodos fáciles para buscar metainformación de los paquetes, comprobaremos métodos más tradicionales.
Las órdenes grep-dctrl(1), grep-status(1) y grep-available(1) se pueden usar para buscar cualquier archivo que tenga el formato general de un archivo de control de paquetes de Debian.
«dpkg -S <patrón_de_archivo_de_nombres>
» pueden ser
usados para buscar nombres de paquetes los cuales contienen archivos que
encajan con el nombre instalado por dpkg
. Pero pasa por
alto los archivos creados por los archivos de órdenes de mantenimiento.
Si necesita realizar búsquedas más elaboradas de metadatos de dpkg ,
necesita ejecutar la orden «grep -e regex_pattern *
» en
el directorio «/var/lib/dpkg/info/
». Esto realiza
búsquedas de las palabras mencionadas en los archivos de órdenes de los
paquetes y textos de preguntas de la instalación.
Si desea realizar búsquedas recursivas en dependencias de paquetes , se debería usar apt-rdepends(8).
Aprendamos como funciona internamente el sistema de paquetes Debian. Esto puede ayudarle a encontrar su propia solución en algunos problemas con paquetes.
Los metadatos de archivos para cada distribución son almacenados en
«dist/<codename>
» en cada sitio espejo de Debian ,
p. ej., «http://deb.debian.org/debian/
». La estructura
de su repositorio puede navegarse con un navegador web. Existen seis tipos
de metadatos clave.
Tabla 2.14. El contenido de metadatos del repositorio Debian
archivo | ubicación | contenido |
---|---|---|
Distribución
|
Alto de la distribución | descripción del archivo e información de integridad |
Release.gpg
|
Alto de la distribución |
archivo de firma para el archivo firmado «Release » con el
archivo llave
|
Contenido-<arquitectura>
|
Alto de la distribución | relación de todos los archivos para todos los paquetes en el repositorio pertinente |
Distribución
|
raíz de cada combinación de distribución/área/arquitectura | descripción de archivo usada para la regla de apt_preferences(5) |
Paquetes
|
raíz de cada combinación distribución/área/arquitectura-binaria |
concatenado de debian/control para paquetes binarios
|
Fuentes
|
raíz de cada combinación distribución/área/fuente |
concatenado de debian/control para paquetes fuente
|
En el archivo reciente, estos metadatos se almacenan como los archivos comprimidos y diferencial para reducir tráfico de red.
Sugerencia | |
---|---|
El archivo de la raíz « |
Cada distribución del repositorio de Debian tiene un archivo
«Release
» en su raíz, p. ej., el de
«http://deb.debian.org/debian/dists/unstable/Release
»,
sería:
Origin: Debian Label: Debian Suite: unstable Codename: sid Date: Sat, 14 May 2011 08:20:50 UTC Valid-Until: Sat, 21 May 2011 08:20:50 UTC Architectures: alpha amd64 armel hppa hurd-i386 i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 sparc Components: main contrib non-free Description: Debian x.y Unstable - Not Released MD5Sum: bdc8fa4b3f5e4a715dd0d56d176fc789 18876880 Contents-alpha.gz 9469a03c94b85e010d116aeeab9614c0 19441880 Contents-amd64.gz 3d68e206d7faa3aded660dc0996054fe 19203165 Contents-armel.gz ...
Nota | |
---|---|
En el puede encontrar la razón de ser entre la «versión« y el «nombre en clave« en Sección 2.1.4, “Fundamentos del archivo de Debian”. «Distribución« se utiliza cuando se refiere a la «versión« y «nombre en clave«. Todos nombres «área« almacenadas en el repositorio son enumeradas en «Componentes«. |
La integridad del archivo en la raíz «Release
» se
verifica por medio de la infraestructura criptográfica llamada secure apt.
El archivo de firma criptográfica «Release.gpg
» se crea
desde el auténtico archivo «Release
» de la raíz y el
archivo de la llave secreta Debian.
La archivo de la llave pública de debian se puede encontrat en
«/etc/apt/trusted.gpg
»;
automaticamente instalando el anillo de llaves con el último paquete
base-files
, o
manuelmente mediante las herramientas gpg
o
apt-kery
con la última clave publicada en
ftp-master.debian.org.
El sistema secure APT comprueba
criptograficamente la integridad del archivo «Release
»
de la raíz mediante el archivo «Release.gpg
» y la clave
pública del repositorio Debian en /etc/apt/trusted.gpg
».
La integrdidad de todos los archivos de «Packages
» y
«Sources
» son verificados usando valores MD5sum del
archivo de la raíz «Release
». La integridad de todos los
archivos de paquetes son comprobados usando los valores de MD5sum en los
archivos«Packages
» and «Sources
».
Consulte
debsums(1)
y Sección 2.4.2, “Verificación de los archivos de un paquete instalado”.
Ya que la verificación de la firma criptográfica es un proceso intensivo en
uso de la CPU, el uso del valor MD5sum para cada paquete mientra se usa el
archivo de firma criptográfica de la raíz «Release
»
proporciona buena seguridad
y eficiencia (consulte Sección 10.3, “Infraestructura de seguridad de la información”).
Sugerencia | |
---|---|
Los archivos de nivel « |
Hay archivos de nivel «Release
para todas las ubicaciones
especificadas por las líneas «deb
» en
/etc/apt/sources.list
», como
«http://deb.debian.org/debian/dists/unstable/main/binary-amd64/Release
»
o
http://deb.debian.org/debian/dists/sid/main/binary-amd64/Release
»
como el siguiente:
Archive: unstable Origin: Debian Label: Debian Component: main Architecture: amd64
Atención | |
---|---|
Para la etiqueta « |
Para algunos repositorios, como experimental
y
buster-backports
, que contienen paquetes que
no deberían instalarse automaticamente, existe una línea añadida, p. ej.,
«http://deb.debian.org/debian/dists/experimental/main/binary-amd64/Release
»
como el siguiente:
Archive: experimental Origin: Debian Label: Debian NotAutomatic: yes Component: main Architecture: amd64
Tenga en cuenta que los repositorios normales sin «NotAutomatic:
yes
», el valor por defecto de la prioridad de instalación
(Pin-Priority) es 500, mientras que en los repositorios especiales con
«NotAutomatic: yes
», el valor por defecto de la prioridad
de instalación (Pin-Priority) es 1 (consulte
apt_preferences(5)
y Sección 2.7.3, “Seleccionando la versión candidata”).
Cuando las herramientas APT, como aptitude
,
apt-get
, synaptic
,
apt-file
, auto-apt
, … son usadas,
necesitamos actualizar la copia local de la metainformación de la
información que contienen el repositorio de Debian. Estas copias locales
siguen los nombres de archivo de los nombres de la
distribucion
, área
y
arquitectura
especificada en
«/etc/apt/sources.list
» (see Sección 2.1.4, “Fundamentos del archivo de Debian”).
«/var/lib/apt/lists/deb.debian.org_debian_dists_<distribution>_Release
»
«/var/lib/apt/lists/deb.debian.org_debian_dists_<distribution>_Release.gpg
»
«/var/lib/apt/lists/deb.debian.org_debian_dists_<distribution>_<area>_binary-<architecture>_Packages
»
«/var/lib/apt/lists/deb.debian.org_debian_dists_<distribution>_<area>_source_Sources
»
«/var/cache/apt/apt-file/deb.debian.org_debian_dists_<distribution>_Contents-<architecture>.gz
»
(para apt-file
)
Los 4 primeros tipos de archivo son compartidos por todas las órdenes
relevantes de actualización APT y son actualizados desde la línea de órdenes
por «apt-get update
» o «aptitude
update
». La metainformación de los «paquetes
»
es actualizada si existe la línea «deb
» en
«/etc/apt/sources.list
». La metainformación de las
«fuentes
» es actualizada si existe la línea
«deb-src
» en «/etc/apt/sources.list
».
La metainformación de los «paquetes
» y de las
«fuentes
» contienen el campo
«Filename:
» que apunta a la ubicación del archivo de los
paquetes fuente y binarios. En este momento, estos paquetes se ubican en el
subárbol del directorio «pool/
» para mejorar la
transición entre distribuciones.
Se pueden realizar búsquedas interactivas en las copias locales de la
metainformación de los «paquetes
» mediante la orden
aptitude
. La orden de búsqueda especializada
grep-dctrl(1)
puede buscar metainformación en las copias locales de los
«paquetes
» y las «fuentes
».
La copia local de la metainformación de
«Contents-<architecture>
» puede ser actualizada
mediante «apt-file update
» y su ubicación es diferente de
las otras cuatro. Consulte
apt-file(1).
(La orden auto-apt
usa por defecto una ubicación
diferente para su copia local de
«Contents-<architecture>.gz
».)
Además de acceder de foma remota a la metainformación, desde
lenny
, la herramienta APT almacena la información local
referente al estado de la instalación en
«/var/lib/apt/extended_states
» el cual usan el resto de
herramientas APT para realizar el seguimiento de todos los paquetes
autoinstalados.
Además de acceder de forma remota a la metainformación, la orden
aptitude
almacena el estado de la instalación de forma
local en «/var/lib/aptitude/pkgstates
» y este es usado
únicamente por aptitude.
Todos los paquetes descargados de forma remota mediante APT son almacenados
en «/var/cache/apt/archives
» hasta que se limpia.
La directriz de limpieza de los archivos de la caché en
aptitude
es configurable mediante
«Options
» → «Preferences
» y puede ser
invocada por medio de su menú «Clean package cache
» o
«Clean obsolete files
» en «Actions
».
Los archivos que son paquetes Debian tienen una estructura para nombrarlos determinada.
Tabla 2.15. La estructura del nombre de los paquetes Debian
tipo de paquete | estructura del nombre |
---|---|
El paquete binario (apodado deb )
|
<nombre_del_paquete>_<época>:<versión_actual>-<debian.versión>-<arquitectura>.deb
|
El paquete binario para el instalador de debian (apodado
udeb )
|
<nombre_del_paquete>_<época>:<versión_actual>-<debian.versión>-<arquitectura>.udeb
|
El paquete fuente (fuente actual) |
<nombre_del_paquete>_<época>:<versión_actual>-<debian.versión>.orig.tar.gz
|
El paquete fuente 1.0 (cambios Debian)
|
<nombre_del_paquete>_<época>:<versión_actual>-<debian.versión>.diff.gz
|
El paquete fuente 3.0 (envoltura (quilt)) (cambios
Debian)
|
<nombre_del_paquete>_<época>:<versión_actual>-<debian.versión>.debian.tar.gz
|
El paquete fuente (descripción) |
<nombre_del_paquete>_<época>:<versión_actual>-<debian.versión>.dsc
|
Sugerencia | |
---|---|
Únicamente describiremos aquí el formato del paquete fuente. Para obtener mayor información consulte dpkg-source(1). |
Tabla 2.16. Los caracteres permitidos en cada campo del nombre del paquete en Debian
nombre del campo | caracteres permitidos (en expresión regular) | existencia |
---|---|---|
<nombre_del_paquete>
|
[a-z,A-Z,0-9,.,+,-]+
|
obligatorio |
<época>:
|
[0-9]+:
|
opcional |
<versión_actual>
|
[a-z,A-Z,0-9,.,+,-,:]+
|
obligatorio |
<debian.versión>
|
[a-z,A-Z,0-9,.,+,~]+
|
opcional |
Nota | |
---|---|
Se puede comprobar el orden de las versiones de los paquetes con la
ordendpkg(1),
p. ej., « |
Nota | |
---|---|
El instalador debian (d-i) usa
la extensión de archivo |
dpkg(1) es la herramienta de más bajo nivel para la gestión de paquetes Debian. Es una herramienta muy poderosa y por tanto es necesario usarla con cuidado.
Cuando se instala un paquete llamado
«<nombre_del_paquete>
», dpkg
sigue el siguiente procedimiento:
Desempaqueta el archivo deb (equivale a «ar -x
»)
Ejecuta «<nombre_del_paquete>.preinst
» usando
debconf(1)
Instala el contenido del paquete en el sistema (equivalente a «tar
-x
»)
Ejecuta «<nombre_del_paquete>.postinst
» usando
debconf(1)
El sistema debconf
proporciona las llamadas interactivas
de usuario estándar a la ayuda I18N y L10N (Capítulo 8, I18N y L10N).
Tabla 2.17. Los archivos destacados creados por dpkg
archivo | descripción del contenido |
---|---|
/var/lib/dpkg/info/<nombre_del_paquete>.conffiles
|
relación de archivos de configuración (modificables por el usuario) |
/var/lib/dpkg/info/<nombre_del_paquete>.list
|
relación de archivos y directorios instalados por el paquete |
/var/lib/dpkg/info/<nombre_del_paquete>.md5sums
|
relación de resumen criptográfico MD5 de los archivos instalados por el paquete |
/var/lib/dpkg/info/<nombre_del_paquete>.preinst
|
archivos de órdenes del paquete que se ejecutan antes de su instalación |
/var/lib/dpkg/info/<nombre_del_paquete>.postinst
|
archivo de órdenes que se ejecutan después de la instalación del paquete |
/var/lib/dpkg/info/<nombre_del_paquete>.prerm
|
archivo de órdenes del paquete que se ejecuta antes de la eliminación del paquete |
/var/lib/dpkg/info/<nombre_del_paquete>.postrm
|
archivo de órdenes del paquete para ser ejecutada después de la eliminación del paquete |
/var/lib/dpkg/info/<nombre_del_paquete>.config
|
archivo de órdenes para el sistema debconf
|
/var/lib/dpkg/alternatives/<nombre_del_paquete>
|
la información alternativa usada por la orden
update-alternatives
|
/var/lib/dpkg/available
|
la información disponible para todo el paquete |
/var/lib/dpkg/diversions
|
la información de la ubicación alternativa usada por dpkg(1) y asignada por dpkg-divert(8) |
/var/lib/dpkg/statoverride
|
la información estadística manual utilizada por dpkg(1) y asignada por dpkg-statoverride(8) |
/var/lib/dpkg/status
|
la información del estado de todos los paquetes |
/var/lib/dpkg/status-old
|
la primera juego de copias de respaldo del archivo
«var/lib/dpkg/status »
|
/var/backups/dpkg.status*
|
el segundo juego de copias de respaldo y anteriores del archivo
«var/lib/dpkg/status »
|
El archivo «status
» además es utilizado por herramintas
como
dpkg(1),
«dselect update
» y «apt-get -u
dselect-upgrade
».
La orden de búsqueda especializada
grep-dctrl(1)
permite buscar en las copias locales de «status
» y la
metainformación «disponible
».
Sugerencia | |
---|---|
En el entorno del instalador de
debian, la orden |
En sistema Debian existe un mecanismo para tener instalados a la vez varios
programas que realizan la misma función sin problemas usando
update-alternatives(1).
Por ejemplo, se pueden hacer que la orden vi
seleccione
vim
cuando se tienen instalados los paquetes tanto
vim
y nvi
.
$ ls -l $(type -p vi) lrwxrwxrwx 1 root root 20 2007-03-24 19:05 /usr/bin/vi -> /etc/alternatives/vi $ sudo update-alternatives --display vi ... $ sudo update-alternatives --config vi Selection Command ---------------------------------------------- 1 /usr/bin/vim *+ 2 /usr/bin/nvi Enter to keep the default[*], or type selection number: 1
El sistema «alternatives« de Debian mantiene un conjunto de enlaces
simbólicos en «/etc/alternatives/
». El uso del proceso de
selección se encuentran en los archivos de
«/var/lib/dpkg/alternatives/
».
El cambio de permisos (Stat overrides)
que se realiza mediante la orden
dpkg-statoverride(8)
es una manera de conseguir
quedpkg(1)
use un dueño o unos permisos de uso diferentes para un archivo cuando se instala un paquete. Si se
especifica «--update
» y el archivo existe , los nuevos
permisos y el dueño se cambian al instante.
Atención | |
---|---|
Los permisos o dueño en un archivo de un
paquete cambiados por las órdenes |
Nota | |
---|---|
Hemos usado la palabra archivo en los
párrafos anteriores, pero realmente estos cambios pueden ser realizados
sobre cualquier objeto del sistema de archivos que gestione
|
Las ubicaciones alternativas de un
archivo que se realizan mediante la orden
dpkg-divert(8)
son una forma de obligar a
dpkg(1)
de instalar un archivo en una ubicación
alternativa y no en su ubicación por defecto. Los archivos de
órdenes de mantenimiento del paquete son los encargados del uso de
dpkg-divert
. Es una práctica en desuso su utilización por
el administrador del sistema.
Cuando se mantiene un sistema Debian distribución
«inestable»
, se espera que el administrador sea capaz de
recuperarlo de situaciones en las que se encuentren paquetes rotos.
Atención | |
---|---|
Algunos métodos que vamos a exponer conllevan acciones muy peligrosas. ¡Usted ha sido advertido de ello!. |
Si el programa de interfaz gráfico de usuario del escritorio es inestable después de una actualización de versión importante, se debe sospechar de como interacciona con los archivos de configuración antiguos. La estabilidad en una cuenta de usuario recien creada confirmará esta hipótesis. ( Es un fallo habitual de empaquetado que generalmente no es tenido en cuenta por el empaquetador),
Para recuperar la estabilidad, se deben mover los archivos de la configuración local correspondientes y reiniciar el interfaz gráfico. Puede que necesite leer los archivos de configuración antiguos para recuperar información de configuración posteriormente. ( No los borre antes de tiempo).
Los sistemas de gestión de paquetes, al nivel de archivo, como aptitude(8) o apt-get(1), ni siquiera tratan de instalar paquetes con archivos superpuestos usando las dependencias de los paquetes (see Sección 2.1.6, “Dependencias de paquetes”).
Los errores de los mantenedores de paquetes o la inconsistencia en el despliegue de archivos de fuentes mezclados (see Sección 2.7.2, “Paquetes de fuentes varias en los repositorios”) por parte del administrador del sistema puede crear situaciones con una definición incorrecta de las dependencias del paquete. Cuando se instala un paquete que superpone archivos usando aptitude(8) o apt-get(1), dpkg(1) se encarga de devolver un error al programa que lo llamó sin sobreescribir los archivos existentes.
Atención | |
---|---|
El uso de paquetes de terceras partes añade riesgos significativos para el sistema a través de los archivos de órdenes de mantenimiento, ya que son ejecutados con los privilegios de superusuario y pueden realizar cualquier cosa en su sistema. La orden dpkg(1) solo ofrece protección contra la sobreescritura en el desempaquetado. |
Se puede arreglar una instalación deficiente eliminando en primer lugar el
paquete incompatible anterior <old-package>
.
$ sudo dpkg -P <old-package>
Cuando una orden en un archivo de órdenes de un paquete devuelve un error y el archivo de órdenes finaliza con el error, el sistema de gestión de paquetes cancela sus acciones y finaliza con paquetes instalados parcialmente. Cuando un paquete contiene un error en los archivos de órdenes de eliminación, el paquete puede volverse imposible de eliminar y bastante molesto.
Para un problema con los archivos de órdenes de un paquete
«<nombre_del_paquete>
», debe comprobar los
siguientes archivos de órdenes del paquete:
«/var/lib/dpkg/info/<nombre_del_paquete>.preinst
»
«/var/lib/dpkg/info/<nombre_del_paquete>.postinst
»
«/var/lib/dpkg/info/<nombre_del_paquete>.prerm
»
«/var/lib/dpkg/info/<nombre_del_paquete>.postrm
»
Modifique el archivo de órdenes del paquete erroneo como superusurio aplicando las siguiente técnicas:
deshabilite la línea incorrecta precediendola del carácter
«#
»
oblige a devolver éxito añadiendo a la línea incorrecta «||
true
»
Configure todos los paquetes instalados parcialmente con la siguiente orden:
# dpkg --configure -a
Ya que dpkg
es una herramienta de paquetes de muy bajo
nivel, puede ser útil en situaciones críticas como un sistema que no inicia
sin conexión a la red. Asumamos que el paquete foo
esta
roto y necesita ser sustituido.
Se pueden encontrar versiones antiguas del paquete foo
libres de errores en las copias locales (cachés) en el directorio de caché
de paquetes: «/var/cache/apt/archives/
». (Si no, se
pueden descargar del repositorio de https://snapshot.debian.org/ or
copiar desde la caché de paquetes de un equipo en funcionamiento).
Si puede iniciar el sistema, se puede instalar con la siguiente orden:
# dpkg -i /ruta/a/foo_<versión_antigua>_<arquictectura>.deb
Sugerencia | |
---|---|
Si el sistema tiene un error menor, otra alternativa es realizar un actualización del sistema completo a una versión anterior (downgrade) como en Sección 2.7.10, “Volver al estado anterior por emergencia” por medio de las herramientas de alto nivel del sistema APT. |
Si el sistema no se puede iniciar desde el disco duro, se pueden encontrar otras formas de iniciarlo.
Iniciar el sistema mediante un CD de instalación de Debian en modo rescate.
Montar el sistema que no inicia en el disco duro en
«/destino
».
Instalar una versión anterior del paquete foo
mediante:
# dpkg --root /destino -i /ruta/a/foo_<versión_antigua>_<arquitectura>.deb
Este ejemplo funciona incluso si la orden dpkg
del disco
duro está roto.
Sugerencia | |
---|---|
Cualquier sistema GNU/Linux iniciado por otro sistema en disco duro, CD live GNU/Linux CD, llavero USB iniciable, o inicio mediante red pueede ser usado para recuperar un sistema roto. |
Si trata de instalar de esta manera un paquete y dicha instalación falla
debido a la violación de alguna dependencia y es la única manera de
solucionarlo, se puede ignorar la dependencia utilizando
dpkg
's «--ignore-depends
»,
«--force-depends
» y otras opciones. Si lo hace así, será
necesario un gran esfuerzo para más tarde restaurar la propia
dependencia. Consulte para más detalles
dpkg(8).
Nota | |
---|---|
Si su sistema esta inoperativo por errores graves, debería realizar una copia de respaldo del sistema a un lugar seguro (see Sección 10.2, “Respaldo y recuperación”) y realizar una instalación limpia. Esto le llevará menos tiempo y al final tendrá un mejor resultado. |
Si por alguna razón estuviera dañado el archivo
«/var/lib/dpkg/status
», el sistema Debian perdería la
información de la selección de los paquetes y quedaría seriamente
dañado. Busque un archivo antiguo «/var/lib/dpkg/status
»
en «/var/lib/dpkg/status-old
» o
«/var/backups/dpkg.status.*
».
Mantener «/var/backups/
» en una partición separada puede
ser una buena idea ya que dicho directorio contiene gran cantidad de
información impotante del sistema.
Cuando los daños son serios, recomiendo realizar una reinstalación limpia
del sistema haciendo una copia de respaldo del sistema anterior. Incluso si
ha desaparecido todo lo que había en «/var/
», todavía
puede recuperar alguna información de los directorios en
«/usr/share/doc/
» que le ayudarán en su nueva
instalación.
Reinstalando un sistema mínimo (de escritorio).
# mkdir -p /ruta/al/viejo/sistema
Monte el sistema antiguo en «/ruta/al/viejo/sistema
».
# cd /ruta/al/viejo/sistema/usr/share/doc # ls -1 >~/ls1.txt # cd /usr/share/doc # ls -1 >>~/ls1.txt # cd # sort ls1.txt | uniq | less
A continuación se enumerarían los nombres de los paquetes a instalar. (Puede
haber algunos nombres que no correspondan a paquetes como
«texmf
».)
Se pueden buscar los paquetes que cumplan sus requisitos con
aptitude
bien en base a la descripción del paquete o con
la relación de «Tareas«.
Si se encuentra con dos paquetes parecidos y no sabe cual instalar sin realizar «pruebas y errores«, debe aplicarse el sentido común Pienso que los siguientes consejos son útiles para seleccionar los paquetes adecuados:
Esencial: si > no
Área: main > contrib > non-free
Prioridad: required > important > standard > optional > extra
Tareas: paquetes enumerados como tareas como «Entorno de escritorio«
Paquetes elegidos como dependecias de paquetes (p. ej.,
python2.4
por python
)
Estadísticas: a mayor número de votos e instalaciones
Registro de cambios: actualizaciones regulares del desarrollador
BTS: sin errores RC (ni críticos, ni graves, ni errores leves)
BTS: atención ofrecida por el desarrollador a los informes de errores
BTS: mayor número de errores solucionados recientemente
BTS: menor número de errores que no sean nuevas funcionalidades
Debian comenzó como un proyecto voluntario con un modelo de desarrollo distribuido, sus repositorios contienen muchos paquetes con diferentes objetivos y calidad. Se deben tomar las decisiones propias acerca de qué hacer con ellos.
Atención | |
---|---|
La instalación de paquetes desde fuentes de múltiples repositorios no se
permite en la distribución oficial Debian excepto para las combinaciones
oficiales de repositorios como |
Se muestra un ejemplo de las operaciones que incluyen la versión más
reciente de paquetes encontrados en «inestable»
mientras
se realiza el seguimiento en una única ocasión de «en
pruebas»
.
Cambie el archivo «/etc/apt/sources.list
» de forma
temporal a una entrada única «unstable
».
Ejecute «aptitude update
».
Ejecute «aptitude install <nombre_del_paquete>
».
Recupere la versión original de«/etc/apt/sources.list
»
para «en pruebas»
.
Ejecute «aptitude update
».
No cree el archivo «/etc/apt/preferences
» ni preocupese
por la forma de hacerlo manualmente mediante «apt-pinning«. Ya que es muy
engorroso.
Atención | |
---|---|
Cuando se usan archivos de múltiples fuentes, usted se debe asegurar de la compatibilidad de los paquetes por usted mismo, ya que Debian no lo garantiza. Si existe incompatibilidad entre paquetes, se puede romper el sistema. Usted debe ser capaz de decidir dichos requisitos técnicos. El uso de archivos de múltiples fuentes desconocidas es una operación completamente opcional y su uso es algo que se desaconseja encarecidamente. |
Las reglas generales para la instalación de paquetes de diferentes repositorios son:
Los paquetes no binarios («Arquitectura: todas
») son
seguros de instalar.
paquetes de documentación: no tienen requisitos especiales
paquetes de intérpretes: los intérpretes compatibles deben estar disponibles
Los paquetes binarios (no «arquitecturas: todas
»)
generalmente se encuentran con bloqueos y son inseguros de instalar.
Nota | |
---|---|
Para asegurar la instalación segura de un paquete, algunos paquetes binarios comerciales «non-free« pueden incluir bibliotecas enlazadas estaticamente. Se debe comprobar su compatibilidad ABI. |
Nota | |
---|---|
Con la excepción de evitar la rotura de algún paquete de forma transitoria, es una mala idea la instalación de paquetes binarios de repositorios binarios no soportados oficialmente. Esto es cierto incluso si se utiliza «apt-pinning« (consulte Sección 2.7.3, “Seleccionando la versión candidata”). Debería evaluar la técnica de chroot (consulte Sección 9.10, “Sistemas virtualizados”) o similares para ejecutar programas de repositorios diferentes. |
Sin el archivo «/etc/apt/preferences
», el sistema APT
elige la versión candidata como la última
versión disponible utilizando la versión de la cadena de caracteres. Este
es el proceso normal y recomentado para el uso del sistema APT. Todas las
combinaciones de repositorios con soporte oficial no necesitan el archivo
«/etc/apt/preferences
» ya que algunos respositorios no
deberían usarse para realizar actualizaciones y para que el funcionamiento
sea el correcto se marcan como NotAutomatic.
Sugerencia | |
---|---|
La forma en que se comparan las cadenas de caracteres de las versiones puede
ser comprobada mediante, p. ej., « |
Cuanso se usa como origen para instalación de paquetes, un conjunto mixto de
repositorios con regularidad (consulte Sección 2.7.2, “Paquetes de fuentes varias en los repositorios”), mediante el archivo
«/etc/apt/preferences
» se puede automatizar este tipo de
operaciones complejas, creando dicho archivo con las entradas adecuadas y
modificando la forma en que se seleccionan la versión candidata de los paquetes según se describe
en
apt_preferences(5).
Esta operación recibe el nombre de alteración de la
selección de paquetes (apt-pinning).
Aviso | |
---|---|
El uso de apt-pinning por un usuario no experimentado es una causa segura de problemas graves. Se debe evitar la alteración de la selección de paquetes (apt-pinning) excepto cuando sea absolutamente indispensable. |
Atención | |
---|---|
Cuando use apt-pinning, usted se debe asegurar de la compatibilidad de los paquetes ya que Debian no lo garantiza. La alteración de la selección de paquetes es una operación opcional y es algo que no le animo a experimentar. |
Atención | |
---|---|
Las reglas de
apt_preferences(5)
utilizan los archivos «Release» a nivel de archivo (consulte Sección 2.5.3, “Archivos «Release» a nivel de archivo”). Así «apt-pinning» funciona
únicamante con los nombres de los repositorios normales de Debian y
repositorios de seguridad de
Debian. (Esto es diferente para los repositorios de Ubuntu). Por ejemplo, se puede hacer « |
Atención | |
---|---|
Cuando se usan repositorios que no son de Devian como parte de «apt-pinning«, debería comprobar lo que hacen y comprobar su credibilidad. Por ejemplo, Ubuntu y Debian no deben mezclarse. |
Nota | |
---|---|
Incluso si no crea el archivo « |
Aquí está una explicación simplificada de la técnica apt-pinning.
El sistema APT elige el valor de la prioridad de pin (Pin-Priority) mayor
actualizando el paquete desde la fuente
disponible indicado en el archivo «/etc/apt/sources.list
»
como el paquete de la versión
candidata. Si la «pin-priority« del paquete es mayor que 1000,
esta restricción de la versión para la actualización se descarta para permitir realizar un
«downgrading« (consulte Sección 2.7.10, “Volver al estado anterior por emergencia”).
El valor Pin-Priority de cada paquete se deine por las entradas de
«Pin-Priority« en el archivo «/etc/apt/preferences
» o usa
su valor por defecto.
Tabla 2.18. Relación de valores Pin-Priority importantes para la técnica apt-pinning.
Pin-Priority | efectos apt-pinning en el paquete |
---|---|
1001 | instala el paquete incluso si esto significa un «downgrade« del paquete |
990 | se usa como valor por defecto para la distribución objetivo del repositorio |
500 | se usa como valor por defecto para el repositorio normal |
100 | usada como valor por defecto para repositorios «NotAutomatic« y «ButAutomaticUpgrades |
100 | usada para el paquete instalado |
1 | usado como el valor por defecto para repositorios «NotAutomatic« |
-1 | para no instalar nunca el paquete aunque sea recomendado |
La distribución objetivo del repositorio puede ser asignado por varios métodos,
Añadir al archivo de configuración «/etc/apt/apt.conf
» la
línea«APT::Default-Release «stable«;
»
línea de órdenes, p. ej., «apt-get install -t testing
some-package
»
Los repositorios «NotAutomatic« y
«ButAutomaticUpgrades« es asignado por el
servidor teniendo su archivo de nivel «Release« (consulte Sección 2.5.3, “Archivos «Release» a nivel de archivo”) contiene tanto
«NotAutomatic: yes
» como «ButAutomaticUpgrades:
yes
». El repositorio «NotAutomatic« es asignado por el servidor teniendo
su archivo de nivel «Release« el literal «NotAutomatic:
yes
».
La situación de apt-pinning del
<paquete> que se encuentra en múltiples repositorios de origen puede
mostrarse con «apt-cache policy <paquete>
».
Una línea que empieza por «Package pin:
» muestra la
versión del paquete de pin si la
asociación se define solo con <package> p. ej., «Package
pin:0.190
».
No existirá la línea !Package pin:
» si no se ha definido
ninguna asociación con el <paquete>.
El valor de «Pin-Priority« asociado con el <paquete> es mostrado al
lado derecho de todas las cadenas de caracteres de las versiones,
p. ej. 0.181 700
».
«0
» se muestra a la derecha de todas las cadenas de
caracteres de las versiones si esta definida la asociación con el
<paquete> p. ej., «0.181 0
».
Los valores de la Pin-Priority de los repositorios (definido como
«Package: *
» en el archivo
«/etc/apt/preferences
» ) se muestra a la izquierda de
todas las rutas de archivo, p.ej., «100
http://deb.debian.org/debian/ buster-backports/main
Packages
».
Existen los repositorios buster-updates y backports.debian.org que aportan paquetes
actualizados para estable
(buster
).
Para usar dichos repositorios, deben aparecer en el archivo
«/etc/apt/sources.list
» lo siguiente:
deb http://deb.debian.org/debian/ buster main contrib non-free deb http://security.debian.org/ buster/updates main contrib deb http://deb.debian.org/debian/ buster-updates main contrib non-free deb http://deb.debian.org/debian/ buster-backports main contrib non-free
No es necesario asignar un valor explícito Pin-Priority en el archivo
«/etc/apt/preferences
». Cuando hay nuevos paquetes
disponibles, la configuración por defecto proporciona las actualizaciones
más sensao (consulte Sección 2.5.3, “Archivos «Release» a nivel de archivo”).
Todos los paquetes viejos son actualizados a los nuevos con origen en
buster-updates
.
Solo los paquetes antiguios instalados de forma manual desde
buster-backports
son actualizados a los nuevos
de buster-backports
.
Cuando ocurra que se desee instalar manualmente un paquete llamado
«<nombre_del_paquete>
» con su dependencia del
repositorio buster-backports
, se usa la
siguiente orden mientras se cambia la distribución objetivo con la opción
«-t
».
$ sudo apt-get install -t buster-backports <nombre_del_paquete>
Si no quiere que un paquete concreto que está recomendado se instale, se
debe crear de forma explícita en el archivo
«/etc/apt/preferences
» una relación de estos paquetes
como se muestra a continuación:
Package: <paquete-1> Pin: version * Pin-Priority: -1 Package: <paquete-2> Pin: version * Pin-Priority: -1
A continuación se tiene un ejemplo de como usar la técnica de apt-pinning en las actualizaciones de «en
pruebas»
para usar una versión nueva de un paquete de
«inestable»
. Se deben enumerar todos los repositorios
necesarios en el archivo «/etc/apt/sources.list
» como se
muestra a continuación:
deb http://deb.debian.org/debian/ testing main contrib non-free deb http://deb.debian.org/debian/ unstable main contrib non-free deb http://security.debian.org/ testing/updates main contrib
Modifique «/etc/apt/preferences
» como sigue:
Package: * Pin: release a=unstable Pin-Priority: 100
Cuando desee instalar un paquete llamado
«<nombre_del_paquete>
» con sus dependencias desde
el respositorio «inestable»
con esta configuración, debe
ejecutar la orden siguiente que cambia la distribución del repositorio con
la opción «-t
» (Pin-Priority of
«inestable»
con el valor 990).
$ sudo apt-get install -t unstable <nombre_del_paquete>
Con esta configuración la actualización de paquetes «apt-get
upgrade
» y «apt-get dist-upgrade
» (o
«aptitude safe-upgrade
» y «aptitude
full-upgrade
») se realiza de la siguiente manera: los paquetes que
han sido instalados desde el repositorio «en pruebas»
usan su correspondiente repositorio «en pruebas»
y los
paquetes instalados desde la distribución «inestable»
usan su correspondiente repositorio «inestable»
.
Atención | |
---|---|
Tenga cuidado con eliminar la entrada « |
Sugerencia | |
---|---|
Generalmente edito el archivo « |
Sugerencia | |
---|---|
Si se utiliza « |
Si desea mantener automáticamente algunos paquetes particulares de
«inestable»
sin la instalación inicial «-*t
unstable
», tiene que crear el archivo
«/etc/apt/preferences
» literal y explícitamente enumerar
al principio todos aquellos paquetes como sigue:
Package: <package-1> Pin: release a=unstable Pin-Priority: 700 Package: <package-2> Pin: release a=unstable Pin-Priority: 700
Esto realiza un ajuste del valor de «Pin-Priority« para cada paquete. Por
ejemplo, con el fin de mantener la última versión de
«inestable»
de esta «Referencia de Debian« en inglés,
usted debe tener la siguiente entrada en el archivo «/
etc/apt/preferences
».
Package: debian-reference-en Pin: release a=unstable Pin-Priority: 700 Package: debian-reference-common Pin: release a=unstable Pin-Priority: 700
Sugerencia | |
---|---|
Esta técnica de apt-pinning es válida incluso para mantener paquetes de la
distribución |
Este es otro ejemplo de técnica
apt-pinning para incluir nuevas versiónes de los paquetes en
experimental
mientras se mantiene
«inestable»
. Enumera todos los repositorios necesarios en
el archivo «/etc/apt/sources.list
» como sigue:
deb http://deb.debian.org/debian/ unstable main contrib non-free deb http://deb.debian.org/debian/ experimental main contrib non-free deb http://security.debian.org/ testing/updates main contrib
El valor por defecto de «Pin-Priority« para el repositorio
experimental
es siempre 1(<<100) ya que es un
repositorio «NotAutomatic« (see Sección 2.5.3, “Archivos «Release» a nivel de archivo”). No es necesario asignar de forma
explícita un valor «Pin-Priority« en el archivo
«/etc/apt/preferences
» para usar el repositorio
experimental
a menos que quieras mantener determinados
paquetes de forma automática en la siguiente actualización.
El paquete apt
incluye su propio archivo de órdenes cron
«/etc/cron.daily/apt
» que se encarga de la descarga
automática de paquetes. Este archivo de órdenes puede ser mejorado para la
actualización automática de paquetes mediante la instalación del paquete
unattended-upgrades
. Se puede personalizar mediante los
parámetros de los archivos «/etc/apt/apt.conf.d/02backup
»
y «/etc/apt/apt.conf.d/50unattended-upgrades
» según se
describe en «/usr/share/doc/unattended-upgrades/README
».
El paquete unattended-upgrades
esta pensado para realizar
las actualizaciones de seguridad de un sistema estable
.
Si el riesgo de que se rompa un sistema estable
por una
actualización automática es menor de que el sistema se rompa por un intruso
usando un agujero de seguridad que podría haber sido cerrado por una
actualización automática, debería considerar usar las actualizaciones
automáticas con una configuración de parámetros como la siguiente:
APT::Periodic::Update-Package-Lists «1«; APT::Periodic::Download-Upgradeable-Packages «1«; APT::Periodic::Unattended-Upgrade «1«;
Si esta ejecutando un sistema con la distribución
«inestable»
, no querrá usar las actualizaciones
automáticas ya que con toda seguridad el sistema se romperá en algún
momento. Incluso para un caso como «inestable»
, todavía
puede que quiera descargar los paquetes por adelantado para ahorrar tiempo
en una actualización interactiva con la configuración de los parámetros
según se indica:
APT::Periodic::Update-Package-Lists «1«; APT::Periodic::Download-Upgradeable-Packages «1«; APT::Periodic::Unattended-Upgrade «0«;
Si quiere limitar el ancho de banda de descarga para APT, p. ej. a 800Kib/sec (=100kiB/sec), debe configurar APT con los siguientes parámetros:
APT::Acquire::http::Dl-Limit «800«;
Atención | |
---|---|
El hecho de volver a un estado anterior no esta soportado oficialmente por el diseño de Debian. Debe ser hecho únicamente como parte de un proceso de recuperación de emergencia. Aparte de esta situación, es una técnica que funciona muy bien para muchos problemas. En sistemas críticos debe realizar una copia de respaldo de todos los datos del sistema antes de realizar una operación de recuperación y reinstalar el sistema desde el principio. |
Puede tener suerte en volver de una versión nueva de un repositorio a una
vieja al recuperarse de una actualización que rompa el sistema manipulando
la versión_candidata (see Sección 2.7.3, “Seleccionando la versión candidata”). Esta es una posibilidad lenta a
realizar la tediosa acción de ejecutar muchas órdenes «dpkg -i
<paquete_roto>_<versión_antigua>.deb
» (consulte Sección 2.6.4, “Recuperación con la orden dpkg”).
Busque las líneas del archivo «/etc/apt/sources.list
»
para mantener «inestable»
como sigue a continuación:
deb http://deb.debian.org/debian/ sid main contrib non-free
Sustituyalo por lo siguiente para mantener «en pruebas»
.
deb http://deb.debian.org/debian/ bullseye main contrib non-free
Modifique «/etc/apt/preferences
» como sigue:
Package: * Pin: release a=testing Pin-Priority: 1010
Ejecute «apt-get update; apt-get dist-upgrade
» para
forzar la vuelta al estado anterior del sistema completo.
Elimine es fichero particular «/etc/apt/preferences
»
después de la vuelta atrás de emergencia.
Sugerencia | |
---|---|
Es una buena idea eliminar (¡que no purgar!) tantos paquetes como sea posible para minimizar los problemas de dependencias. Puede necesitar eliminar de forma manual e instalar algunos paquetes para tener un sistema restaurado. El núcleo de Linux, bootloader, udev, PAM, APT y los paquetes de red y sus archivos de configuraciñon pueden necesitar atención especial. |
Aunque el nombre del desarrollador que aparece en
«/var/lib/dpkg/available
» y
«/usr/share/doc/package_name/changelog
» aporta alguna
información sobre «quién esta detrás del desarrollo del paquete«, la persona
real que actualmente lo actualiza es algo
oscuro.
who-uploads(1)
en el paquete devscripts
identifica quién es el
actualizador real en este momento del paquete fuente Debian.
Si ha compilado un programa de su fuente para sustituir a un paquete Debian,
la mejor forma de hacerlo es crear un paquete local «debianizado«
(*.deb
) y usar un repositorio privado.
Si en lugar de ello elige compilar un programa desde su código fuente e
instalarlo en «/usr/local
» , puede que necesite
equivs
para la menos satisfacer las dependencias ausentes
del paquete.
Package: equivs Priority: optional Section: admin Description: Circumventing Debian package dependencies This package provides a tool to create trivial Debian packages. Typically these packages contain only dependency information, but they can also include normal installed files like other packages do. . One use for this is to create a metapackage: a package whose sole purpose is to declare dependencies and conflicts on other packages so that these will be automatically installed, upgraded, or removed. . Another use is to circumvent dependency checking: by letting dpkg think a particular package name and version is installed when it isn't, you can work around bugs in other packages' dependencies. (Please do still file such bugs, though.)
Para actualizaciones parciales de un sistema estable
, es
deseable reconstruir un paquete con su entorno usando el paquete
fuente. Esto evita las actualizaciones masivas de paquetes necesarias por
sus dependencias.
Añada las siguientes entradas al archivo
«/etc/apt/sources.list
» de un sistema
estable
.
deb-src http://deb.debian.org/debian unstable main contrib non-free
Instale los paquetes necesarios para la compilación y descarga del paquete fuente como lo que sigue:
# apt-get update # apt-get dist-upgrade # apt-get install fakeroot devscripts build-essential # apt-get build-dep foo $ apt-get source foo $ cd foo*
Actualice los paquetes de herramientas como dpkg
y
debhelper
de los paquetes «backport« si son necesarios
para portarlo hacia atrás.
Ejecute lo siguiente:
$ dch -i
Cambie la versión del paquete, p. ej. concatenado con
«+bp1
» en «debian/changelog
»
Construya los paquetes e instalelos en el sistema somo sigue:
$ debuild $ cd .. # debi foo*.changes
Ya que el sistema de copias espejo de todas las subsecciones del repositorio
de Debian despercia espacio en disco y ancho de banda de red, cuando existen
muchos equipos con Debian en LAN se debe
considerar el despliegue de un de un servidor proxy local para APT. APT se
puede configurar para utilizar servidores proxy genérico web (http) como
calamar
(consulte Sección 6.10, “Servidores de aplicaciones en otras redes”) según se describe en el
apt.conf(5) y en
«/usr/share/doc/apt/examples/configure-index.gz
». La
configuración del servidor proxy puede realizarse mediante la variable de
entorno «$http_proxy
» como sustituto de la configuración
en el archivo «/etc/apt/apt.conf
».
Existen herramientas especiales proxy para repositorios Debian. Compruebe BTS antes de usarlos.
Tabla 2.19. Relación de herramientas de proxy especificas para el repositorio Debian
paquete | popularidad | tamaño | descripción |
---|---|---|---|
approx
|
V:0, I:0 | 4729 | Servidor de caché proxy para archivos del repositorio Debian (programa OCaml compilado) |
apt-cacher
|
V:1, I:1 | 289 | Proxy caché para archivos de código fuente y paquetes Debian (programa Perl) |
apt-cacher-ng
|
V:4, I:5 | 1421 | Proxy caché para la distribución de paquetes de softwre (programa compilado en C++) |
Atención | |
---|---|
Cuando Debian reorganiza la estructura del repositorio, estas herramientas proxy especializadas necesitan la reescritura de su código por parte del desarrollador Debian y pueden no ser operativas durante cierto tiempo. Por otro lado, los servidores proxy genéricos web (http) son más robustos y es más fácil hacer frente a esos cambios. |
Sugerencia | |
---|---|
Instalar un repositorio de paquetes de forma manual es complicado. Existen varias herramientas para la gestión de repositorios. Puede consultar una lista completa a través de Internet. |
Aquí esta un ejemplo de la creación manual de un repositorio público compatible con el sistema «secure APT« (consulte Sección 2.5.2, “Archivo «Release» del nivel superior y autenticación”). Asumamos algunas cosas:
Nombre de la cuenta de usuario: «foo
»
Nombre de equipo: «www.example.com
»
Paquetes necesarios: apt-utils
, gnupg
y otros paquetes
URL: «http://www.example.com/~foo/
» ( →
«/home/foo/public_html/index.html
»)
Arquitectura de paquetes: «amd64
»
Cree la clave del repositorio APT de Foo en su sistema servidor como sigue:
$ ssh foo@www.example.com $ gpg --gen-key ... $ gpg -K ... sec 1024D/3A3CB5A6 2008-08-14 uid Foo (ARCHIVE KEY) <foo@www.example.com> ssb 2048g/6856F4A7 2008-08-14 $ gpg --export -a 3A3CB5A6 >foo.public.key
Publique el archivo de la clave del repositirio
!foo.public.key
» con el identificador (ID) de la clave
3A3CB5A6
» para Foo
Crear el árbol del repositorio llamado «Origin: Foo« como sigue:
$ umask 022 $ mkdir -p ~/public_html/debian/pool/main $ mkdir -p ~/public_html/debian/dists/unstable/main/binary-amd64 $ mkdir -p ~/public_html/debian/dists/unstable/main/source $ cd ~/public_html/debian $ cat > dists/unstable/main/binary-amd64/Release << EOF Archive: unstable Version: 4.0 Component: main Origin: Foo Label: Foo Architecture: amd64 EOF $ cat > dists/unstable/main/source/Release << EOF Archive: unstable Version: 4.0 Component: main Origin: Foo Label: Foo Architecture: source EOF $ cat >aptftp.conf <<EOF APT::FTPArchive::Release { Origin «Foo«; Label «Foo«; Suite «unstable«; Codename «sid«; Architectures «amd64«; Components «main«; Description «Public archive for Foo«; }; EOF $ cat >aptgenerate.conf <<EOF Dir::ArchiveDir «.«; Dir::CacheDir «.«; TreeDefault::Directory «pool/«; TreeDefault::SrcDirectory «pool/«; Default::Packages::Extensions «.deb«; Default::Packages::Compress «. gzip bzip2«; Default::Sources::Compress «gzip bzip2«; Default::Contents::Compress «gzip bzip2«; BinDirectory «dists/unstable/main/binary-amd64« { Packages «dists/unstable/main/binary-amd64/Packages«; Contents «dists/unstable/Contents-amd64«; SrcPackages «dists/unstable/main/source/Sources«; }; Tree «dists/unstable« { Sections «main«; Architectures «amd64 source«; }; EOF
Puede automatizar las actualizaciones repetitivas del contenido del
repositorio APT en su sistema servidor mediante la configuración
dupload
.
Ubique todos los archivos de paquetes en
!~foo/public_html/debian/pool/main/
» ejecutando
«dupload -t foo archivo_de_cambios
» en el cliente
mientras tiene «~/.dupload.conf
» con el contenido que
sigue:
$cfg{'foo'} = { fqdn => «www.example.com«, method => «scpb«, incoming => «/home/foo/public_html/debian/pool/main«, # The dinstall on ftp-master sends emails itself dinstall_runs => 1, }; $cfg{'foo'}{postupload}{'changes'} = « echo 'cd public_html/debian ; apt-ftparchive generate -c=aptftp.conf aptgenerate.conf; apt-ftparchive release -c=aptftp.conf dists/unstable >dists/unstable/Release ; rm -f dists/unstable/Release.gpg ; gpg -u 3A3CB5A6 -bao dists/unstable/Release.gpg dists/unstable/Release'| ssh foo@www.example.com 2>/dev/null ; echo 'Package archive created!'«;
El archivo de órdenes postupload iniciado por dupload(1) crea los archivos actualizados para cada subida.
Puede añadir este pequeño repositorio público a las líneas apt de su sistema cliente como sigue:
$ sudo bash # echo «deb http://www.example.com/~foo/debian/ unstable main« \ >> /etc/apt/sources.list # apt-key add foo.public.key
Sugerencia | |
---|---|
Si el repositorio se ubica en el sistema de archivos local, puede ver
« |
Puede realizar una copia local de los paquetes y el estado de selección de debconf con lo siguiente:
# dpkg --get-selections '*' > selection.dpkg # debconf-get-selections > selection.debconf
Aquí, «*
» hace que «selection.dpkg
»
incluya también las entradas de los paquetes eliminados.
Puede copiar estos 2 archivos a otro equipo y realizar allí la instalación con lo siguiente:
# dselect update # debconf-set-selections < myselection.debconf # dpkg --set-selections < myselection.dpkg # apt-get -u dselect-upgrade # or dselect install
Si esta pensando en la gestión de muchos servidores en un clúster con
practicamente la misma configuración, podría considerar usar un paquete
especializado como fai
para gestionar el sistema entero.
alien(1)
permite la conversión de paquetes binarios en formatos de archivo
rpm
mantenido por Red Hat, slp
por
Stampede , tgz
por Slackware y pkg
por
Solaris en paquetes Debian deb
. Si quiere usar un paquete
de otra distribución Linux en vez de la que tiene instalada en su sistema,
puede usar alien
para conertirlo desde su formato
preferido de paquetes e instalarlo. alien
también admite
paquetes LSB packages.
Aviso | |
---|---|
alien(1)
no debería ser usado para sustituir los paquetes principales del sistema,
como |
El contenido de paquetes «dpkg*.deb
» puede ser extraido
sin usar
dpkg(1)
en cualquier entorno tipo Unix usando los
estándares
ar(1)
y
tar(1).
# ar x /path/to/dpkg_<version>_<arch>.deb # ls total 24 -rw-r--r-- 1 bozo bozo 1320 2007-05-07 00:11 control.tar.gz -rw-r--r-- 1 bozo bozo 12837 2007-05-07 00:11 data.tar.gz -rw-r--r-- 1 bozo bozo 4 2007-05-07 00:11 debian-binary # mkdir control # mkdir data # tar xvzf control.tar.gz -C control # tar xvzf data.tar.gz -C data
El contenido de otros paquetes «*.deb
» puede ser obtenido
con la orden
dpkg-deb(1)
obtenido del paquete «dpkg*.deb
» como en el caso
anterior; o usando el estándar
ar(1)
y los nuevos GNU
tar(1)
con el apoyo de la descomprensión
xz(1)
del mismo modo del anterior.
También se puede navegar por el contenido de un paquete usando la orden
mc
.
Puede aprender más acerca de la gestión de paquetes en los siguientes documentos:
Documentación principal de la gestión de paquetes:
aptitude(8), dpkg(1), tasksel(8), apt(8), apt-get(8), apt-config(8), apt-key(8), sources.list(5), apt.conf(5), and apt_preferences(5);
«/usr/share/doc/apt-doc/guide.html/index.html
» y
«/usr/share/doc/apt-doc/offline.html/index.html
» del
paquete apt-doc
; y
«/usr/share/doc/aptitude/html/en/index.html
» para el
paquete aptitude-doc-en
.
Documentación oficial y detallada del repositorio Debian:
Tutorial para la construcción de paquetes Debian por usuarios de Debian:
«Guía para nuevos desarrolladores Debian« (desactualizada).