USANDO EL COMANDO APT EN LINUX
Debian, madre de otras populares distribuciones como Ubuntu, Linux Mint, Elementary OS etc dispone de un robusto sistema de paquetes. Dichos paquetes proporcionan una manera simple de instalar programas y aplicaciones sin tener que recurrir a compilar el código fuente de aquellas aplicaciones que queramos instalar. De hecho. recurrir a la compilación de las fuentes de un determinado programa para instalarlo en nuestra distribución Linux no es la mejor manera de mantener todas las aplicaciones instaladas en nuestro sistema.
En todas estas distribuciones disponemos de APT (Advanced Package Tool). apt es el comando de Shell que permite interactuar con el sistema de paquetes de las distribuciones basadas en Debian.
Para el mismo propósito podríamos utilizar los comandos dpkg, pero APT es mucho más eficiente. Podemos utilizar apt para instalar nuevos paquetes, actualizarlos, borrarlos, etc.
No confundir apt con apt-get. NO son el mismo comando. Apt está sustituyendo de forma progresiva a apt-get y otros comandos, organizando de una forma más lógica y sencilla todas las acciones disponibles para el mantenimiento de paquetes.
Podemos encontrar toda la información en GESTIÓN DE PAQUETES DEBIAN
Veamos a continuación las opciones más habituales.
Actualizar la base de datos de paquetes con apt
Apt trabaja con una base de datos que proporciona toda la información de los paquetes disponibles y sus versiones. Antes de realizar cualquier instalación debemos por norma actualizarla y tenerla a la última versión. Debemos ejecutar dicho comando con privilegios de root, o serlo…
sudo apt update
root@ubu20:/home/demo# apt update Obj:1 http://es.archive.ubuntu.com/ubuntu focal InRelease Obj:2 http://security.ubuntu.com/ubuntu focal-security InRelease Obj:3 http://es.archive.ubuntu.com/ubuntu focal-updates InRelease Obj:4 http://es.archive.ubuntu.com/ubuntu focal-backports InRelease Leyendo lista de paquetes... Hecho Creando árbol de dependencias Leyendo la información de estado... Hecho
Se puede actualizar 1 paquete. Ejecute «apt list –upgradable» para verlo.
Se puede ver en la imagen que tenemos el sistema bastante actualizado. Solo nos indica que hay un paquete que se puede instalar y como verlo:
root@ubu20:/home/demo# apt list --upgradable Listando... Hecho ubuntu-drivers-common/focal-updates 1:0.8.4~0.20.04.3 amd64 [actualizable desde: 1:0.8.1] N: Hay 1 versión adicional. Utilice la opción «-a» para verla
Podemos preguntarnos donde está el o los repositorios de paquetes de los que se alimenta apt update. El fichero /etc/apt/sources.list es el encargado de ello. Contiene referencias a repositorios donde apt update busca la información para mantener actualizada la base de datos de paquetes.
Podemos ver parte del contenido de dicho fichero:
# cat /etc/apt/sources.list #deb cdrom:[Ubuntu 20.04 LTS _Focal Fossa_ - Release amd64 (20200423)]/ focal main restricted # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to # newer versions of the distribution. deb http://es.archive.ubuntu.com/ubuntu/ focal main restricted # deb-src http://es.archive.ubuntu.com/ubuntu/ focal main restricted ## Major bug fix updates produced after the final release of the ## distribution. deb http://es.archive.ubuntu.com/ubuntu/ focal-updates main restricted # deb-src http://es.archive.ubuntu.com/ubuntu/ focal-updates main restricted …
Actualizar los paquetes instalados con apt
Una vez actualizada la base de datos podemos actualizar los paquetes instalados con el siguiente comando:
sudo apt upgrade
root@ubu20:/home/demo# apt upgrade Leyendo lista de paquetes... Hecho Creando árbol de dependencias Leyendo la información de estado... Hecho Calculando la actualización... Hecho Los paquetes indicados a continuación se instalaron de forma automática y ya no son necesarios. libfprint-2-tod1 libllvm9 Utilice «apt autoremove» para eliminarlos. Se actualizarán los siguientes paquetes: ubuntu-drivers-common 1 actualizados, 0 nuevos se instalarán, 0 para eliminar y 0 no actualizados. Se necesita descargar 44,7 kB de archivos. Se utilizarán 9.216 B de espacio de disco adicional después de esta operación. ¿Desea continuar? [S/n]
Tenemos otra opción de hacer una actualización completa de paquetes mediante:
sudo apt full-upgrade
full-upgrade trabaja similar a upgrade salvo que si la actualización del sistema necesita eliminar algún paquete instalado del sistema, full-upgrade lo hará.
Una forma de hacer la actualización de paquetes en una sola línea es utilizando el siguiente comando:
sudo apt update && sudo apt upgrade -y
Aquí utilizamos la capacidad de ejecutar consecutivamente comandos de linux con &&, y añadimos el parámetro -y responder afirmativamente a cualquier pregunta que la actualización del sistema proponga.
root@ubu20:/home/demo# apt update && apt upgrade -y Obj:1 http://es.archive.ubuntu.com/ubuntu focal InRelease Des:2 http://es.archive.ubuntu.com/ubuntu focal-updates InRelease [111 kB] Des:3 http://security.ubuntu.com/ubuntu focal-security InRelease [107 kB] Des:4 http://es.archive.ubuntu.com/ubuntu focal-backports InRelease [98,3 kB] Descargados 317 kB en 1s (402 kB/s) Leyendo lista de paquetes... Hecho Creando árbol de dependencias Leyendo la información de estado... Hecho Se puede actualizar 1 paquete. Ejecute «apt list --upgradable» para verlo. Leyendo lista de paquetes... Hecho Creando árbol de dependencias Leyendo la información de estado... Hecho Calculando la actualización... Hecho Los paquetes indicados a continuación se instalaron de forma automática y ya no son necesarios. libfprint-2-tod1 libllvm9 Utilice «apt autoremove» para eliminarlos. Se actualizarán los siguientes paquetes: ubuntu-drivers-common 1 actualizados, 0 nuevos se instalarán, 0 para eliminar y 0 no actualizados. Se necesita descargar 44,7 kB de archivos. Se utilizarán 9.216 B de espacio de disco adicional después de esta operación. Des:1 http://es.archive.ubuntu.com/ubuntu focal-updates/main amd64 ubuntu-drivers-common amd64 1:0.8.4~0.20.04.3 [44,7 kB] Descargados 44,7 kB en 0s (95,9 kB/s) Preconfigurando paquetes ... (Leyendo la base de datos ... 186158 ficheros o directorios instalados actualmente.) Preparando para desempaquetar .../ubuntu-drivers-common_1%3a0.8.4~0.20.04.3_amd64.deb ... Desempaquetando ubuntu-drivers-common (1:0.8.4~0.20.04.3) sobre (1:0.8.1) ... Configurando ubuntu-drivers-common (1:0.8.4~0.20.04.3) ...
Es interesante destacar la información que aparece en el inicio de cada línea:
Obj:1 http://es.archive.ubuntu.com/ubuntu focal InRelease
Des:2 http://es.archive.ubuntu.com/ubuntu focal-updates InRelease [111 kB]
Des:3 http://security.ubuntu.com/ubuntu focal-security InRelease [107 kB]
Nos indica con Obj, Ign o Des si en la versión del paquete no hay cambios respecto a la versión anterior, si el paquete es ignorado por ser demasiado reciente y ni siquiera se molesta en verificarlo (no es un error) o hay una nueva versión y se la descarga.
Instalar nuevos paquetes con APT
Para instalar un nuevo paquete en el sistema debemos ejecutar el siguiente comando:
apt install <nombre del paquete>
Recordemos previamente tener actualizado el sistema de paquetes con apt update
Instalemos algunas herramientas imprescindibles:
- Instalar el famoso gestor de archivos del sistema Mignight Commander:
# apt installt mc Instalamos MC
# mc Ejecutamos el comando
- Instalemos el famoso escáner de puertos nmap:
# apt intall nmap Instalamos nmap
# nmap -version Vemos la versión instalada
- Para localizar archivos en el sistema:
# apt install locate Instalamos locate
# updatedb Actualizamos Base datos archivos sistema
# locate nmap Localizamos ruta del fichero nmap
- Instalar java en nuestro Ubuntu 20.04 (si no está previamente instalado):
$ sudo apt update Actualizamos paquetes
$ java -version Vemos si ya tenemos java instalado
$ apt install default-jre Instalamos Java Runtime Environment (JRE)
$ java -version Vemos la versión instalada
$ apt install default-jdk Instalamos kit desarrollo Java (JDK)
$ javac -version Vemos si ya tenemos java instalado
Instalar nuevos paquetes con APT repositorios de terceros
En alguna ocasión será necesario instalar en nuestra máquina algún paquete no incluido en los repositorios por defecto de la distribución de linux que tengamos instalada. Recordemos que dichos repositorios están dentro del fichero:
/etc/apt/sources.list
Veamos un ejemplo instalando Webmin, una interfaz gráfico basado en Web para Unix. Los pasos son los siguientes:
- Editamos el fichero /etc/apt/sources.list el repositorio de webmin con nano o editor similar:
# nano /etc/apt/sources.list
- Añadimos al final del fichero /etc/apt/sources.list el repositorio de Webmin y guardamos los cambios:
… deb http://download.webmin.com/download/repository sarge contrib
- Actualizamos el sistema:
# apt update
- Añadimos la clave PGP de Webmin con wget para que apt pueda verificar la integridad de dicho repositorio al descargar la herramienta
wget -q -O- http://www.webmin.com/jcameron-key.asc | sudo apt-key add
- Actualizamos de nuevo el sistema sistema:
# apt update
- Instalamos el paquete Webmin
# apt install webmin
Podemos ver un listado de claves instaladas para apt con la orden apt-key list:
demo@ubu20:~$ apt-key list /etc/apt/trusted.gpg.d/ubuntu-keyring-2012-archive.gpg ------------------------------------------------------ pub rsa4096 2012-05-11 [SC] 790B C727 7767 219C 42C8 6F93 3B4F E6AC C0B2 1F32 uid [desconocida] Ubuntu Archive Automatic Signing Key (2012) <ftpmaster@ubuntu.com> /etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cdimage.gpg ------------------------------------------------------ pub rsa4096 2012-05-11 [SC] 8439 38DF 228D 22F7 B374 2BC0 D94A A3F0 EFE2 1092 uid [desconocida] Ubuntu CD Image Automatic Signing Key (2012) <cdimage@ubuntu.com> /etc/apt/trusted.gpg.d/ubuntu-keyring-2018-archive.gpg ------------------------------------------------------ pub rsa4096 2018-09-17 [SC] F6EC B376 2474 EDA9 D21B 7022 8719 20D1 991B C93C uid [desconocida] Ubuntu Archive Automatic Signing Key (2018) ftpmaster@ubuntu.com
Instalar múltiples paquetes con apt
Podemos instalar varios paquetes de una sola vez con apt. Del ejemplo anterior si queremos instalar simultáneamente los paquetes mc, locate y nmap basta con teclear el comando:
# apt install mc locate nmap
Si intentamos instalar un paquete que ya está instalado en nuestro sistema, apt realizará un upgrade de dicho paquete pasando a tener la última versión del mismo.
Si por alguna razón quieres volver a instalar un paquete que ya existe ( pero por ejemplo falla por algún motivo ) pero no quieres que apt lo actualice a la última versión disponible, sino que mantenga la actual basta con ejecutar;
# apt install mc –no-upgrade
Borrar paquetes instalados con apt
Eliminar un paquete instalado es muy fácil. Basta con ejecutar la orden apt remove:
# apt remove mc
Podemos utilizar también apt purge:
# apt purge mc
¿Cuál es la diferencia entre remove y purge?
Pues que apt remove elimina solamente el paquete, mientras que apt purge elimina el paquete y los ficheros de configuración del mismo que haya en el sistema. Típicamente suelen estar en /etc/
Ver el contenido de un paquete con apt
Podemos objeter más información del paquete antes de instalarlo con
# apt show <nombre del paquete>
demo@ubu20:~$ apt show mc Package: mc Version: 3:4.8.24-2ubuntu1 Priority: optional Section: universe/utils Origin: Ubuntu Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Original-Maintainer: Dmitry Smirnov <onlyjob@debian.org> Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 1.501 kB Provides: mcedit Depends: libc6 (>= 2.15), libext2fs2 (>= 1.37), libglib2.0-0 (>= 2.59.2), libgpm2 (>= 1.20.7), libslang2 (>= 2.2.4), libssh2-1 (>= 1.2.8), mc-data (= 3:4.8.24-2ubuntu1) Recommends: mime-support, perl, unzip Suggests: arj, bzip2, catdvi | texlive-binaries, dbview, djvulibre-bin, epub-utils, file, genisoimage, gv, imagemagick, libaspell-dev, links | w3m | lynx, odt2txt, poppler-utils, python, python-boto, python-tz, xpdf | pdf-viewer, zip Homepage: https://www.midnight-commander.org
Listar los paquetes que pueden ser actualizados
Bastará con utilizar la orden apt list. Ojo, no instala nada, solo nos indica cuales pueden ser actualizados.
# apt list –upgradeable
demo@ubu20:~$ sudo apt list --upgradeable Listando... Hecho gdb/focal-updates 9.2-0ubuntu1~20.04 amd64 [actualizable desde: 9.1-0ubuntu1] gdbserver/focal-updates 9.2-0ubuntu1~20.04 amd64 [actualizable desde: 9.1-0ubuntu1] libsane-common/focal-updates,focal-updates 1.0.29-0ubuntu5.2 all [actualizable desde: 1.0.29-0ubuntu5.1] libsane/focal-updates 1.0.29-0ubuntu5.2 amd64 [actualizable desde: 1.0.29-0ubuntu5.1] sane-utils/focal-updates 1.0.29-0ubuntu5.2 amd64 [actualizable desde: 1.0.29-0ubuntu5.1]
Listar todos los paquetes instalados en el sistema
Para listar todos los paquetes instalados basta con usar la orden:
# apt list –installed
demo@ubu20:~$ sudo apt list --installed Listando... Hecho accountsservice/focal-updates,now 0.6.55-0ubuntu12~20.04.1 amd64 [instalado, automático] acl/focal,now 2.2.53-6 amd64 [instalado, automático] acpi-support/focal,now 0.143 amd64 [instalado, automático] acpid/focal,now 1:2.0.32-1ubuntu1 amd64 [instalado, automático] adduser/focal,focal,now 3.118ubuntu2 all [instalado, automático] adwaita-icon-theme/focal-updates,focal-updates,now 3.36.1-2ubuntu0.20.04.2 all [instalado, automático]
Ver si un paquete está instalado en el sistema con apt
Basta con ejecutar la orden
# apt list <nombre del paquete>
demo@ubu20:~$ apt list locate Listando... Hecho locate/focal,now 4.7.0-1ubuntu1 amd64 [instalado] locate/focal 4.7.0-1ubuntu1 i386 demo@ubu20:~$ apt list mc Listando... Hecho mc/focal,now 3:4.8.24-2ubuntu1 amd64 [instalado] demo@ubu20:~$ apt list nmap Listando... Hecho nmap/focal 7.80+dfsg1-2build1 amd64