Conocer la forma en que algunas distribuciones de Linux manejan los paquetes de software, y aprender a utilizar los sistemas de paquetes DPKG y RPM.
Debian fue una de las primeras distros en ofrecer un sistema de paquetes para la instalación, actualización y remoción de software. El sistema de paquetes de software que utiliza se llama Debian Package (dpkg). Éste permite instalar, desinstalar y revisar el software instalado en el equipo, con una alta confiabilidad, y de manera modular.
Se utilizan para ello dos comandos principales: dpkg y apt-get, y un tercero llamado aptitude, de funcionalidad ampliada. El primero es el comando más importante, mientras que el segundo y el tercero son frontends que utilizan dpkg para realizar tareas automáticas como resolver dependencias, instalar y desinstalar, a la vez que simplifican el bajar paquetes desde los repositorios, realizar búsquedas de software y otras tareas habituales.
Por ejemplo, para instalar un paquete previamente descargado, utilizando dpkg:
dpkg -i paquete.deb
Para instalar un paquete con apt-get, el cual se conectará directamente a un repositorio, y realizará también la descarga previa:
apt-get install paquete
La configuración de apt-get se encuentra en /etc/apt. Los repositorios se configuran en el archivo /etc/apt/sources.list y en archivos de texto plano en el directorio /etc/apt/sources.list.d
Por ejemplo, para hacer que apt-get utilice un proxy con el puerto 8080 al bajar los archivos de Internet, se debe agregar la siguiente línea en apt.conf:
Acquire::HTTP::Proxy "http://proxy:8080";
Por ejemplo, para configurar el repositorio de Debian.net en la versión Debian Jessie, así como disponer de los paquetes en “contrib” y “non-free” (paquetes de software adicionales no libres), el archivo sources.list debe quedar como:
deb http://http.debian.net/debian jessie main contrib non-free deb-src http://http.debian.net/debian jessie main contrib non-free deb http://security.debian.org/ jessie/updates main contrib non-free deb-src http://security.debian.org/ jessie/updates main contrib non-free # jessie-updates, previously known as 'volatile' deb http://http.debian.net/debian jessie-updates main contrib non-free deb-src http://http.debian.net/debian jessie-updates main contrib non-free
Una vez creado éste, se debe actualizar el listado de paquetes con apt-get update para poder disponer de ellos.
Para instalar el repositorio Deb Multimedia que agrega gran cantidad de librerías y programas específicos para multimedia, se debe agregar un archivo en /etc/apt/sources.list.d/deb-multimedia.list con el siguiente contenido:
# Deb-multimedia deb http://www.deb-multimedia.org jessie main non-free
Actualizada la base de datos con apt-get update, se dispondrá de una gran cantidad adicional de paquetes de software relacionados con esa temática.
Tareas comunes a realizar son, por ejemplo, encontrado un archivo verificar si es oficial de la distribución o no, o verificar la integridad de los archivos instalados a partir de un paquete.
Buscar a qué paquete pertenece un archivo:
dpkg -S /ruta/al/archivo
Verificar la integridad de los archivos de un paquete, se debe instalar un paquete llamado “debsums” con apt-get install debsums y luego ejecutar:
debsums paquete
aptitude ofrece funcionalidad similar a apt-get, a la vez que permite otras tareas como buscar paquetes. Por ejemplo, para actualizar el listado de paquetes y actualizar todos los que estén instalados y tengan una nueva versión en los repositorios:
aptitude update && aptitude upgrade -V
Para buscar algo en la base de datos de paquetes, sin importar si están instalados o no:
aptitude search "cadena a buscar"
Buscar los paquetes cuyo nombre o descripción tenga la palabra “bash” y además estén instalados:
aptitude search '~i bash'
Mostrar información sobre un paquete:
aptitude show paquete
Purgar los archivos de configuración de todos los paquetes que hayan sido desinstalados:
aptitude purge '~c'
CentOS es un sistema operativo basado en el código fuente de Red Hat Enterprise Linux. El sistema de paquetes de software que utiliza se llama Red Hat Package Manager (RPM). Éste permite instalar, desinstalar y revisar el software instalado en el equipo, con una alta confiabilidad, y de manera modular.
Se utilizan para ello dos comandos principales: rpm y yum. El primero es el comando más importante, mientras que el segundo es un frontend que utiliza rpm para realizar tareas automáticas como resolver dependencias, instalar y desinstalar, a la vez que simplifica el bajar paquetes, realizar búsquedas de software y otras tareas habituales.
Por ejemplo, para instalar un paquete previamente descargado, utilizando rpm:
rpm -iv paquete.rpm
Para instalar un paquete con Yum, el cual se conectará directamente a un repositorio, y realizará también la descarga previa:
yum install paquete
La configuración de Yum se encuentra en /etc/yum.conf. Los repositorios se configuran en archivos de texto plano en /etc/yum.repos.d
Por ejemplo, para hacer que Yum utilice un proxy con el puerto 8080 al bajar los archivos de Internet, se debe agregar la siguiente línea en yum.conf:
proxy=http://proxy.dominio:8080
Para configurar el repositorio de DCArsat, por ejemplo, se debe crear un archivo /etc/yum.repos.d/dcarsat.repo:
[dcarsat] name=dcarsat baseurl=http://mirrors.dcarsat.com.ar/centos/6.5/os/x86_64/ enabled=1 gpgcheck=1 gpgkey=http://mirrors.dcarsat.com.ar/centos/6.5/os/x86_64/RPM-GPG-KEY-CentOS-6
Una vez creado éste, se debe eliminar la caché de Yum con yum clean all para que comience a utilizarlo.
Para instalar los repositorios EPEL (Extra Packages for Enterprise Linux), simplemente se debe ejecutar el comando:
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Hecho esto, se dispondrá de una enorme cantidad adicional de paquetes de software útiles.
Tareas comunes a realizar con rpm son, por ejemplo, encontrado un archivo verificar si es oficial de la distribución o no, o verificar la integridad de los archivos instalados a partir de un paquete.
Buscar a qué paquete pertenece un archivo:
rpm -qf /ruta/al/archivo
Verificar la integridad de los archivos de un paquete:
rpm -Vv paquete