Las distribuciones basadas en Ubuntu cuentan con varios sistemas de administración de paquetes para instalar, actualizar, administrar dependencias y eliminar software. Advanced Packaging Tool (APT) es el administrador de paquetes predeterminado para distribuciones como Ubuntu, Debian, Linux Mint y POP!_OS.
APT funciona con el comando apt en Ubuntu para proporcionar acceso a más de 60 000 paquetes de software, dependencias, metadatos e instrucciones para instalar aplicaciones de software en su sistema.
Este artículo guía a los usuarios sobre cómo trabajar con APT a través del comando apt, buscar, instalar, actualizar paquetes, actualizar un sistema y agregar repositorios adicionales para software adicional. También presentará otros administradores de paquetes como aptitude y dpkg.
Ventajas de los sistemas de gestión de paquetes
Los sistemas de administración de paquetes de Ubuntu generalmente administran paquetes o archivos DEB con la extensión .deb, que generalmente existe en los repositorios. Aquí hay algunas razones por las que debería usar sistemas de administración de paquetes en su distribución favorita.
- Facilita la consulta de paquetes instalados y disponibles.
- Puede eliminar por completo un paquete o una aplicación antigua con todos sus archivos.
- Puede verificar la integridad de los archivos del paquete.
- Mantiene sus aplicaciones actualizadas con correcciones de errores y actualizaciones de paquetes. También elimina todos los archivos de versiones anteriores, lo que podría dañar su sistema.
- Puede cambiar fácilmente los paquetes a versiones anteriores.
- Mantiene su sistema liviano mediante la administración de bibliotecas redundantes y dependencias de software.
- Facilita la instalación o eliminación de grupos de paquetes.
Características de APT
- Admite múltiples repositorios.
- Cuenta con una configuración e interfaz simples.
- Comportamiento coherente con DEB.
- Cuenta con soporte para grupos de paquetes y grupos de múltiples repositorios.
Comandos APT
El comando apt es una poderosa herramienta de línea de comandos para buscar, instalar, eliminar paquetes, etc.
Buscar un paquete o software
Antes de instalar cualquier software, es posible que deba confirmar si existe en los repositorios de Ubuntu. Use el nombre común de la aplicación con el comando de búsqueda apt. Por ejemplo, puede buscar si la aplicación de gestión del servidor Cockpit está disponible para su instalación.
$ sudo apt search zsh
Instalar un paquete
Una vez que haya confirmado que existe un paquete, puede instalarlo con el comando apt install.
$ sudo apt install cockpit
Mostrar metadatos del paquete
A veces puede ser necesario buscar más información sobre un paquete antes de decidir si desea instalarlo. Use el comando apt show para obtener más información y busque en los metadatos de un paquete información como la URL del proyecto, la licencia, la descripción detallada, etc.
$ sudo apt show cockpit
Encuentre un paquete que proporcione un archivo
A veces, es posible que deba buscar un paquete utilizando el nombre de uno de sus archivos. Por ejemplo, una consulta de búsqueda adecuada para una dependencia como qmake-qt5 no encuentra el paquete que necesita.
$ sudo apt search qmake-qt5
Sorting... Done
Full-Text Search... Done
Si su búsqueda encuentra lo que busca, puede explorar dentro de un paquete con el comando apt-file:
$ sudo apt-file search qmake-qt5
qt5-qmake-bin: /usr/share/man/man1/qmake-qt5.1.gz
Explorar archivos incluidos en un paquete
Puede encontrar que una aplicación ya está instalada en su sistema en ciertos casos y desea saber qué archivos están incluidos en el paquete. Para conocer estos detalles, debe usar el comando apt-file list. El comando examina los metadatos del repositorio sobre el paquete y devuelve todos los archivos proporcionados por el paquete dado.
$ sudo apt-file list cockpit
cockpit: /usr/share/doc/cockpit/TODO.Debian
cockpit: /usr/share/doc/cockpit/copyright
cockpit: /usr/share/metainfo/cockpit.appdata.xml
Eliminar un paquete
Si ya no necesita un paquete en su sistema, use apt remove para desinstalarlo. El comando eliminará todos los archivos del paquete instalado y cualquier dependencia innecesaria.
$ sudo apt remove cockpit
Eliminar un paquete y archivos de configuración
Agregar la opción –-purge a apt remove eliminará también los archivos de configuración del paquete. Sin embargo, tenga cuidado al usar la opción –purge, ya que podría traer algunos efectos no deseados a su sistema.
$ sudo apt purge cockpit
Cuando dos o más paquetes requieren la misma dependencia, la eliminación de un paquete no elimina automáticamente todas las dependencias. Como tal, podría terminar con paquetes extraviados después de instalar y desinstalar muchas aplicaciones y paquetes. Para borrar los paquetes no utilizados y realizar algunas tareas de mantenimiento, utilice el comando apt autoremove.
$ sudo apt autoremove
Actualizar el índice de paquetes
El índice de paquetes APT es una lista de todos los paquetes disponibles de los repositorios definidos en su sistema en /etc/apt/sources.list archivo y /etc/apt/sources.list.d directorio. Ejecute el siguiente comando para actualizar el índice de paquetes locales con los últimos cambios en sus repositorios.
$ sudo apt update
Paquetes de sistema de actualización
Puede actualizar paquetes directamente con el comando apt para obtener parches importantes, correcciones de errores y actualizaciones de seguridad. Antes de actualizar los paquetes de su sistema, actualice el índice de paquetes y luego actualice usando el comando apt upgrade.
$ sudo apt upgrade
Ver registros de comandos apt
Todas las acciones del comando ATP se registran en el /var/log/dpkg.log archivo y puede ser útil si tiene problemas y desea solucionar problemas de ATP.
Guía APT
$ sudo apt help
Repositorios adicionales
Apt almacena una lista de repositorios de software en el archivo /etc/apt/sources.list y cualquier archivo con la extensión .list en el directorio /etc/apt/sources.list.d/ . Puede editar estos archivos para agregar, eliminar o deshabilitar repositorios.
Antes de comenzar a editar cualquier archivo source.list, se recomienda que cree una copia de seguridad del archivo. ¡Por la razón obvia de que las roturas son inevitables! Cree una copia de seguridad con el siguiente comando.
$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
Agregar repositorios
Además de los repositorios de paquetes admitidos oficialmente para Ubuntu, puede agregar repositorios mantenidos por la comunidad como universe y multiverse o incluso repositorios PPA de Launchpad.
Agregar repositorios de universos y multiversos
Puede habilitar repositorios adicionales quitando los comentarios de las líneas apt correspondientes a un repositorio que desee usar. Por ejemplo, descomente el repositorio de universo o multiverso eliminando el '#' antes de cada línea:
deb http://us.archive.ubuntu.com/ubuntu/ release_name universe
deb-src http://us.archive.ubuntu.com/ubuntu/ release_name universe
deb http://us.archive.ubuntu.com/ubuntu/ release_name-updates universe
deb-src http://us.archive.ubuntu.com/ubuntu/ release_name-updates universe
También puede agregar un repositorio con el comando add-apt-repository:
$ sudo add-apt-repository "deb http://us.archive.ubuntu.com/ubuntu/ release_name universe multiverse"
$ sudo add-apt-repository "deb http://us.archive.ubuntu.com/ubuntu/ release_name-updates universe multiverse"
Sugerencia:escriba lsb_release -sc para averiguar su versión.
Agregar repositorios de socios
Habilite los repositorios de socios descomentando las siguientes líneas:
deb http://archive.canonical.com/ubuntu release_name partner
deb-src http://archive.canonical.com/ubuntu release_name partner
Luego puede actualizar la lista de paquetes para que los cambios surtan efecto con el siguiente comando:
$ sudo apt update
Agregar repositorios PPA de Launchpad
Puede agregar repositorios Launchpad PPA (Personal Package Archive) con el comando add-apt-repository.
$ sudo add-apt-repository ppa:<launchpad_PPA_repository_name>
Otros repositorios
En ciertos casos, es posible que deba agregar un repositorio que no sea de Ubuntu. Para agregar un repositorio que no sea de Ubuntu, agregue la línea de repositorio apt de la fuente de su software al archivo sources.list.
Precaución:agregue solo repositorios confiables.
deb http://mirror3.ubuntulinux.nl/ repo_name pckg
Como siempre, no olvides actualizar tus cambios:
$ sudo apt update
Obtenga más información sobre apt en sus páginas man oficiales:man apt.
Actualizaciones automáticas
Apt proporciona el paquete de actualizaciones desatendidas que puede usar para administrar y configurar actualizaciones automáticas. Puede instalar el paquete con el siguiente comando:
$ sudo apt install unattended-upgrades
El siguiente paso es editar /etc/apt/apt.conf.d/50unattended-upgrades .
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}";
"${distro_id}:${distro_codename}-security";
// "${distro_id}:${distro_codename}-updates";
// "${distro_id}:${distro_codename}-proposed";
};
Nota:el signo "//" denota comentarios y, por lo tanto, no se evaluará.
También puede excluir ciertos paquetes de las actualizaciones automáticas agregándolos a la lista Package-Blacklist:
Unattended-Upgrade::Package-Blacklist {
// "vim";
// "libc6";
// "libc6-dev";
}
El siguiente paso es habilitar las actualizaciones automáticas editando /etc/apt/apt.conf.d/20auto-upgrades con las opciones de configuración adecuadas. Por ejemplo, la siguiente configuración actualiza la lista de paquetes e instala las actualizaciones disponibles cada cinco días. Además, le indica a apt que limpie el archivo de descarga local cada dos semanas.
APT::Periodic::Update-Package-Lists "5";
APT::Periodic::Download-Upgradeable-Packages "5";
APT::Periodic::AutocleanInterval "14";
APT::Periodic::Unattended-Upgrade "5";
Actualizar a una nueva versión de Ubuntu
Ubuntu admite actualizaciones de un LTS al siguiente LTS en orden secuencial. Por ejemplo, solo puede actualizar Ubuntu 16.04 LTS a Ubuntu 18.04 LTS y luego realizar otra actualización a Ubuntu 20.04 LTS. Por lo tanto, antes de actualizar a un comunicado de prensa, actualice completamente el sistema con los siguientes comandos:
$ sudo apt update
$ sudo apt upgrade
Se recomienda que utilice el comando do-release-upgrade para realizar una actualización del sistema.
$ sudo do-release-upgrade
Antes de que comience el proceso, el sistema le pedirá que acepte los cambios y solo procederá después de aceptarlos. Es seguro tomar un café en este punto y dejar que el sistema complete el proceso de actualización. Después de actualizar todos los paquetes, el sistema le pedirá nuevamente que elimine los paquetes obsoletos.
Finalmente, reinicie el sistema e inicie sesión en su sistema actualizado.
Habilidad
Aptitude es un front-end basado en Ncurses para el sistema APT que puede iniciar como un front-end basado en texto o una herramienta de línea de comandos. El uso de Aptitude es sencillo y puede realizar funciones comunes de administración de paquetes con comandos de una sola tecla. Escriba el siguiente comando para iniciar la interfaz basada en menús.
$ sudo aptitude
El comando abrirá una barra de menú que contiene categorías como Paquetes nuevos y Paquetes no instalados. A continuación, puede realizar funciones como instalar, eliminar, actualizar el índice de paquetes o actualizar paquetes.
Los siguientes son ejemplos de claves comunes utilizadas para describir el estado de los paquetes:
- i:Paquetes instalados.
- c:Paquete no instalado.
- p:paquetes eliminados del sistema.
- v:Paquete virtual.
- u:Archivos desempaquetados.
- C:configurado a medias, es decir, la configuración del paquete falló y debe corregirse.
- B:Paquete roto.
- H:medio instalado, es decir, la eliminación falló.
- U:Archivos descomprimidos pero aún no configurados.
- q:Pulse la tecla q para salir de Aptitud.
Obtenga más información sobre aptitude en sus páginas man:man aptitude
Habilidad de línea de comando
También puede usar Aptitude como una herramienta de línea de comandos con el comando aptitude. Los comandos apt y aptitude funcionan de manera similar. Por ejemplo, para instalar un paquete, puede sustituir apt por aptitude, como se ilustra a continuación.
$ sudo aptitude install cockpit
Eliminar un paquete:
$ sudo aptitude remove cockpit
dpkg
dpkg es otro administrador de paquetes para sistemas basados en Debian. Puede ver dpkg como el administrador de paquetes "back-end" utilizado por Apt y Aptitude para realizar la mayoría de sus funciones. Puede usarlo para administrar paquetes locales, instalar, eliminar y compilar paquetes. Sin embargo, una advertencia de dpkg es que no puede descargar e instalar automáticamente paquetes y dependencias.
Los siguientes son ejemplos de cómo usar dpkg.
Enumere todos los paquetes instalados y desinstalados en su sistema:
$ dpkg -l
Ver un paquete específico con pipe y grep:
$ dpkg -l | grep cockpit
Enumere los archivos instalados por un paquete:
$ dpkg -L cockpit
Encuentre un paquete que instaló un archivo:
$ dpkg -S /etc/host.conf
base-files: /etc/host.conf
Instale un archivo .deb local:
$ sudo dpkg -i new_package_1.0.1_amd64.deb
Desinstalar un paquete:
$ sudo dpkg -r new_package
Tenga en cuenta que no se recomienda desinstalar paquetes con dpkg, ya que podría romper las dependencias de su sistema. Una mejor alternativa es apt, que puede manejar las dependencias y garantizar que los paquetes del sistema sean consistentes.
Obtenga más información sobre dpkg en su página man:man dpkg
Comandos APT/APT-GET comparados con DNF
Si no es un usuario típico de las distribuciones RHEL como CentOS, es posible que desee familiarizarse con el administrador de paquetes DNF de Fedora, que es "sinónimo" de apt en las distribuciones basadas en Debian. Aquí enumeramos algunos comandos APT comunes con sus equivalentes DNF.
Comandos APT | comandos DNF |
---|---|
actualización apt actualización apt-get | actualización de comprobación de dnf |
actualización apt actualización apt-get | actualización de dnf |
apt full-upgrade apt-get dist-upgrade | dnf distro-sync o dnf system-upgrade |
eliminar apt eliminar apt-get | eliminar dnf |
apt purge apt-get purge | --- |
apt autoremove apt-get autoremove | eliminación automática de dnf |
búsqueda apt búsqueda apt-cache | búsqueda dnf |