raspberry-pi-instalar-actualizar-programas-apt

Cómo instalar y actualizar programas con APT en Raspberry Pi

Ahora que hemos aprendido a instalar un sistema operativo en nuestra Raspberry Pi, ahora tenemos que aprender a instalar y actualizar programas con la ayuda de APT.

Lógicamente, como en cualquier otro ordenador, vamos a necesitar instalar programas. En los sistemas basados en Linux, habitualmente, esta labor se realiza a través de un gestor de paquetes (por supuesto, Raspbian en Raspberry Pi no es una excepción).

Si no estáis acostumbrados a la instalación de software en sistemas basados en Unix (como Linux) hay ciertos conceptos relativos a la instalación de software que pueden resultar chocantes o confusos en un primer momento.

Por eso, antes de entrar en materia y ver cómo instalar y actualizar software con APT, vamos a dedicar un momento a explicar estos conceptos de forma resumida.

Paquetes, dependencias y repositorios

El sistema de instalación habitual en sistemas Linux es emplear un gestor de paquetes. Esto puede parecernos extraño si estamos acostumbrados a la instalación a través de instaladores, como ocurre en el caso de Windows.

Como sabemos, un instalador es un ejecutable que instala (evidente ¿no?) de un software. El instalador lo realiza el desarrollador del software y puede seguir uno de los muchos “estándar” o ninguno en absoluto. En general, el instalador se encarga únicamente de la integridad del software que instala.

En el caso de Linux el mecanismo de instalación del software está integrado en el sistema operativo. Este sistema centralizado emplea una única base de datos local, y verifica, administra y mantiene la integridad de todos los paquetes del sistema.

Veremos que hablamos continuamente de ‘paquetes’. En resumen, un paquete es un archivo que contiene la estructura necesaria para instalar, actualizar y desinstalar un determinado software de forma cómoda y segura.

Cada uno de los paquetes puede tener dependencias, que son otros softwares o paquetes que requiere para funcionar correctamente. Por ejemplo, esto incluye componentes y librerías y, normalmente, en una versión determinada (o un rango de ellas).

Gestionar los paquetes y sus dependencias de forma manual requeriría muchísimo trabajo. Por este motivo, los paquetes están pensados para funcionar dentro de un sistema de paquetes (por supuesto, como casi siempre en Linux, existe más de un sistema de paquetes).

En general, cada distribución de Linux emplea de forma predeterminada un sistema de paquetes. Así, entre otros, tenemos

  • DPKG para sistemas basados en Debian (Ubuntu, Raspbian)
  • RPM para sistemas basados en RedHat (Fedora, CentOS)
  • PACMAN para sistemas basados en ArchLinux

Por otro lado tenemos gestores de paquetes. Estos son programas que simplifican al usuario la interacción con un sistema de paquetes. Así, por ejemplo,

  • Para DKPG (Debian y derivados) tenemos APT
  • Para RPM tenemos YAST (SuSe), YUM (Fedora y CentOS) o URPMI (Mandriva) entre otros muchos.

¿De dónde se obtenemos los paquetes? Aquí es donde entran en lugar los repositorios. De forma sencilla, los repositorios son servidores destinados a alojar paquetes, de uno o de muchos softwares.

Los repositorios “principales” son mantenidos por los desarrolladores de cada distribución de Linux, y la comunidad que los apoya. Pero también existen otros repositorios “adicionales” creados y mantenidos por los desarrolladores de determinados software.

Únicamente debemos emplear repositorios de confianza. De lo contrario, nos exponemos a instalar malware en nuestro sistema

El gestor APT

Y por fin llegamos a APT. Como hemos dicho, los sistemas basados en Debian (como Raspbian) emplean el sistema de paquetes DPGK para la instalación y actualización de software. La extensión de estos paquetes es ‘.deb’.

Por su parte, APT (Advanced Packaging Tool) es el gestor del sistema de paquetes empleado por defecto en sistemas basados en Debian. APT simplifica el uso del sistema DPGK al usuario.

APT está formado por una serie de utilidades y bibliotecas desarrolladas en C y bash. De entre ellas la más empleada es APT-GET y, en menor medida, APT-CACHE y APT-FILE.

Ahora vamos algunas de las funciones más usadas del gestor de paquetes APT.

Cómo usar APT

Instalar paquetes

Instalar paquetes con APT es muy sencillo. Simplemente tenemos que ejecutar el comando ‘install’ desde la consola de comandos

sudo apt-get install paquete

Siendo “paquete” el nombre del paquete que queremos instalar. En la mayoría de los casos el nombre del paquete lo obtendremos de la documentación del desarrollador, que expondrá el comando a ejecutar para la instalación.

raspberry-pi-apg-get-install

Antes de instalar un paquete y sus dependencias, APT nos pide confirmación y deberemos responder pulsando ‘y’ para instalar. Esto es habitual en la mayoría de comandos de APT. Si queremos que no pregunte podemos añadir el parámetro ‘-y’ de la siguiente forma:

sudo apt-get -y install paquete

A medida que instalemos paquetes, el espacio libre en nuestra tarjeta SD va a disminuir. Para comprobar el espacio disponible podemos usar el comando ‘df’:

df –h

raspberry-pi-apg-get-dfh

Buscar paquetes

También es posible buscar un paquete por su nombre. Esta búsqueda se realiza contra el cache local guardado por APT. Por tanto, para realizar la búsqueda empleamos el comando:

sudo apt-cache search paquete

APT nos mostrará un listado con todos los paquetes que contentan la palabra que hemos buscado.

raspberry-pi-apg-get-search

Eliminar paquetes

Para eliminar un paquete previamente instalado del sistema, tenemos dos opciones. La más “conservadora” es el comando ‘remove’, que elimina el paquete pero no los archivos de configuración ni las dependencias del mismo.

sudo apt-get remove paquete

Para eliminar un paquete por completo, incluido ficheros de configuración y dependencias, podemos añadir el parámetro ‘—purge’ o emplear directamente el comando ‘purge’. Por tanto, los dos comandos siguientes son equivalentes:

sudo apt-get purge paquete
sudo apt-get remove --purge paquete

Actualizar paquetes

Una de las operaciones para las que usaremos APT con más frecuencia es realizar la actualización de los paquetes que tenemos instalados. Actualizar nuestro software es importante tanto para obtener nuevas funciones, como para solventar posibles errores de seguridad.

En APT el proceso de actualización se realiza en dos pasos. Por un lado, el comando ‘update’ actualiza el cache de paquetes local. Busca nuevos cambios, comparando con la información contenida en los repositorios, pero no descarga ni instala ningún paquete.

sudo apt-get update

raspberry-pi-apg-get-update

Para realizar realmente la instalación de los paquetes actualizados, que previamente hemos determinado cuales son con el comando ‘update’, empleamos el comando ‘upgrade’.

sudo apt-get upgrade

raspberry-pi-apg-get-upgrade

Estos dos comandos se usan normalmente de forma conjunta, uno a continuación del otro. Si queremos lanzarlos directamente con un único comando podemos usar:

sudo apt-get -y update && sudo -y apt-get upgrade

Limpiar sistema APT

A medida que el tiempo pasa y actualizamos el software, ocurrirá que ciertos archivos se irán quedando obsoletos. Para evitar pérdidas innecesarias de espacio, conviene hacer ciertas tareas de mantenimiento periódicamente.

En primer lugar, tenemos el comando ‘autoremove’. Este desinstala los paquetes que fueron instalados como dependencias de otros paquetes, pero que actualmente ya no son requeridos (por ejemplo, porque la nueva versión del paquete ya no las usa). Por tanto estos paquetes ya no son necesarios y pueden ser desinstalados.

sudo apt-get -y autoremove 

Por otro lado, también ocurre que la información almacenada en el cache local va quedando obsoleta. Estos ficheros se guardan en /var/cache/apt/archives/ y /var/cache/apt/archives/partial/.

Para evitar que crezca innecesariamente tenemos más herramientas de mantenimiento. Remarcar que no desinstalan software instalado, únicamente limpian los ficheros del cache local de APT.

Así, para limpiar el fichero de cache local tenemos el comando ‘autoclean’. Este elimina los paquetes descargados que, actualmente, ya no pueden ser descargados de los repositorios. Esto significa que estos paquetes son obsoletos y pueden ser eliminados.

sudo apt-get autoclean

Por último tenemos el comando ‘clean’ que elimina todos los paquetes que hemos descargados del cache local. Suele usarse menos que el anterior por ser más ‘agresivo’.

sudo apt-get clean

Frecuentemente se emplea de forma conjunta los comandos ‘autoremove’ y ‘autoclean’, que podemos juntar en un único comando:

sudo apt-get -y autoremove && sudo apt-get autoclean

Añadir un repositorio

Como hemos dicho APT busca los paquetes en repositorios. Las direcciones de los repositorios se configuran en listas guardadas en nuestro ordenador. En Raspbian estas listas se guardan en

  • /etc/apt/sources.list
  • /etc/apt/sources.list.d/raspi.list

Podemos añadir o eliminar repositorios editando estas listas. O, si simplemente podemos añadir un repositorio, podemos usar el siguiente comando directamente:

sudo sh -c 'echo repositorioURL' >> /etc/apt/sources.list

Por supuesto, únicamente debemos añadir repositorios seguros, como el de los desarrolladores de nuestra distribución o los de software de confianza. De lo contrario corremos un gran riesgo de instalar malware en nuestro sistema.

Hasta aquí el tutorial de instalación, desinstalación y actualización de software con APT en Raspbian. En la próxima entrada de tutoriales de Raspberry Pi veremos cómo actualizar el propio sistema Raspian cuando haya una nueva versión, para lo cual usaremos (¡adivinad!) efectivamente el gestor de paquetes APT.