Capítulo 2. Gestión de paquetes Debian

Tabla de contenidos

2.1. Prerequisitos de la gestión de paquetes Debian
2.1.1. Debian package management system
2.1.2. Configuración de paquetes
2.1.3. Precauciones principales
2.1.4. Conviviendo con actualizaciones continuas
2.1.5. Fundamentos del archivo de Debian
2.1.6. Debian es 100% software libre
2.1.7. Dependencias de paquetes
2.1.8. Flujo de eventos de las órdenes de gestión de paquetes
2.1.9. Soluciones a problemas básicos en la gestión de paquetes
2.1.10. Como seleccionar paquetes Debian
2.1.11. How to cope with conflictig requirements
2.2. Operaciones básicas de la gestión de paquetes
2.2.1. apt vs. apt-get / apt-cache vs. aptitude
2.2.2. Operaciones básicas de gestión de paquetes utilizando la línea de órdenes
2.2.3. Uso interactivo de aptitude
2.2.4. Combinaciones de teclado en aptitude
2.2.5. Visualización de paquetes en aptitude
2.2.6. Opciones del método de búsqueda con aptitude
2.2.7. La fórmula de la expresión regular de aptitude
2.2.8. Resolución de dependencias en aptitude
2.2.9. Registro de la actividad de los paquetes
2.3. Ejemplos de operaciones con aptitude
2.3.1. Seeking interesting packages
2.3.2. Enumera los paquetes cuyos nombres encajan con la expresión regular
2.3.3. Navega por la relación de paquetes que encajan con la expresión regular
2.3.4. Purga los paquetes eliminados definitivamente
2.3.5. Estado de instalación ordenado de forma automática/manual
2.3.6. Actualización mayor del sistema
2.4. Operaciones avanzadas de gestión de paquetes
2.4.1. Operaciones avanzadas de gestión de paquetes desde la línea de órdenes
2.4.2. Verificación de los archivos de un paquete instalado
2.4.3. Protección frente a problemas con paquetes
2.4.4. Buscando metadatos en los paquetes
2.5. Gestión interna de los paquetes Debian
2.5.1. Metadatos de archivos
2.5.2. Archivo «Release» del nivel superior y autenticación
2.5.3. Archivos «Release» a nivel de archivo
2.5.4. Actualizando la meta información de los paquetes
2.5.5. Estado del paquete para APT
2.5.6. El estado del paquete en aptitude
2.5.7. Copias locales de los paquetes descargados
2.5.8. Nombres de archivos de paquetes Debian
2.5.9. La orden dpkg
2.5.10. La orden update-alternatives
2.5.11. La orden dpkg-statoverride
2.5.12. La orden dpkg-divert
2.6. Recuperación de un sistema
2.6.1. Instalación fallida debido a dependencias incumplidas
2.6.2. Errores de almacenamiento en la caché de los datos del paquete
2.6.3. Incompatibilidad con la configuración antigua del usuario
2.6.4. Superposición de archivos por diferentes paquetes
2.6.5. Arreglando un archivo de órdenes de un paquete roto
2.6.6. Recuperación con la orden dpkg
2.6.7. Recuperando datos de la selección de paquetes
2.7. Consejos para la gestión de paquetes
2.7.1. ¿Quién sube los paquetes?
2.7.2. Limitar el ancho de banda de descarga para APT
2.7.3. Descarga y actualización automática de paquetes
2.7.4. Actualizaciones y portes hacia atrás
2.7.5. External package archives
2.7.6. Packages from mixed source of archives without apt-pinning
2.7.7. Tweaking candidate version with apt-pinning
2.7.8. Bloqueo de la instalación de paquetes recomendados («Recommends«)
2.7.9. Seguimiento «en pruebas» con algunos paquetes de «inestable»
2.7.10. Mantener «inestable» con algunos paquetes de experimental
2.7.11. Volver al estado anterior por emergencia
2.7.12. El paquete «equivs«
2.7.13. Portar un paquete a un sistema estable
2.7.14. Servidor proxy para APT
2.7.15. Más información acerca de la gestión de paquetes
[Nota] Nota

Este capítulo ha sido escrito según la última distribución estable, cuyo nombre de publicación es: bookworm.

The data source of the APT system is collectively reffered as the source list in this document . This can be defined anywhere in the "/etc/apt/sources.list" file, "/etc/apt/sources.list.d/*.list" files, or "/etc/apt/sources.list.d/*.source" files.

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 actual sistema de gestión de paquetes de Debian que puede utilizar todos estos recursos es Herramienta de empaquetado avanzada (APT).

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 70081 paquetes disponibles para la arquitectura amd64.

El sistema de administración de paquetes de Debian tiene una rica historia y muchas opciones para el programa de usuario de front-end y el método de acceso al archivo de back-end que se utilizará. Actualmente, recomendamos lo siguiente.

  • apt(8) para todas las operaciones de la línea de órdenes, incluida la instalación, eliminación y actualización de paquetes.

  • 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


[Aviso] 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.

The newbie Debian system administrator should stay with the stable release of Debian while applying only security updates. Until you understand the Debian system very well, you should follow the following precautions.

  • Do not include testing or unstable in the source list.

  • Do not mix standard Debian with other non-Debian archives such as Ubuntu in the source list .

  • No crees "/etc/apt/preferences".

  • No modifiques el comportamiento predeterminado de las herramientas de gestión de los paquetes a través de los archivos de la configuración sin conocer todas sus repercusiones.

  • No instales paquetes aleatorios mediante "dpkg -i random_package".

  • No instales nunca paquetes aleatorios mediante "dpkg --force-all -i random_package".

  • No borres ni modifiques los archivos de "/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».

The non-compatible effects caused by violating above precautions to the Debian package management system may leave your system unusable.

Los administradores serios del sistema Debian responsables de los servidores de una misión crítica deben 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.

    • Al final, tu como administrador del sistema, eres el responsable de tu sistema.

    • el largo historial de estabilidad del sistema Debian no es una garantía por sí misma.

[Atención] Atención

Para sus servidores de producción es recomendable la distribución «estable» con sus actualizaciones de seguridad. También es recomendable para los equipos de escritorio a los que quiera dedicar poco tiempo en su administración.

A pesar de mis advertencias anteriores, muchos lectores de este documento pueden desear ejecutar las suites testing o unstable más nuevas.

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.

Esta lista está destinada al entorno de escritorio self-administered.

  • Utilice la suite testing ya que es prácticamente la versión rolling -continua- gestionada automáticamente por la infraestructura de control de calidad del archivo de Debian, como la integración continua de Debian, la prácticas de carga solo de fuente, y el seguimiento de transición de biblioteca. Los paquetes de la suite testing se actualizan con la suficiente frecuencia para ofrecer las funciones más recientes.

  • Set the codename corresponding to the testing suite ("trixie" during the bookworm-as-stable release cycle) in the source list.

  • Manually update this codename in the source list to the new one only after assessing situation by yourself for about a month after the major suite release. The Debian user and developer mailing list are good sources of information for this, too.

No se recomienda el uso de la suite inestable. La suite inestable es buena para depurar paquetes como desarrollador pero tiende a exponerle a riesgos innecesarios para el uso normal del escritorio. Aunque la suite inestable del sistema Debian parece muy estable la mayoría de las veces, ha habido algunos problemas con paquetes y algunos de ellos no eran tan triviales de resolver.

Aquí algunas ideas de las medidas de precaución básicas para asegurar una recuperación rápida y fácil de los fallos en los paquetes Debian.

  • Hacer el sistema de arranque dual instalando la suite stable del sistema Debian en otra partición.

  • Ten a mano el CD de instalación para un arranque de recuperación del sistema.

  • Considera instalar apt-listbugs para comprobar la información del Sistema de seguimiento de errores de Debian (BTS) antes de la actualización.

  • Aprender la infraestructura del sistema de los paquetes lo suficiente como para solucionar un problema

[Atención] Atención

Si no puede tomar ninguna de estas precauciones, probablemente no estés listo para las versiones de prueba e inestables.

[Sugerencia] Sugerencia

Las directrices oficiales del archivo de Debian están definidas en el Manual de Directrices Debian, Capítulo 2 - El archivo de Debian.

Examinemos el archivo de Debian desde el punto de vista de un usuario del sistema.

For a system user, the Debian archive is accessed using the APT system.

The APT system specifies its data source as the source list and it is described in sources.list(5).

For the bookworm system with the typical HTTP access, the source list in one-line-style as the following:

deb http://deb.debian.org/debian/ bookworm main non-free-firmware contrib non-free
deb-src http://deb.debian.org/debian/ bookworm main non-free-firmware contrib non-free

deb http://security.debian.org/debian-security bookworm-security main non-free-firmware contrib non-free
deb-src http://security.debian.org/debian-security bookworm-security main non-free-firmware contrib non-free

Alternatively, the equivqlent source list in deb822-style as the following.

Types: deb deb-src
URIs: http://deb.debian.org/debian/
Suites: bookworm
Components: main non-free-firmware contrib non-free

Types: deb deb-src
URIs: http://security.debian.org/debian-security/
Suites: bookworm-security
Components: main non-free-firmware contrib non-free

Key points of the source list are followings.

  • One-line-style format

    • It's definition files are in the "/etc/apt/sources.list" file and "/etc/apt/sources.list.d/*.list" files.

    • Each line defines the data source for the APT system.

    • La línea "deb" define el paquete binario.

    • La línea "deb-src" define los paquetes fuente.

    • El primer argumento es la URL root del archivo de Debian.

    • The 2nd argument is the distribution name using either the suite name or the codename.

    • el tercero y siguientes son la relación de nombres de área válidos del archivo de Debian.

  • Deb822-style format

    • It's definition files are in "/etc/apt/sources.list.d/*.source" files.

    • Each block of lines separated by a blank line defines the data source for the APT system.

    • The "Types:" stanza defines the list of types such as "deb" and "deb-src".

    • The "URIs:" stanza defines the list of root URIs of the Debian archive.

    • The "Suites:" stanza defines the list of distribution names using either the suite name or the codename.

    • The "Components:" stanza defines the list of valid archive area names of the Debian archive.

The definition for "deb-src" can safely be omitted if it is just for aptitude which does not access source related meta data. It speeds up the updates of the archive meta data.

The URL can be "http://", "ftp://", "file://", ….

Lines starting with "#" are comments and ignored.

Here, I tend to use codename "bookworm" or "trixie" instead of suite name "stable" or "testing" to avoid surprises when the next stable is released.

[Sugerencia] Sugerencia

If "sid" is used in the above example instead of "bookworm", the "deb: http://security.debian.org/ …" line or its deb822 equivalent content for security updates in the source list is not required. This is because there is no security update archive for "sid" (unstable).

Here is the list of URL of the Debian archive sites and suite name or codename used in the configuration file after the bookworm release.


[Atención] Atención

Only pure stable release with security updates provides the best stability. Running mostly stable release mixed with some packages from testing or unstable release is riskier than running pure unstable release for library version mismatch etc. If you really need the latest version of some programs under stable release, please use packages from stable-updates and http://backports.debian.org (see Sección 2.7.4, “Actualizaciones y portes hacia atrás”) services. These services must be used with extra care.

[Atención] Atención

Por defecto debería tener únicamente una de las distribuciones «estable», «en pruebas» o «inestable» en las líneas «deb». Si se tiene en las líneas «deb» una combinación de las distribuciones «estable», «en pruebas» e «inestable» los programas APT son más lentos y sólo la última distribución es útil. El uso de múltiples distribuciones requiere utilizar el archivo «/etc/apt/preferences» con un fin específico (consulte Sección 2.7.7, “Tweaking candidate version with apt-pinning).

[Sugerencia] Sugerencia

For the Debian system with the stable suite, it is a good idea to include the content with "http://security.debian.org/" in the source list to enable security updates as in the example above.

[Nota] Nota

El equipo de seguridad de Debian soluciona los problemas de seguridad de la distribución «estable». Su actividad es muy rigurosa y fiable. En la distribución «en pruebas» son solucionados por el equipo de seguridad de Debian en pruebas. Por diferentes razones su actividad no es tan rigurosa como en la distribución «estable» y puede que tenga que esperar a la migración o la corrección de los paquetes de «inestable». Los problemas de seguridad de la distribución «inestable» son corregidos por los desarrolladores individuales. Los paquetes de la distribución «inestable» mantenidos habitualmente suelen estar en buen estado aprovechando las últimas soluciones de seguridad ascendentes. Consulte Debian security FAQ para conocer como se gestionan los problemas de seguridad en Debian.


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.6, “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.


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 los repositorios unstable como testing pueden sufrir fallos temporales causados por varios factores.

  • Los paquetes rotos se suben al repositorio (ver unstable )

  • Retrasos en la recepción de nuevos paquetes para archivar (principalmente para inestable)

  • Problemas con el tiempo de sincronización de los archivos (tanto para pruebas como los 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] Atención

Incluso unos meses después de la publicación de una nueva distribución «estable», la mayoría de los usuarios de escritorio deberían usar dicha distribución junto con sus actualizaciones de seguridad a pesar de usar de forma habitual las distribuciones «en pruebas» o «inestable». Durante este periodo de transición, tanto «inestable» como «en pruebas» no son útiles para la mayor parte de la gente. La distribución «inestable» es difícil de mantener en buenas condiciones de funcionamiento ya que sufre repentinamente actualizaciones importantes de los paquetes principales. La distribución «en pruebas» tampoco es utilizable ya es idéntica a la distribución «estable» pero sin soporte de seguridad (Anuncio de 12-2008 de seguridad en pruebas de Debian). Después de un mes aproximadamente la distribución «inestable» se puede utilizar con cuidado.

[Sugerencia] Sugerencia

Al utilizar la distribución «en pruebas» el problema causado por la eliminación de un paquete normalmente se soluciona temporalmente instalando el paquete correspondiente la distribución «inestable» el cual será entregado para corregir el error.

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.

  • No packages in main depend nor recommend packages in non-free nor non-free-firmware nor contrib.

Uno se pregunta si los dos hechos siguientes se contradicen entre sí.

Estos no se contradicen, por lo siguiente.

  • el sistema Debian es 100% libre y sus paquetes son albergados por los servidores Debian en el área principal

  • Packages outside of the Debian system are hosted by Debian servers in the non-free, non-free-firmware and contrib areas.

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

    • We acknowledge that some of our users require the use of works that do not conform to the Debian Free Software Guidelines. We have created "non-free", "non-free-firmware" and "contrib" areas in our archive for these works. The packages in these areas are not part of the Debian system, although they have been configured for use with Debian. We encourage CD manufacturers to read the licenses of the packages in these areas and determine if they can distribute the packages on their CDs. Thus, although non-free works are not a part of Debian, we support their use and provide infrastructure for non-free packages (such as our bug tracking system and mailing lists). The Debian official media may include firmware that is otherwise not part of the Debian system to enable use of Debian with hardware that requires such firmware.

[Nota] Nota

The actual text of the 5th term in the current Debian Social Contract 1.2 is slightly different from the above text. This editorial deviation is intensional one to make this user document consistent without changing the real content of the Social Contract.

Users should be aware of the risks of using packages in the non-free, non-free-firmware and contrib areas:

  • 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.

Typical non-free, non-free-firmware and contrib packages include freely distributable packages of following types:

  • 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.)

  • Firmware packages containing sourceless binary data such as ones listed in Sección 9.10.5, “Controladores y firware del hardware” as non-free-firmware. (mostly found in the non-free-firmware/kernel section.)

  • paquetes de juegos y tipos de letra con restricciones para su uso comercial y/o modificación de su contenido

Please note that the number of non-free, non-free-firmware and contrib packages is less than 2% of that of main packages. Enabling access to the non-free, non-free-firmware and contrib areas does not obscure the source of packages. Interactive full screen use of aptitude(8) provides you with full visibility and control over what packages are installed from which area to keep your system as free as you wish.

El sistema Debian proporciona un conjunto consistente de paquetes binarios a través de un mecanismo de declaración de dependencia binaria versionada en sus campos de archivo de control. Aquí hay algunas definiciones simples de ellos.

  • «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 Sugerida pero va 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] 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 del flujo de eventos simplificado del manejo de un paquete por parte de APT.

De forma intencionada, se han eliminado los detalles técnicos en beneficio de la visión holística.

Whatever suite of Debian system you may decide to use, you may still wish to run versions of programs which aren't available in that suite. Even if you find binary packages of such programs in other Debian suites or in other non-Debian resources, their requirements may conflict with your current Debian syetem.

Although you can tweak package management system with apt-pinning technique etc. as described in Sección 2.7.7, “Tweaking candidate version with apt-pinning to instal such out-of-sync binary packages, such tweaking approaches have only limited use cases since they may break those programs and your system.

Before brutally installing such out-of-sync packages, you should seek all available alternative safer technical solutions which are compatible with your current Debian syetem.

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:

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] 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

apt / apt-get y aptitude se pueden mezclar sin más problemas.

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.

[Nota] Nota

Aunque la orden aptitude proporciona funcionalidades sofisticadas como un mejor motor de resolución de dependencias de paquetes, su complejidad ha causado (y todavía puede causar) algunos problemas como el Error #411123, el Error #514930 y el Error #570377. En caso de duda, por favor, utilice las órdenes apt, apt-get y apt-cache en vez de la orden aptitude.

Puede añadir opciones después de la orden «aptitude».


Para más información consulte aptitude(8) y «aptitude user's manual» en «/usr/share/doc/aptitude/README».

Las pulsaciones de teclas notables para examinar el estado de los paquetes y establecer la "acción planificada" en ellos en este modo de pantalla completa son las siguientes.


El nombre del archivo se puede especificar a través de la línea de comando, o presionando "l" o "/" seguido de ingresar la expresión regular de aptitude descrita a continuación en el indicador del menú. La expresión regular de aptitude puede hacer coincidir los nombres de los paquetes exactamente usando una cadena que comience con "~n" seguido del nombre del paquete.

[Sugerencia] Sugerencia

Usted necesita pulsar «U» para hacer que todos los paquetes se actualicen a la versión candidata en el interfaz visual. De otra manera solo los paquetes seleccionados y otros que son dependecias de versiones de estos son actualizados a la versión candidata.

En el modo interactivo de pantalla completa de aptitude(8), los paquetes en la lista de paquetes se muestran como el siguiente ejemplo.

idA   libsmbclient                             -2220kB 3.0.25a-1  3.0.25a-2

El significado de izquierda a derecha de la fila es el siguiente.

  • 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] Sugerencia

Pulsando ? se muestra al final de la pantalla de Ayuda una relación completa de las banderas.

La versión candidata se elige de acuerdo a la configuración local del equipo (consulte apt_preferences(5) y Sección 2.7.7, “Tweaking candidate version with apt-pinning).

Existen diferentes formas de mostrar los paquetes en la opción de menú «Vistas».


[Nota] 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.


[Sugerencia] Sugerencia

La vista de tareas puede usarse para realizar una selección de paquetes para sus tareas.

La fórmula de expresiones regulares de aptitud es ERE extendida similar a mutt (consulte Sección 1.6.2, “Expresiones regulares”) y los significados de la coincidencia especial específica aptitude Las extensiones de regla 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 ~nnombre_de_la_expresión_regula
encaja en la descripción ~ddescripcion_de_la_expresión_regular
nombre de la tarea que encaja ~texpresión_regular_de_tareas
encaja con las etiquetas debian ~Gexpresion_regular_de_etiquetas
encaja con el desarrollador ~mexpresión_regular_del_desarrollador
encaja con la sección del paquete ~sexpresión_regular_de_sección
encaja con la versión del paquete ~Vexpresión_regular_de_la_versiónn
encaja con la distribución ~A{bookworm,trixie,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 ~Btype
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
coinciden con paquetes a los que el paquete coincidente patrón declara dependencia rota tipo ~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

  • La parte regex es la misma ERE que la utilizada en las típicas herramientas de texto tipo Unix utilizando "^", ". *", "$" etc. como en egrep(1), awk(1) y perl(1).

  • La dependencia tipo es una de (depende, predepende, recomienda, sugiere, entra en conflicto, reemplaza, proporciona) especificando la interrelación del paquete.

  • El tipo de dependencia por defecto es «depends«.

[Sugerencia] Sugerencia

Cuando el patrón_de_la_expresión_regular es la cadena «null«, coloca inmediatamente después de la orden «~T».

Aquí hay algunos atajos.

  • «~Ptérmino» == «~Dprovides:término»

  • «~Cté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] Nota

Con la versión de lenny de aptitude(8), la nueva sintaxis en formato largo como «?broken» puede ser usada de forma equivalente para el uso de expresiones regulares en lugar de la anteriro formato corto «~b». Ahora el carácter de espacio « » es considerado como uno de los caracteres de finalización de la expresión regular al igual que la tilde «~». Consulte el «Manual de Usuario« para la nueva sintaxis de formato largo.

A continuación se muestran algunos ejemplos de aptitude(8) en acción.

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.).

  1. Lance aptitude en modo interactivo como «root«.

  2. Pulse «u», «U», «f» and «g» para actualizar la relación de paquetes y los paquetes.

  3. 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.

  4. 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.

  5. Escribe "l" para entrar en el límite de la visualización de los paquetes como "~i!~M" y elimina los paquetes no utilizados escribiendo "-" sobre cada uno de ellos después de exponerlos escribiendo "[" sobre los "Paquetes instalados".

  6. Pulse «|», para entrar en la pantalla de paquetes limitada por «~i»; entonces pulse «m» sobre Tareas», para marcar aquellos paquetes instalados manualmente.

  7. Salga de aptitude.

  8. Ejecute «apt-get -s autoremove|less» como superusuario para comprobar lo que no usa.

  9. Reinicie aptitude en modo interactivo y marque los paquetes que necesite con «m».

  10. Vuelva a ejecutar «apt-get -s autoremove|less» como superusuario para volver a comprobar que solo ha ELIMINADO los paquetes que deseaba.

  11. 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] 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.

You can perform system wide upgrade to a newer release by changing contents of the source list pointing to a new release and running the "apt update; apt dist-upgrade" command.

To upgrade from stable to testing or unstable during the bookworm-as-stable release cycle, you replace "bookworm" in the source list example of Sección 2.1.5, “Fundamentos del archivo de Debian” with "trixie" or "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.

  1. Lea las anterior «Release Notes«.

  2. Realice una copia de respaldo (o de seguridad) completa (especialmente los datos y las configuraciones).

  3. Disponga de un medio alternativo de arranque por si falla el cargador de arranque.

  4. Informe con anterioridad y de forma correctamente a los usuarios.

  5. Registre las operaciones de la actualización con script(1).

  6. Para evitar su eliminación marque los paquetes que lo requieran como «sin marcado automático» (unmarkauto), p. ej., «aptitude unmarkauto vim».

  7. Minimize los paquetes instalados con el de minimizar la posibilidad de conflictos, p. ej., elimine los paquetes de la tarea «Escritorio«.

  8. Remove the "/etc/apt/preferences" file (disable apt-pinning).

  9. Realice actualizaciones siguiendo los pasos de forma sensata: vieja_estableestable«en pruebas»«inestable».

  10. Update the source list to point to new archive only and run "aptitude update".

  11. Instale, opcionalmente, primero los nuevos paquetes fundamentales , p. ej., «aptitude install perl».

  12. Ejecute la orden «apt-get -s dist-upgrade» para comprobar su efecto.

  13. Finalmente , ejecute la orden «apt-get dist-upgrade».

[Atención] Atención

No es aconsejable omitir la distribución principal de Debian, la estable, cuando se actualiza entre distribuciones.

[Atención] 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 -plow package_name 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] Nota

Para paquetes que sean multi-arch, usted puede necesitar especificar el nombre de la arquitectura para algunas órdenes. Por ejemplo, use «dpkg -L libglib2.0-0:amd64» para enumerar el contenido del paquete libglib2.0-0 para la arquitectura amd64.

[Atención] Atención

Las herramientas de bajo nivel como «dpkg -i …» y «debi …» deben ser usadas con cuidado por el administrador del sistema. No toman en cuenta de forma automática las dependencias entre paquetes. La opción de la línea de órdenes «--force-all» y parecidas (see dpkg(1)) estan hechas para ser usadas únicamente por usuarios expertos. Usarlas sin entender plenamente sus consecuencias pueder corromper el sistema entero.

Ten en cuenta lo siguiente.

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] 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.

Aunque al visitar la página de Debian https://packages.debian.org/ facilita formas fáciles de buscar en los metadatos del paquete en estos días, veamos otras formas 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» se puede usar para buscar nombres de paquetes que contegan archivos que coincidan con el nombre instalado por dpkg. Pero pasa por alto los archivos creados por los scripts 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.

[Sugerencia] Sugerencia

El archivo de la raíz «Release» es usado para firmar el repositorio del sistema seguro APT.

Cada versión del archivo de Debian tiene un fichero de nivel superior "Release", por ejemplo, "http://deb.debian.org/debian/dists/unstable/Release", como sigue.

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] Nota

En el puede encontrar la razón de ser entre la «versión« y el «nombre en clave« en Sección 2.1.5, “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«.

The integrity of the top level "Release" file is verified by cryptographic infrastructure called the secure apt as described in apt-secure(8).

  • 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.

  • The public Debian archive keys are locally installed by the latest debian-archive-keyring package.

  • The secure APT system automatically verifies the integrity of the downloaded top level "Release" file cryptographically by this "Release.gpg" file and the locally installed public Debian archive keys.

  • 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”).

If the source list entry specifies the "signed-by" option, the integrity of its downloaded top level "Release" file is verified using specified public key. This is useful when the source list contains non-Debian archives.

[Sugerencia] Sugerencia

The use of apt-key(8) command for APT key management is deprecated.

Also, you can manually verify the integrity of the "Release" file with the "Release.gpg" file and the public Debian archive key posted on ftp-master.debian.org using gpg.

[Sugerencia] Sugerencia

Los archivos “Release” a nivel del archivo se utilizan para la regla apt_preferences(5).

There are archive level "Release" files for all archive locations specified by the source list, such as "http://deb.debian.org/debian/dists/unstable/main/binary-amd64/Release" or "http://deb.debian.org/debian/dists/sid/main/binary-amd64/Release" as follows.

Archive: unstable
Origin: Debian
Label: Debian
Component: main
Architecture: amd64
[Atención] Atención

Para la etiqueta «Archive:» , los nombres de distribución («stable», «testing», «unstable», …) son utilizados en el repositorio Debian mientras que los nombres de publicación («trusty», «xenial», «artful», …) son utilizados en el repositorio Ubuntu.

Para algunos archivos, como experimental, y bookworm-backports, que contienen paquetes que no deben instalarse automáticamente, hay una línea extra, por ejemplo, "http://deb.debian.org/debian/dists/experimental/main/binary-amd64/Release" como sigue.

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.7, “Tweaking candidate version with apt-pinning).

When APT tools, such as aptitude, apt-get, synaptic, apt-file, auto-apt, … are used, we need to update the local copies of the meta data containing the Debian archive information. These local copies have following file names corresponding to the specified distribution, area, and architecture names in the source list (see Sección 2.1.5, “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)

First 4 types of files are shared by all the pertinent APT commands and updated from command line by "apt-get update" or "aptitude update". The "Packages" meta data are updated if the "deb" is specified in the source list. The "Sources" meta data are updated if the "deb-src" is specified in the source 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 los metadatos "Contents-architecture" se puede actualizar con "apt-file update" y su ubicación es diferente de las otras 4 . Consulta los archivo apt(1). (El auto-apt usa una ubicación diferente para la copia local de "Contents-architecture.gz" por defecto)

Los archivos que son paquetes Debian tienen una estructura para nombrarlos determinada.


[Sugerencia] Sugerencia

Únicamente describiremos aquí el formato del paquete fuente. Para obtener mayor información consulte dpkg-source(1).


[Nota] Nota

Se puede comprobar el orden de las versiones de los paquetes con la ordendpkg(1), p. ej., «dpkg --compare-versions 7.0 gt 7.~pre1 ; echo $?» .

[Nota] Nota

El instalador debian (d-i) usa la extensión de archivo udeb para sus paquetes binarios en vez de la normal deb. Un paquete udeb es una versión reducida de un paquete deb a la cual se le han eliminado los contenidos no esenciales como la documentación con el fin de ahorrar espacio mientras se relajan los requisitos de la directriz de los paquetes. Ambos paquetes, deb y udeb, comparten la misma estructura de paquetes. La «u» tiene el significado de micro.

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.

Al instalar el paquete llamado "package_name", dpkg lo procesa en el siguiente orden.

  1. Desempaqueta el archivo deb (equivale a «ar -x»)

  2. Ejecuta «nombre_del_paquete.preinst» usando debconf(1)

  3. Instala el paquete en el sistema (equivalente a "tar -x")

  4. Ejecuta «nombre_del_paquete.postinst» usando debconf(1)

El sistema debconf proporciona una interacción de usuario estandarizada con compatibilidad con 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 copia de seguridad de la primera generación 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».

El comando de la búsqueda especializada grep-dctrl(1) puede buscar las copias locales de los metadatos "status" y "disponible".

[Sugerencia] Sugerencia

En el entorno del instalador de debian, la orden udpkg se usa para abrir los paquetes udeb. La orden udpkg es una versión reducida de la orden dpkg.

Cuando se ejecuta el sistema testing o unstable, se espera que el administrador recupere la situación de administración de paquetes rotos.

[Atención] Atención

Algunos métodos descritos conllevan acciones muy peligrosas. ¡Usted ha sido avisado!

Los errores de la caché de datos del paquete de software pueden causar errores extraños, como "Error de GPG: ... no válido: BADSIG ..." de APT.

Debes eliminar todos los datos almacenados en caché mediante "sudo rm -rf /var/lib/apt/* " y volver a intentarlo. (Si se utiliza apt-cacher-ng, también debes ejecutar "sudo rm -rf /var/cache/apt-cacher-ng/* ")

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.7, “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.6, “Packages from mixed source of archives without apt-pinning) 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] 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

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 puedes iniciar el sistema, puedes instalarlo con el siguiente comando.

# dpkg -i /path/to/foo_old_version_arch.deb
[Sugerencia] 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.11, “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.

  1. Iniciar el sistema mediante un CD de instalación de Debian en modo rescate.

  2. Montar el sistema que no inicia en el disco duro en «/destino».

  3. Instale la versión anterior del paquete foo de la siguiente manera.

# dpkg --root /target -i /path/to/foo_old_version_arch.deb

Este ejemplo funciona incluso si la orden dpkg del disco duro está roto.

[Sugerencia] 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] 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.

For simplicity, the source list examples in this section are presented as "/etc/apt/sources.list" in one-line-style after the bookworm release.

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 se usa principalmente para actualizaciones de seguridad en sistemas estables. Si el riesgo de que las actualizaciones automáticas dañen un sistema estable es menor que el riesgo de que un intruso explote un agujero de seguridad que se solucionó con una actualización de seguridad, debería considerar usar la actualización automática con la siguiente configuración parámetros

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::Unattended-Upgrade "1";

If you are running an testing or unstable system, you do not want to use the automatic upgrade since it certainly breaks system some day. Even for such testing or unstable case, you may still want to download packages in advance to save time for the interactive upgrade with configuration parameters as the following.

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::Unattended-Upgrade "0";

There are stable-updates ("bookworm-updates" during the bookworm-as-stable release cycle) and backports.debian.org archives which provide upgrade packages for stable.

Para utilizar estos archivos, enumera todos los archivos necesarios en el archivo "/etc/apt/sources.list" de la siguiente manera.

deb http://deb.debian.org/debian/ bookworm main non-free-firmware contrib non-free
deb http://security.debian.org/debian-security bookworm-security main non-free-firmware contrib non-free
deb http://deb.debian.org/debian/ bookworm-updates main non-free-firmware contrib non-free
deb http://deb.debian.org/debian/ bookworm-backports main non-free-firmware 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 bookworm-updates.

  • Solo los paquetes antiguios instalados de forma manual desde bookworm-backports son actualizados a los nuevos de bookworm-backports.

Cuando ocurra que se desee instalar manualmente un paquete llamado «nombre_del_paquete» con su dependencia del repositorio bookworm-backports, se usa la siguiente orden mientras se cambia la distribución objetivo con la opción «-t».

$ sudo apt-get install -t bookworm-backports package-name
[Aviso] Aviso

Do not install too many packages from backports.debian.org archives. It may cause package dependency complications. See Sección 2.1.11, “How to cope with conflictig requirements” for alternative solutions.

[Atención] Atención

Installing packages from mixed source of archives is not supported by the official Debian distribution except for officially supported particular combinations of archives such as stable with security updates and stable-updates.

Aquí hay un ejemplo, en el escenario original donde solo se realiza un seguimiento de de prueba, la operación incluye la nueva versión del paquete ascendente que se encuentra en inestables.

  1. Cambie el archivo «/etc/apt/sources.list» de forma temporal a una entrada única «unstable».

  2. Ejecute «aptitude update».

  3. Ejecute «aptitude install nombre_del_paquete».

  4. Recupere la versión original de«/etc/apt/sources.list» para «en pruebas».

  5. Ejecute «aptitude update».

You do not create the "/etc/apt/preferences" file nor need to worry about apt-pinning with this manual approach. But this is very cumbersome.

[Atención] 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 instalar paquetes de diferentes archivos son las siguientes.

[Nota] 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] Nota

Except to avoid broken package for a short term, installing binary packages from non-Debian archives is generally bad idea. You should seek all available alternative safer technical solutions which are compatible with your current Debian syetem (see Sección 2.1.11, “How to cope with conflictig requirements”).

[Aviso] Aviso

Use of apt-pinning by a novice user is sure call for major troubles. You must avoid using apt-pinning except when you absolutely need it.

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] Sugerencia

La forma en que se comparan las cadenas de caracteres de las versiones puede ser comprobada mediante, p. ej., «dpkg --compare-versions ver1.1 gt ver1.1~1; echo $?» (consulte dpkg(1)).

Cuanso se usa como origen para instalación de paquetes, un conjunto mixto de repositorios con regularidad (consulte Sección 2.7.6, “Packages from mixed source of archives without apt-pinning), 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).

When using apt-pinning, you must ensure compatibility of packages by yourself since the Debian does not guarantee it. The apt-pinning is completely optional operation and its use is not something I encourage you to use.

Archive level Release files (see Sección 2.5.3, “Archivos «Release» a nivel de archivo”) are used for the rule of apt_preferences(5). Thus apt-pinning works only with "suite" name for normal Debian archives and security Debian archives. (This is different from Ubuntu archives.) For example, you can do "Pin: release a=unstable" but can not do "Pin: release a=sid" in the "/etc/apt/preferences" file.

When you use non-Debian archive as a part of apt-pinning, you should check what they are intended for and also check their credibility. For example, Ubuntu and Debian are not meant to be mixed.

[Nota] Nota

Even if you do not create the "/etc/apt/preferences" file, you can do fairly complex system operations (see Sección 2.6.6, “Recuperación con la orden dpkg” and Sección 2.7.6, “Packages from mixed source of archives without apt-pinning) without apt-pinning.

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.11, “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.


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«;»

  • Opciones de línea de comandos, por ejemplo: "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 de múltiples fuentes de archivo se muestra mediante "política apt-cache 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/ bookworm-backports/main Packages».

[Aviso] Aviso

Use of apt-pinning by a novice user is sure call for major troubles. You must avoid using apt-pinning except when you absolutely need it.

Este es un ejemplo de la técnica de apt-pinning para incluir paquetes específicos de versiones anteriores más recientes que se encuentran en unstable que se actualizan periódicamente durante el seguimiento de testing . Enumera todos los archivos necesarios en el archivo "/etc/apt/sources.list" de la siguiente manera.

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/debian-security testing-security main contrib

Establezca el archivo "/etc/apt/preferences" de la siguiente manera.

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 package-name

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] Atención

Tenga cuidado con eliminar la entrada «testing» del archivo «/etc/apt/sources.list». Sin dicha entrada «testing» en él, el sistema APT actualizará los paquetes usando la nueva distribución «inestable».

[Sugerencia] Sugerencia

Generalmente edito el archivo «/etc/apt/sources.list» para comentar la entrada ««inestable»» del archivo justo después de realizar la operación anterior. Esto evita que el proceso de actualización se ralentice portener demasiadas entradas en el archivo «/etc/apt/sources.list» aunque esto impide que se actualicen los paquetes que fueron instalados desde el repositorio «inestable» usando dicho repositorio actual.

[Sugerencia] Sugerencia

Si se utiliza «Pin-Priority: 1 « en vez de «Pin-Priority: 100» en el archivo« / etc/apt/preferences «, los paquetes instalados con anterioridad que tienen un valor de Pin-Priority de 100 no se actualizarán del repositorio «inestable» incluso si se elimina la entrada ««en pruebas»» del archivo «/etc/apt/sources.list».

Si deseas realizar un seguimiento de determinados paquetes en inestables de forma automática sin la instalación inicial de "-t inestables", debes crear el archivo "/etc/apt/preferences" y enumerar explícitamente todos esos paquetes en la parte superior del mismo como se indica a continuación.

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] Sugerencia

This apt-pinning technique is valid even when you are tracking stable archive. Documentation packages have been always safe to install from unstable archive in my experience, so far.

[Aviso] Aviso

Use of apt-pinning by a novice user is sure call for major troubles. You must avoid using apt-pinning except when you absolutely need it.

[Atención] 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.7, “Tweaking candidate version with apt-pinning). 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.6, “Recuperación con la orden dpkg”).

Busca en el archivo "/etc/apt/sources.list" las líneas que usan inestable como se muestra 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/ trixie main contrib non-free

Establezca el archivo "/etc/apt/preferences" de la siguiente manera.

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] 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.