APT o Advanced Package Tool es la utilidad de línea de comandos para la gestión de paquetes en las distribuciones basadas en Debian/Ubuntu.

Es uno de los gestores de paquetes disponibles junto con apt-get pero, al igual que los demás, le permite instalar, modificar o eliminar diferentes paquetes sin necesidad de construirlos a partir del código fuente. Puede realizar muchas más acciones relacionadas con la gestión de paquetes que vamos a cubrir en las siguientes secciones.

La sintaxis general del uso del comando apt es la siguiente:

$ apt [COMANDO] [PAQUETE]

Recuerde utilizar sudo con apt, ya que muchos de sus subcomandos requerirían el privilegio de realizar cambios a nivel de sistema.

Aquí cubriremos diferentes subcomandos que puede utilizar con apt y su uso.

Actualizar la base de datos de paquetes

apt necesita un repositorio de paquetes con una base de datos de todos los paquetes disponibles que se pueden instalar en un sistema Debian/Ubuntu. Esta base de datos del repositorio debe actualizarse antes de comenzar a instalar un paquete, ya que apt debe conocer los detalles sobre el paquete, su versión, arquitectura y ubicación remota.

Actualizar la base de datos de repositorios es fácil y puede hacerse con:

$ sudo apt update

Ejemplo:

abhisheknair@geekflare:~$ sudo apt update
Obtener:1 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Get:2 http://azure.archive.ubuntu.com/ubuntu focal InRelease
Obtener:3 http://azure.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
Obtener:4 http://azure.archive.ubuntu.com/ubuntu focal-backports InRelease [101 kB]
Obtener:5 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [1086 kB]
Obtener:6 http://azure.archive.ubuntu.com/ubuntu focal-updates/universe Paquetes amd64 [841 kB]
Obtenido 2255 kB en 1s (2677 kB/s)
Leyendo listas de paquetes... Hecho
Construyendo árbol de dependencias
Leyendo información de estado... Hecho
14 paquetes pueden actualizarse. Ejecute 'apt list --upgradable' para verlos.
abhisheknair@geekflare:~$

Actualizar paquetes instalados

Los paquetes instalados en un sistema pueden actualizarse a la última versión disponible utilizando:

$ sudo apt upgrade

Con la orden de actualización, los paquetes se instalarán si es necesario para satisfacer las dependencias, pero los paquetes existentes nunca se eliminarán. Si la actualización de un paquete requiere la eliminación de un paquete instalado, entonces no se realizará la actualización de este paquete.

Ejemplo:

abhisheknair@geekflare:~$ sudo apt update
Obtener:1 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Get:2 http://azure.archive.ubuntu.com/ubuntu focal InRelease
Obtener:3 http://azure.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
Obtener:4 http://azure.archive.ubuntu.com/ubuntu focal-backports InRelease [101 kB]
Obtener:5 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [1086 kB]
Obtener:6 http://azure.archive.ubuntu.com/ubuntu focal-updates/universe Paquetes amd64 [841 kB]
Obtenido 2255 kB en 1s (2677 kB/s)
Leyendo listas de paquetes... Hecho
Construyendo árbol de dependencias
Leyendo información de estado... Hecho
14 paquetes pueden actualizarse. Ejecute 'apt list --upgradable' para verlos.
abhisheknair@geekflare:~$ sudo apt upgrade
Leyendo listas de paquetes... Hecho
Construyendo árbol de dependencias
Leyendo información de estado... Hecho
Calculando la actualización... Hecho
Se actualizarán los siguientes paquetes:
  apt apt-utils libapt-pkg6.0 libpython3.8 libpython3.8-minimal libpython3.8-stdlib libuv1 linux-base linux-base-sgx open-vm-tools python3-distupgrade python3.8
  python3.8-minimal ubuntu-release-upgrader-core
14 actualizados, 0 recién instalados, 0 para eliminar y 0 no actualizados.
Se necesitan 9485 kB de archivos.
Tras esta operación, se utilizarán 603 kB de espacio adicional en disco.
¿Desea continuar? [S/N
Obtener:1 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 libapt-pkg6.0 amd64 2.0.6 [835 kB]
Get:2 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 apt amd64 2.0.6 [1296 kB]
Get:3 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 apt-utils amd64 2.0.6 [216 kB]
Get:4 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 libpython3.8 amd64 3.8.10-0ubuntu1~20.04 [1625 kB]
Get:5 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 python3.8 amd64 3.8.10-0ubuntu1~20.04 [387 kB]
Get:6 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 libpython3.8-stdlib amd64 3.8.10-0ubuntu1~20.04 [1675 kB]
Get:7 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 python3.8-minimal amd64 3.8.10-0ubuntu1~20.04 [1898 kB]
Get:8 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 libpython3.8-minimal amd64 3.8.10-0ubuntu1~20.04 [717 kB]
Get:9 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 libuv1 amd64 1.34.2-1ubuntu1.3 [80.8 kB]
Get:10 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 ubuntu-release-upgrader-core all 1:20.04.35 [23.9 kB]
Get:11 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 python3-distupgrade all 1:20.04.35 [104 kB]
Get:12 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 linux-base all 4.5ubuntu3.6 [17.8 kB]
Get:13 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 linux-base-sgx all 4.5ubuntu3.6 [4660 B]
Get:14 http://azure.archive.ubuntu.com/ubuntu focal-updates/universe amd64 open-vm-tools amd64 2:11.2.5-2ubuntu1~ubuntu20.04.1 [604 kB]
Obtenido 9485 kB en 0s (54.4 MB/s)
Preconfigurando paquetes ...
(Leyendo base de datos ... 59511 archivos y directorios instalados actualmente)
Preparando para desempaquetar .../libapt-pkg6.0_2.0.6_amd64.deb ...
Desempaquetando libapt-pkg6.0:amd64 (2.0.6) sobre (2.0.5) ...
Configurando libapt-pkg6.0:amd64 (2.0.6) ...
(Leyendo base de datos ... 59511 archivos y directorios instalados actualmente)
Preparándose para desempaquetar .../archives/apt_2.0.6_amd64.deb ...
Desempaquetando apt (2.0.6) sobre (2.0.5) ...
Configurando apt (2.0.6) ...
(Leyendo base de datos ... 59511 archivos y directorios instalados actualmente)
Preparándose para desempaquetar .../00-apt-utils_2.0.6_amd64.deb ...
Desempaquetando apt-utils (2.0.6) sobre (2.0.5) ...
Preparándose para desempaquetar .../01-libpython3.8_3.8.10-0ubuntu1~20.04_amd64.deb ...
Desempaquetando libpython3.8:amd64 (3.8.10-0ubuntu1~20.04) sobre (3.8.5-1~20.04.3) ...
Preparándose para desempaquetar .../02-python3.8_3.8.10-0ubuntu1~20.04_amd64.deb ...
Desempaquetando python3.8 (3.8.10-0ubuntu1~20.04) sobre (3.8.5-1~20.04.3) ...
Preparándose para desempaquetar .../03-libpython3.8-stdlib_3.8.10-0ubuntu1~20.04_amd64.deb ...
Desempaquetando libpython3.8-stdlib:amd64 (3.8.10-0ubuntu1~20.04) sobre (3.8.5-1~20.04.3) ...
Preparándose para desempaquetar .../04-python3.8-minimal_3.8.10-0ubuntu1~20.04_amd64.deb ...
Desempaquetando python3.8-minimal (3.8.10-0ubuntu1~20.04) sobre (3.8.5-1~20.04.3) ...
Preparándose para desempaquetar .../05-libpython3.8-minimal_3.8.10-0ubuntu1~20.04_amd64.deb ...
Desempaquetando libpython3.8-minimal:amd64 (3.8.10-0ubuntu1~20.04) sobre (3.8.5-1~20.04.3) ...
Preparándose para desempaquetar .../06-libuv1_1.34.2-1ubuntu1.3_amd64.deb ...
Desempaquetando libuv1:amd64 (1.34.2-1ubuntu1.3) sobre (1.34.2-1ubuntu1.1) ...
Preparándose para desempaquetar .../07-ubuntu-release-upgrader-core_1:20.04.35_all.deb ...
Desempaquetando ubuntu-release-upgrader-core (1:20.04.35) sobre (1:20.04.33) ...
Preparándose para desempaquetar .../08-python3-distupgrade_1:20.04.35_all.deb ...
Desempaquetando python3-distupgrade (1:20.04.35) sobre (1:20.04.33) ...
Preparando el desempaquetado de .../09-linux-base_4.5ubuntu3.6_all.deb ...
Desempaquetando linux-base (4.5ubuntu3.6) sobre (4.5ubuntu3.1) ...
Preparando el desempaquetado de .../10-linux-base-sgx_4.5ubuntu3.6_all.deb ...
Desempaquetando linux-base-sgx (4.5ubuntu3.6) sobre (4.5ubuntu3.1) ...
Preparándose para desempaquetar .../11-open-vm-tools_2:11.2.5-2ubuntu1~ubuntu20.04.1_amd64.deb ...
Desempaquetando open-vm-tools (2:11.2.5-2ubuntu1~ubuntu20.04.1) sobre (2:11.0.5-4) ...
Instalando libpython3.8-minimal:amd64 (3.8.10-0ubuntu1~20.04) ...
Instalando apt-utils (2.0.6) ...
Instalando linux-base (4.5ubuntu3.6) ...
Instalando python3-distupgrade (1:20.04.35) ...
Instalando libuv1:amd64 (1.34.2-1ubuntu1.3) ...
Instalando linux-base-sgx (4.5ubuntu3.6) ...
Instalando ubuntu-release-upgrader-core (1:20.04.35) ...
Instalando python3.8-minimal (3.8.10-0ubuntu1~20.04) ...
Instalando open-vm-tools (2:11.2.5-2ubuntu1~ubuntu20.04.1) ...
Instalando nueva versión del archivo de configuración /etc/vmware-tools/tools.conf.example ...
Instalando nueva versión del archivo de configuración /etc/vmware-tools/vgauth.conf ...
Instalando libpython3.8-stdlib:amd64 (3.8.10-0ubuntu1~20.04) ...
Instalando python3.8 (3.8.10-0ubuntu1~20.04) ...
Instalando libpython3.8:amd64 (3.8.10-0ubuntu1~20.04) ...
Procesando triggers para libc-bin (2.31-0ubuntu9.2) ...
Procesando disparadores para systemd (245.4-4ubuntu3.7) ...
Procesando disparadores para man-db (2.9.1-1) ...
Procesando disparadores para mime-support (3.64ubuntu1) ...
abhisheknair@geekflare:~$

Asegúrese de haber ejecutado sudo apt update antes de actualizar sus paquetes para evitar problemas durante la actualización así como para asegurarse de que obtiene los últimos paquetes disponibles del repositorio. Si lo desea, puede ejecutar estos comandos en una sola línea como:

$ sudo apt update && sudo apt upgrade -y

Paquetes de actualización completa

apt también ofrece un comando de actualización completa. Se diferencia del comando upgrade en que eliminará los paquetes actualmente instalados si esto es necesario para actualizar el sistema en su conjunto. Como tal tenga cuidado con este comando y si es posible, vaya con el comando upgrade en su lugar.

$ sudo apt full-upgrade

Instalar un solo paquete

La instalación de un nuevo paquete puede realizarse con apt utilizando la siguiente sintaxis:

$ sudo apt install [nombre-del-paquete]

Ejemplo:

abhisheknair@geekflare:~$ sudo apt install unzip
Leyendo la lista de paquetes... Hecho
Construyendo árbol de dependencias
Leyendo información de estado... Hecho
Paquetes sugeridos:
  zip
Se instalarán los siguientes paquetes NUEVOS:
  unzip
0 actualizados, 1 recién instalado, 0 a eliminar y 14 no actualizados.
Se necesitan 169 kB de archivos comprimidos.
Tras esta operación, se utilizarán 593 kB de espacio adicional en disco.
Get:1 http://azure.archive.ubuntu.com/ubuntu focal/main amd64 unzip amd64 6.0-25ubuntu1 [169 kB]
Obtenido 169 kB en 0s (4040 kB/s)
Seleccionando paquete unzip previamente no seleccionado.
(Leyendo base de datos ... 59511 archivos y directorios instalados actualmente)
Preparándose para desempaquetar .../unzip_6.0-25ubuntu1_amd64.deb ...
Desempaquetando unzip (6.0-25ubuntu1) ...
Configurando unzip (6.0-25ubuntu1) ...
Procesando disparadores para mime-support (3.64ubuntu1) ...
Procesando triggers para man-db (2.9.1-1) ...
abhisheknair@geekflare:~$

Instalar varios paquetes

Puede instalar múltiples paquetes en un sistema con apt. Sigue una sintaxis similar a la del ejemplo anterior:

$ sudo apt install [nombre-paquete-1] [nombre-paquete-2] ... [nombre-paquete-n]

Ejemplo:

abhisheknair@geekflare:~$ sudo apt install zip unzip
Leyendo lista de paquetes... Hecho
Construyendo árbol de dependencias
Leyendo información de estado... Hecho
Se instalarán los siguientes paquetes NUEVOS:
  unzip zip
0 actualizados, 2 recién instalados, 0 para eliminar y 0 no actualizados.
Se necesitan 336 kB de archivos comprimidos.
Tras esta operación, se utilizarán 1231 kB de espacio adicional en disco.
Get:1 http://azure.archive.ubuntu.com/ubuntu focal/main amd64 unzip amd64 6.0-25ubuntu1 [169 kB]
Get:2 http://azure.archive.ubuntu.com/ubuntu focal/main amd64 zip amd64 3.0-11build1 [167 kB]
Obtenido 336 kB en 0s (7749 kB/s)
Seleccionando paquete unzip previamente no seleccionado.
(Leyendo base de datos ... 59527 archivos y directorios instalados actualmente)
Preparando para desempaquetar .../unzip_6.0-25ubuntu1_amd64.deb ...
Desempaquetando unzip (6.0-25ubuntu1) ...
Seleccionando paquete zip previamente no seleccionado.
Preparando para desempaquetar .../zip_3.0-11build1_amd64.deb ...
Desempaquetando zip (3.0-11build1) ...
Instalando unzip (6.0-25ubuntu1) ...
Instalando zip (3.0-11build1) ...
Procesando disparadores para man-db (2.9.1-1) ...
Procesando triggers para mime-support (3.64ubuntu1) ...
abhisheknair@geekflare:~$

Si uno de los paquetes especificados ya está instalado en el sistema, apt buscará una actualización en un repositorio y si está disponible actualizará el paquete o de lo contrario mantendrá la versión instalada tal y como está.

Instalar una versión específica

A menudo necesita instalar una versión específica de un paquete, especialmente cuando se encuentra en sistemas empresariales. apt le permite instalar una versión determinada de un paquete suponiendo que esté disponible en el repositorio mediante:

$ sudo apt install [nombre-del-paquete]=[versión]

Ejemplo:

abhisheknair@geekflare:~$ sudo apt install unzip=6.0-25ubuntu1
Leyendo lista de paquetes... Hecho
Construyendo árbol de dependencias
Leyendo información de estado... Hecho
Se instalarán los siguientes paquetes NUEVOS:
  unzip
0 actualizados, 1 recién instalados, 0 para eliminar y 0 no actualizados.
Necesita obtener 169 kB de archivos comprimidos.
Tras esta operación, se utilizarán 593 kB de espacio adicional en disco.
Get:1 http://azure.archive.ubuntu.com/ubuntu focal/main amd64 unzip amd64 6.0-25ubuntu1 [169 kB]
Obtenido 169 kB en 0s (2767 kB/s)
Seleccionando paquete unzip previamente no seleccionado.
(Leyendo base de datos ... 59541 archivos y directorios instalados actualmente)
Preparándose para desempaquetar .../unzip_6.0-25ubuntu1_amd64.deb ...
Desempaquetando unzip (6.0-25ubuntu1) ...
Configurando unzip (6.0-25ubuntu1) ...
Procesando disparadores para mime-support (3.64ubuntu1) ...
Procesando triggers para man-db (2.9.1-1) ...
abhisheknair@geekflare:~$

Eliminar un paquete

Al igual que para instalar un paquete, apt se puede utilizar para eliminar un paquete de un sistema con el siguiente comando:

$ sudo apt remove [nombre-del-paquete]

Ejemplo:

abhisheknair@geekflare:~$ sudo apt remove unzip
Leyendo la lista de paquetes... Hecho
Construyendo árbol de dependencias
Leyendo información de estado... Hecho
Los siguientes paquetes serán ELIMINADOS:
  unzip
0 actualizados, 0 recién instalados, 1 a eliminar y 14 no actualizados.
Tras esta operación, se liberarán 593 kB de espacio en disco.
¿Desea continuar? [S/N
(Lectura de la base de datos... 59529 archivos y directorios instalados actualmente)
Eliminando unzip (6.0-25ubuntu1) ...
Procesando triggers para man-db (2.9.1-1) ...
Procesando triggers para mime-support (3.64ubuntu1) ...
abhisheknair@geekflare:~$

Purgar un paquete

Al igual que eliminar un paquete, purgar un paquete también realiza la misma tarea pero mientras que con el comando remove apt sólo elimina los binarios de un paquete dejando los archivos de configuración tal y como están. Por otro lado, la orden purgar asegura que todo lo relacionado con el paquete, incluyendo sus binarios y archivos de configuración, se elimina del sistema. Dejar los archivos de configuración le permite reutilizar los mismos archivos de configuración de nuevo si planea reinstalar la aplicación.

Para purgar un paquete, utilice

$ sudo apt purge [nombre-paquete]

Ejemplo:

abhisheknair@geekflare:~$ sudo apt purge unzip
Leyendo listas de paquetes... Hecho
Construyendo árbol de dependencias
Leyendo información de estado... Hecho
Los siguientes paquetes serán ELIMINADOS:
  unzip*
0 actualizados, 0 recién instalados, 1 a eliminar y 14 no actualizados.
Tras esta operación, se liberarán 593 kB de espacio en disco.
¿Desea continuar? [S/N
(Lectura de la base de datos... 59529 archivos y directorios instalados actualmente)
Eliminando unzip (6.0-25ubuntu1) ...
Procesando triggers para man-db (2.9.1-1) ...
Procesando triggers para mime-support (3.64ubuntu1) ...
(Leyendo base de datos ... 59511 archivos y directorios instalados actualmente)
Purgando archivos de configuración para unzip (6.0-25ubuntu1) ...
abhisheknair@geekflare:~$

Buscar paquetes

apt no sólo puede servir como utilidad para instalar y eliminar paquetes. También puede buscar el paquete requerido en el repositorio con el comando de búsqueda como:

$ apt search [search-text]

Ejemplo:

abhisheknair@geekflare:~$ apt search netstat
Ordenando... Hecho
Búsqueda de texto completo... Hecho
bwm-ng/focal 0.6.2-1 amd64
  pequeño y sencillo monitor de ancho de banda basado en consola

gnome-nettool/focal 3.8.1-3 amd64
  herramienta de información de red para GNOME

golang-github-aelsabbahy-gonetstat-dev/focal 0.0~git20160428.0.edf89f7-3 all
  Implementación de Netstat en Go

golang-github-mwitkow-go-conntrack-dev/focal 0.0~git20190716.2f06839-1 all
  Go middleware para el seguimiento de net.Conn

libparse-netstat-perl/focal 0.14-1 todas
  módulo para analizar la salida del comando "netstat

net-tools/focal 1.60 git20180626.aebd88e-1ubuntu1 amd64
  Conjunto de herramientas de red NET-3

netstat-nat/focal 1.4.10-3build1 amd64
  herramienta que muestra las conexiones NAT

nicstat/focal 1.95-1build1 amd64
  imprimir estadísticas de tráfico de red

qnetstatview/focal 1.5.6-1 amd64
  Muestra listados detallados de todos los puntos finales TCP y UDP

unhide/focal 20130526-4 amd64
  Herramienta forense para encontrar procesos y puertos ocultos

whichman/focal 2.4-9 amd64
  Utilidades de búsqueda tolerantes a fallos: whichman, ftff, ftwhich

abhisheknair@geekflare:~$

Ver el contenido del paquete

Para obtener detalles sobre un paquete, si está instalado o por instalar, puede utilizar el comando show como se indica a continuación:

$ apt show [nombre-del-paquete]

Ejemplo:

abhisheknair@geekflare:~$ apt show firefox
Paquete: firefox
Versión: 90.0 build1-0ubuntu0.20.04.1
Prioridad: opcional
Sección: web
Origen: Ubuntu
Mantenedor: Equipo Mozilla de Ubuntu <ubuntu-mozillateam@lists.ubuntu.com>
Errores: https://bugs.launchpad.net/ubuntu/ filebug
Tamaño instalado: 226 MB
Proporciona: gnome-www-browser, iceweasel, www-browser
Dependencias: lsb-release, libatk1.0-0 (>= 1.12.4), libc6 (>= 2.30), libcairo-gobject2 (>= 1.10.0), libcairo2 (>= 1.10.0), libdbus-1-3 (>= 1.9.14), libdbus-glib-1-2 (>= 0.78), libfontconfig1 (>= 2.12.6), libfreetype6 (>= 2.10.1), libgcc-s1 (>= 3.3), libgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.42), libgtk-3-0 (>= 3.14), libharfbuzz0b (>= 0.6.0), libpango-1.0-0 (>= 1.14.0), libpangocairo-1.0-0 (>= 1.14.0), libpangoft2-1.0-0 (>= 1.14.0), libstdc 6 (>= 9), libx11-6, libx11-xcb1 (>= 2:1.6.9), libxcb-shm0, libxcb1, libxcomposite1 (>= 1:0.4.5), libxcursor1 (>> 1.1.2), libxdamage1 (>= 1:1.1), libxext6, libxfixes3, libxi6, libxrender1, libxt6
Recomienda: xul-ext-ubufox, libcanberra0, libdbusmenu-glib4, libdbusmenu-gtk3-4
Sugiere: fonts-lyx
Sustituye: kubuntu-firefox-installer
Tareas: ubuntu-desktop-minimal, ubuntu-desktop, kubuntu-desktop, kubuntu-full, xubuntu-desktop, lubuntu-desktop, ubuntustudio-desktop, ubuntukylin-desktop, ubuntu-mate-core, ubuntu-mate-desktop, ubuntu-budgie-desktop
Xul-Appid: {ec8030f7-c20a-464f-9b0e-13a3a9e97384}
Tamaño de la descarga: 57,0 MB
Fuentes APT: http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages
Descripción: Navegador web seguro y sencillo de Mozilla
 Firefox ofrece una navegación web segura y sencilla. Una interfaz de usuario familiar,
 funciones de seguridad mejoradas, incluida la protección contra el robo de identidad en línea,
 y la búsqueda integrada le permiten sacar el máximo partido a la web.

N: Hay 1 registro adicional. Por favor, utilice el modificador '-a' para verlo
abhisheknair@geekflare:~$

Lista de paquetes instalados

A menudo necesitamos listar los paquetes instalados en un sistema para diferentes propósitos. apt le permite obtener la lista de paquetes instalados simplemente con:

$ apt list --instalado

Listar todos los paquetes

Para listar todos los paquetes disponibles para su sistema, utilice el comando list con la palabra clave --all-versions como:

$ apt list --all-versions

Lista de paquetes actualizables

Los paquetes necesitan mantenerse actualizados ya que siguen apareciendo nuevas versiones con características mejoradas o adicionales y correcciones de errores incluyendo lagunas críticas de seguridad. apt le asegura que puede parchear su sistema Debian/Ubuntu fácilmente con el comando upgrade como se sugirió anteriormente en el artículo. Para listar todas las actualizaciones disponibles para los paquetes instalados en su sistema, ejecute:

$ apt list --actualizable

Ejemplo:

abhisheknair@geekflare:~$ apt list --upgradable
Listado... Hecho
apt-utils/focal-updates 2.0.6 amd64 [actualizable desde: 2.0.5]
apt/focal-updates 2.0.6 amd64 [actualizable desde: 2.0.5]
libapt-pkg6.0/focal-updates 2.0.6 amd64 [actualizable desde: 2.0.5]
libpython3.8-minimal/focal-updates,focal-security 3.8.10-0ubuntu1~20.04 amd64 [actualizable desde: 3.8.5-1~20.04.3]
libpython3.8-stdlib/focal-updates,focal-security 3.8.10-0ubuntu1~20.04 amd64 [actualizable desde: 3.8.5-1~20.04.3]
libpython3.8/focal-updates,focal-security 3.8.10-0ubuntu1~20.04 amd64 [actualizable desde: 3.8.5-1~20.04.3]
libuv1/focal-updates,focal-security 1.34.2-1ubuntu1.3 amd64 [actualizable desde: 1.34.2-1ubuntu1.1]
linux-base-sgx/focal-updates 4.5ubuntu3.6 all [actualizable desde: 4.5ubuntu3.1]
linux-base/focal-updates 4.5ubuntu3.6 all [actualizable desde: 4.5ubuntu3.1]
open-vm-tools/focal-updates 2:11.2.5-2ubuntu1~ubuntu20.04.1 amd64 [actualizable desde: 2:11.0.5-4]
python3-distupgrade/focal-updates 1:20.04.35 all [actualizable desde: 1:20.04.33]
python3.8-minimal/focal-updates,focal-security 3.8.10-0ubuntu1~20.04 amd64 [actualizable desde: 3.8.5-1~20.04.3]
python3.8/focal-updates,focal-security 3.8.10-0ubuntu1~20.04 amd64 [actualizable desde: 3.8.5-1~20.04.3]
ubuntu-release-upgrader-core/focal-updates 1:20.04.35 all [actualizable desde: 1:20.04.33]
abhisheknair@geekflare:~$

Limpiar paquetes no utilizados

Con el uso normal, a veces su sistema puede tener instalados paquetes que ya no son necesarios. Puede ocurrir porque estos paquetes se instalaron como parte de la dependencia de otro paquete que ya se ha eliminado posteriormente aunque las dependencias quedan rezagadas en el sistema. Para limpiar dichos paquetes y liberar algo de espacio en disco puede utilizar:

$ sudo apt autoremove

Ejemplo:

abhisheknair@geekflare:~$ sudo apt autoremove
Leyendo listas de paquetes... Hecho
Construyendo árbol de dependencias
Leyendo información de estado... Hecho
0 actualizados, 0 recién instalados, 0 para eliminar y 0 no actualizados.
abhisheknair@geekflare:~$

Mi sistema no tenía ningún paquete sobrante, por lo que la salida no informó de ningún cambio.

Comprobar las dependencias de los paquetes

Un paquete puede tener una o más dependencias que deben instalarse en un sistema para que el paquete funcione correctamente. apt se asegura de que las dependencias necesarias se instalen como parte de la instalación del paquete. Si desea comprobar las dependencias de un paquete, utilice:

$ apt depends [nombre-del-paquete]

Ejemplo:

abhisheknair@geekflare:~$ apt depends zip
zip
  Depende: libbz2-1.0
  Depende: libc6 (>= 2.14)
  Recomienda: unzip
abhisheknair@geekflare:~$

Reinstalar un paquete

Un paquete puede corromperse o puede que necesite reinstalarlo para asegurarse de que todos los archivos del paquete están en el orden correcto. Para volver a instalar un paquete sin eliminarlo primero puede utilizar:

$ sudo apt reinstall [nombre-del-paquete]

Ejemplo:

abhisheknair@geekflare:~$ sudo apt reinstall unzip
Leyendo la lista de paquetes... Hecho
Construyendo árbol de dependencias
Leyendo información de estado... Hecho
0 actualizados, 0 recién instalados, 1 reinstalados, 0 para eliminar y 0 no actualizados.
Necesita obtener 169 kB de archivos.
Tras esta operación, se utilizarán 0 B de espacio adicional en disco.
Get:1 http://azure.archive.ubuntu.com/ubuntu focal/main amd64 unzip amd64 6.0-25ubuntu1 [169 kB]
Obtenido 169 kB en 0s (5695 kB/s)
(Leyendo base de datos ... 59559 archivos y directorios instalados actualmente)
Preparándose para desempaquetar .../unzip_6.0-25ubuntu1_amd64.deb ...
Desempaquetando unzip (6.0-25ubuntu1) sobre (6.0-25ubuntu1) ...
Configurando unzip (6.0-25ubuntu1) ...
Procesando disparadores para mime-support (3.64ubuntu1) ...
Procesando triggers para man-db (2.9.1-1) ...
abhisheknair@geekflare:~$

Descargar un paquete

Los archivos de paquetes pueden descargarse al sistema de archivos local sin necesidad de instalarlos. Para descargar un paquete con apt, utilice:

$ apt download [nombre-del-paquete]

Ejemplo:

abhisheknair@geekflare:~$ apt download unzip
Get:1 http://azure.archive.ubuntu.com/ubuntu focal/main amd64 unzip amd64 6.0-25ubuntu1 [169 kB]
Obtenido 169 kB en 0s (1405 kB/s)
abhisheknair@geekflare:~$

abhisheknair@geekflare:~$ ls -l unzip_6.0-25ubuntu1_amd64.deb
-rw-r--r-- 1 abhisheknair abhisheknair 168956 16 ago 2019 unzip_6.0-25ubuntu1_amd64.deb
abhisheknair@geekflare:~$

Compruebe el registro de cambios del paquete

Podemos comprobar fácilmente el changelog sobre cualquier paquete con apt utilizando:

$ apt changelog [nombre-del-paquete]

Editar fuentes

el comando edit-sources deapt le permite editar sus archivos sources. list a la vez que proporciona comprobaciones de cordura para asegurar que los cambios son consistentes y válidos. Se trata de un comando en proceso de desarrollo, por lo que debe utilizarse con cuidado. Puede editar sources.list como :

$ sudo apt edit-sources

Obtenga ayuda de APT

Para obtener más ayuda sobre el comando apt, utilice:

$ apt help

Ejemplo:

abhisheknair@geekflare:~$ apt help
apt 2.0.6 (amd64)
Uso: comando apt [opciones 

apt es un gestor de paquetes en línea de comandos y proporciona comandos para
buscar y gestionar así como consultar información sobre paquetes.
Proporciona la misma funcionalidad que las herramientas especializadas APT
como apt-get y apt-cache, pero habilita opciones más adecuadas para
uso interactivo por defecto.

Comandos más utilizados:
  list - lista los paquetes basándose en sus nombres
  search - buscar en las descripciones de los paquetes
  show - mostrar detalles de los paquetes
  install - instalar paquetes
  reinstall - reinstala paquetes
  remove - eliminar paquetes
  autoremove - eliminar automáticamente todos los paquetes no utilizados
  update - actualizar la lista de paquetes disponibles
  upgrade - actualizar el sistema instalando/actualizando paquetes
  full-upgrade - actualizar el sistema eliminando/instalando/actualizando paquetes
  edit-sources - editar el archivo de información de fuentes
  satisfy - satisfacer cadenas de dependencia

Consulte apt(8) para obtener más información sobre los comandos disponibles.
Las opciones de configuración y la sintaxis se detallan en apt.conf(5).
Puede encontrar información sobre cómo configurar los fuentes en sources.list(5).
Las opciones de paquetes y versiones pueden expresarse mediante apt_preferences(5).
Los detalles de seguridad están disponibles en apt-secure(8).
                                        Este APT tiene superpoderes de vaca.
abhisheknair@geekflare:~$

Resumen

la herramientaapt es una útil y potente utilidad de gestión de paquetes basada en CLI para sistemas basados en Debian/Ubuntu. El trabajo diario normal de un administrador de sistemas implica la gestión de paquetes en un sistema y conocer apt y sus comandos de uso común facilita esta tarea.

Para más ayuda sobre apt, consulte su página man.

$ man apt