Linux – apt-get

por | 14 noviembre, 2004

Introducción

En Linux, a diferencia de otros sistemas como Windows, todo el software está modularizado o dividido en elementos menores. Una aplicación potente o más o menos compleja es el conjunto de aplicaciones más pequeñas, librerías y archivos auxiliares, dependientes unos de otros. Estos pequeños elementos de software suelen estar compilados y paquetizados para su instalación directa, por lo que normalmente no necesitaremos compilar fuentes para la instalación de software.

Un paquete puede requerir la instalación de uno o más paquetes que, a su vez, pueden necesitar de la instalación de otros. Del mismo modo un paquete de software, por ejemplo una librería, puede ser requerida por varios paquetes distintos. Todo esto supone una maraña de dependencias que puede llegar a ser compleja de administrar manualmente. Para facilitar la instalación del software en Linux y resolver el problema de las dependencias se crearon varios sistemas de instalación de paquetes. Los dos más potentes y extendidos son el rpm de Red Hat y el deb de Debian.

Los desarrolladores de Debian crearon inicialmente el programa dpkg para la instalación y administración de paquetes. Un problema con el comando dpkg es que no resuelve dependencias, las enumera, pero no las resuelve. Los desarrolladores de Debian solucinaron el problema con la creación de repositorios de paquetes y del programa apt-get. Un repositorio es simplemente un directorio (generalmente en Internet o CD-ROM) donde se encuentran los paquetes que los desarrolladores de Debian crean. Los repositorios poseen tres ramas, las ramas identifican el tipo de licencia de los paquetes:

  1. main: es donde se encuentran la gran mayoría de los paquetes, todos los paquetes de esta rama son paquetes de código abierto cuya licencia es compatible con las estipuladas por la Free Software Foundation.
  2. contrib: son paquetes de contribución, muchos de estos paquetes son de código abierto, pero su licencia no es compatible con las de la FSF
  3. non-free: son paquetes de licencia propietaria aunque se pueden usar gratis por tiempo indefinido.

En Debian existen asimismo tres ramas de desarrollo: estable (stable), de pruebas (testing) e inestable (unstable).

Las source-list

En Debian, los paquetes se gestionan a través de una base de datos de paquetes disponibles. Existe un fichero donde se definen las “fuentes de paquetes”, es decir, el sitio desde donde podemos descargar los paquetes. El fichero es:

/etc/apt/sources.list

En este archivo hay varios tipos de entradas (deb, deb-src y deb-cdrom).

La estructura general de cada entrada e:

Tipo de fuente Dirección del repositorio Rama de desarrollo Tipo de licencia
bebdeb-srcDeb-cdrom http://ftp:// stabletestingunstable maincontribnon-free

Las entradas “deb” indican una fuente de paquetes binarios. Ejemplos típicos son:
La entradas “deb-src” indican código fuente, es decir, que no son paquetes binarios.
Las entradas “deb-cdrom” indican como fuente a un CD-ROM. Estas entradqas aparecerás típicamente después de una instalación desde CD.

Veamos un ejemplo típico de source.list:

deb http://ftp.es.debian.org/debian unstable main non-free contrib
deb http://ftp.es.debian.org/debian-non-US unstable/non-US main contrib non-free
deb ftp://ftp.kde.org/pub/kde/stable/3.0.3/Debian/ ./
deb http://www.linux-debian.de/openoffice/mirrors.html
deb-src http://http.es.debian.org/debian unstable main contrib non-free
deb-src http://non-us.debian.org/debian-non-US unstable non-US
deb-cdrom …

Uso de apt

Los comandos apt son los siguientes:

apt-cache
apt-extracttemplates
apt-setup
apt-cdrom
apt-ftparchive
apt-show-versions
apt-config
apt-get
apt-sortpkgs

El más importante es apt-get el cual consulta el archivo /etc/apt/sources.list, compara los paquetes contenidos del repositorio que allí se indica y ejecuta las opciones que se le indiquen: instalar, borrar, actualizar, etc. apt-get resuelve las dependencias e instala los paquetes necesarios para que una aplicación funcione.

El paquete deborphan nos sirve para remover los paquetes inútiles que se han ido acumulando en nuestro disco, estos paquetes «colgados» (generalmente librerías auxiliares de extraños nombres) fueron dependencias que se instalaron con algún paquete principal y luego no fueron removidas. Instale deborphan y posteriormente ejecute el siguiente comando para remover los paquetes colgados de su equipo (note las comillas inclinadas):

#apt-get –purge remove `deborphan`

Comandos habituales de apt.

  • apt-get install paquete (Instalamos un paquete)
  • apt-get remove [–purge] (Borramos un paquete, el –purge borraría también los ficheros de configuración del paquete, esto es opcional).
  • apt-get update (Actualizamos las descripciones de los paquetes que hay en la base de datos local. Sirve para comprobar si hay paquetes nuevos)
  • apt-get upgrade (Actualizamos todos los paquetes instalados a la últim versión)
  • apt-get dist-upgrade (Actualizamos todo entre ramas de desarrollo)
  • apt-get -u dist-upgrade (Con -u vemos TODOS los paquetes a actualizar)
  • apt-get clean|autoclean (Limpiamos la caché local de paquetes)
  • apt-get –reinstall install (Reinstalar un paquete ya instalado)
  • apt-get install PAQUETE/unstable (Instalar un paquete de otra rama)
  • apt-get -t unstable install PAQUETE (Similar al anterior)
  • apt-cache show paquete (Muestra una descripción del paquete)
  • apt-cache search cadena (Busca la «cadena» en la base de datos)
    • apt-cache stats (Muestra estad´ısticas sobre apt-cache)
    • apt-cache showpkg (Muestra información sobre el paquete)
    • apt-cache depends (Muestra de qué paquetes depende un paquete)
    • apt-cdrom add (Añade una fuente desde un CD-ROM)
    • apt-setup Sirve para añadir fuentes para «sources.list» a través de diálogos.
    • “apt-show-versions -u” Nos muestra las versiones a las que nos podemos actualizarEl paquete APT-file nos permite buscar en los ficheros de la base de datos de apt, en busca de NOMBRES DE FICHEROS, algo que no podemos hacer con las opciones antes comentadas:
    • apt-get install apt-fileapt-file update
  • apt-file search fichero (Busca qué paquetes tienen ese fichero)
  • apt-file list paquete (Lista los ficheros de ese paquete, aunque no esté instalado)

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *