¿QUÉ ES APT-GET?
apt-get es un conjunto de herramientas de línea de comandos que permiten la instalación, eliminación y actualización de paquetes .deb mediante APT (Advanced Package Tool) en sistemas, principalmente, Debian y Ubuntu. Esto simplifica la gestión de paquetes en las distribuciones basadas en Debian.
Probablemente ya sabréis que la famosa distribución GNU/Linux Ubuntu, es una variante de la distribución de GNU/Linux Debian. Los sistemas basados en Debian, emplean el sistema de empaquetado dpkg, que es una manera de distribuir programas y aplicaciones para su instalación sin necesidad de compilarlos desde el código fuente.
APT (Advanced Package Tool) es una herramienta de línea de comandos para interactuar con este sistema de empaquetado. Aunque ya existen comandos dpkg para su gestión, apt proporciona una forma más amigable para manejar los paquetes. Podréis usar los comandos para buscar e instalar nuevos paquetes, actualizar los existentes, limpiar los paquetes instalados etc...
Dentro de APT existen dos herramientas principales: apt-get y apt-cache.
- apt-get se utiliza para instalar, actualizar y limpiar paquetes
- apt-cache sirve para buscar nuevos paquetes.
Aunque existe un comando más reciente llamado apt, en esta guía nos centraremos en la original herramienta apt-get.
apt-get facilita la administración de software.
1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL
- Un PC con GNU/Linux ó sistema basado en paquetes *.deb
- Internet (recomendado)
2.- ACTUALIZAR LA BASE DE DATOS CON APT-GET
El comando apt-get opera fundamentalmente sobre una base de datos que contiene información sobre los paquetes disponibles. Si no actualizamos esta base de datos, el sistema no tendrá conocimiento de la disponibilidad de las versiones más recientes de los paquetes, e incluso puede fallar el proceso de instalación de algunos paquetes. En realidad, este es el primer comando que se debe ejecutar en cualquier sistema Linux basado en Debian tras una instalación nueva.
Para actualizar la base de datos de paquetes, se requieren privilegios de superusuario, por lo que es necesario utilizar el comando sudo:
raul@debian:~$ sudo apt-get update
Cuando ejecutamos este comando, veremos la información que se recupera de varios servidores con el listado de paquetes que estarán disponibles para su posterior instalación.
apt-get update
3.- ACTUALIZAR LOS PAQUETES INSTALADOS
Una vez que hemos actualizado la base de datos de paquetes, podremos actualizar los paquetes instalados. La forma más cómoda es actualizar todos los paquetes que tengan actualizaciones disponibles. Podremos utilizar el siguiente comando:
raul@debian:~$ sudo apt-get upgrade
apt-get upgrade
Si solo queremos actualizar un programa específico, usaremos el siguiente comando:
raul@debian:~$ sudo apt-get upgrade <nombre_paquete>
Existe otra forma de realizar una actualización completa y es utilizando el siguiente comando, aunque lo vamos a ver en pasos posteriores:
raul@debian:~$ sudo apt-get dist-upgrade
4.- DIFERENCIA ENTRE UPGRADE Y DIST-UPGRADE
El comando apt-get upgrade nunca eliminará ningún paquete ni instalará nuevos paquetes por sí solo.
Al contrario, el comando apt-get dist-upgrade, tiene un rol proactivo. Busca dependencias con la versión más reciente del paquete que se está instalando e intenta instalar nuevos paquetes o eliminar los existentes por su cuenta.
Parece que dist-upgrade es la solución ideal, es más potente y más inteligente, pero su utilización conlleva un riesgo mayor que apt-get upgrade.
El comando dist-upgrade tiene un sistema de resolución de conflictos, digamos, "inteligente". Este sistema intentará actualizar los paquetes más importantes, a expensas de los menos importantes. Este sistema puede provocar la eliminación de algunos paquetes que quizás no queramos eliminar. Por eso, no recomiendo hacer un dist-upgrade en máquinas de producción.
5.- DIFERENCIA ENTRE APT-GET UPDATE y APT-GET UPGRADE
Cuando comenzamos a utilizar sistemas basados en Debian, es común confundir estos dos comandos, pero es muy sencillo:
- apt-get update solamente actualiza la lista de paquetes en la base de datos, pero NO actualiza ningún paquete.
- apt-get upgrade en cambio, SI actualiza los paquetes instalados a la nueva versión disponible en el repositorio.
Es por ello que, una de las formas más comunes de proceder a actualizar un sistema basado en paquetes *.deb es con la siguiente combinación de comandos:
raul@debian:~$ sudo apt-get update && apt-get upgrade -y
6.- BUSCAR PAQUETES CON APT-CACHE
Esta es la forma que utilizo yo para realizar la búsqueda de paquetes *.deb. Todo lo que necesitamos hacer es utilizar el siguiente comando (no es necesario sudo):
raul@debian:~$ apt-cache search <búsqueda>
No es necesario saber el nombre exacto del paquete ya que la búsqueda se realiza sobre los nombres y descripciones y se muestran los resultados basados en ese patrón de búsqueda:
apt-cache search
Si solo deseamos es buscar paquetes apt con un nombre de paquete específico, deberemos utilizar el siguiente comando:
raul@debian:~$ apt-cache pkgnames <nombre_paquete>
Con el siguiente comando, buscaremos todos los paquetes cuyo nombre coincida con libreoffice-help:
apt-cache pkgnames
Si queremos obtener información extra acerca de un paquete, utilizaremos el comando:
raul@debian:~$ apt-cache showpkg <nombre_paquete>
apt-cache showpkg
7.- INSTALAR NUEVOS PAQUETES CON APT-GET
Si conocemos el nombre del paquete, podremos instalarlo fácilmente utilizando el siguiente comando:
raul@debian:~$ sudo apt-get install <nombre_paquete>
Simplemente debemos reemplazar <nombre_paquete> con el nombre del paquete que deseamos instalar. Por ejemplo, si queremos instalar el paquete acheck, ejecutaremos el comando:
raul@debian:~$ sudo apt-get install acheck
apt-get install
8.- INSTALAR VARIOS PAQUETES CON APT-GET
Podemos instalar uno, dos, tres o N paquetes a la vez utilizando apt-get. Instalaremos varios paquetes a la vez proporcionando sus nombres de la siguiente forma:
raul@debian:~$ sudo apt-get install <nombre_paquete_1> <nombre_paquete_2> <nombre_paquete_3> <nombre_paquete_4>
Por ejemplo, si queremos instalar los paquetes de php, joe y nmap con un único comando, ejecutaremos:
raul@debian:~$ sudo apt-get install php joe nmap
apt-get install
9.- INSTALAR UNA VERSIÓN ESPECÍFICA
De forma predeterminada, se instalará siempre la última versión disponible en el repositorio. Pero si, por alguna razón, deseamos instalar una versión en concreto, deberemos especificar el número de versión del paquete. (Necesitaremos saber el número de versión exacto que desea instalar).
Todo lo que necesitamos hacer es agregar el número de versión al nombre del paquete:
raul@debian:~$ sudo apt-get install <nombre_paquete_1>=<número_versión>
10.- ELIMINAR PAQUETES INSTALADOS
Para eliminar un paquete instalado con apt-get es tan sencillo como ejecutar el comando de la siguiente manera:
raul@debian:~$ sudo apt-get remove <nombre_paquete>
apt-get remove
Otra forma de desinstalar paquetes es utilizar purgar. El comando se utiliza de la siguiente manera:
raul@debian:~$ sudo apt-get purge <nombre_paquete>
apt-get purge
11.- DIFERENCIA ENTRE REMOVE Y PURGE
Existen unas pequeñas pero importantes diferencias entre apt-get remove y apt-get purge:
- apt-get remove simplemente elimina los binarios de un paquete. No toca los archivos de configuración.
- apt-get purge elimina todo lo relacionado con un paquete, incluidos los archivos de configuración.
Por tanto, si hemos eliminado un programa en particular y luego lo volvemos a instalar, con apt-get remove el sistema tendrá los mismos archivos de configuración. Por supuesto, a la hora de la reinstalación se nos pedirá que anulemos los archivos de configuración existentes.
Al contrario, apt-get purge es útil cuando hemos cometido un error con la configuración de un programa, cuando queremos borrar completamente la instalación y ficheros de configuración, o comenzar de nuevo la instalación desde cero.
En la mayoría de las ocasiones, una simple eliminación con apt-get remove es más que suficiente para desinstalar un paquete.
12.- LIMPIAR EL SISTEMA
Con apt-get también es posible limpiar el sistema de "basura" en el sistema de caché de APT y liberar algo de espacio en el disco.
Los ficheros descargados se almacenan en el directorio /var/cache/apt/archives/.
Por ejemplo, el tamaño que ocupa la caché, en el equipo donde estoy realizando las pruebas es de 607 Megabytes:
raul@debian:~$ sudo du -skh /var/cache/apt/archives/
607M /var/cache/apt/archives/
Ejecutamos el comando para limpiar la cache:
raul@debian:~$ sudo apt-cache clean
Si volvemos a comprobar el tamaño el directorio, veremos que ahora solamente ocupa 72 KiloBytes:
raul@debian:~$ sudo du -skh /var/cache/apt/archives/
72K /var/cache/apt/archives/
Otra forma de limpiar el sistema es utilizar la limpieza automática. A diferencia del comando de limpieza anterior, autoclean solo elimina los archivos de paquetes recuperados que ahora tienen una versión más nueva y, por lo tanto, ya no se usarán.
raul@debian:~$ sudo apt-get autoclean
Otra forma de liberar espacio en disco es utilizar la eliminación automática. Esta forma elimina bibliotecas y paquetes que se instalaron automáticamente para satisfacer las dependencias de otro paquete instalado. Si se elimina un paquete, estos paquetes instalados automáticamente, son inútiles en el sistema. Este comando elimina dichos paquetes innecesarios:
raul@debian:~$ sudo apt-get autoremove
ENJOY!