En este post trataré de abreviar algunos tips de esta gran herramienta para gestionar paquetes en GNU/Linux.
APT:
Advanced Packaging Tool (Herramienta Avanzada de Empaquetado), abreviado APT, es un sistema de gestión de paquetes creado por el proyecto Debian. APT simplifica en gran medida la instalación y eliminación de programas en los sistemas GNU/Linux.
No existe un programa apt en sí mismo, sino que APT es una biblioteca de funciones C++ que se emplea por varios programas de línea de comandos para distribuir paquetes. En especial, apt-get y apt-cache.
Existen también programas que proporcionan un frontispicio para APT, generalmente basados en apt-get, como aptitude con una interfaz de texto ncurses, Synaptic con una interfaz gráfica GTK+ , o Adept con una interfaz gráfica Qt . Existe un repositorio central con más de ~25.000 paquetes apt utilizados por apt-get y programas derivados para descargar e instalar aplicaciones directamente desde Internet, conocida como una de las mejores cualidades de Debian.
APT fue rápidamente utilizado para funcionar con paquetes .deb, en los sistemas Debian y distribuciones derivadas, pero desde entonces ha sido modificado para trabajar con paquetes RPM, con la herramienta apt-rpm, y para funcionar en otros sistemas operativos, como Mac OS X (Fink) y OpenSolaris (distribución Nexenta OS).
Instalando paquetes
Instalar paquetes .deb local (en nuestro disco duro)
invocaremos a dpkg:
dijo:# dpkg -i nombre-de-paquete.deb[/quote]
Si en cambio tenemos varios paquetes .deb en un directorio:
dijo:# dpkg -i *.deb[/quote]
El asterisco indica que se instalen todos los .deb dentro de ese directorio
Los paquetes traen archivos de configuración, normalmente con extensión .conf, que se ubican habitualmente bajo /etc/<paquete>. Al reconfigurar/reinstalar/actualizar un paquete, si los archivos .conf han sido modificados no se reinstalarán. Para obligar a que se sobreescriban haremos:
dijo:# dpkg -i -force-confnew <paquete-versión.deb>[/quote]
Atención, dpkg no instala las dependencias, tendremos que hacerlo manualmente.
La interfaz gráfica para instalar paquetes de manera local es GDebi
una vez instalada solo debemos llamarlo con el comando:
dijo:gdebi-gtk[/quote]
El mejor sistema para instalar un paquete con sus dependencias es Aptitude . Tiene en cuenta todas las dependencias (depende, sugiere, recomienda...) y las recuerda al desinstalar.
También podemos utilizar apt-get: es más rápido, pero sólo tiene en cuenta los depende:
dijo:# apt-get install <paquete>[/quote]
Para reparar enlaces rotos usaremos la opción -f, que impide que queden dependencias sin cumplir (repetiremos hasta que deje de dar errores):
dijo:# apt-get -f install <paquete>[/quote]
Eliminando paquetes
si ya no necesitás utilizar cierto paquete, podés eliminarlo de su sistema utilizando apt. para realizar esta tarea sólo escribe: apt-get remove paquete. por ejemplo:
dijo: # apt-get remove gnome-panel[/quote]
dijo:Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
gnome-applets gnome-panel gnome-panel-data gnome-session
0 packages upgraded, 0 newly installed, 4 to remove and 1 not upgraded.
Need to get 0B of archives. After unpacking 14.6MB will be freed.
Do you want to continue? [Y/n][/quote]
como se puede apreciar en el ejemplo anterior, apt se hace cargo de eliminar los paquetes dependientes del paquete eliminado. no hay manera de eliminar un paquete utilizando apt sin eliminar los paquetes que éste necesitaba.
ejecutando apt-get como en el ejemplo causará que los paquetes sean eliminados, pero sus archivos de configuración, si existían, permanecerán intactos en el sistema. para una eliminación completa del paquete, ejecuta:
dijo: # apt-get --purge remove gnome-panel[/quote]
dijo:Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
gnome-applets* gnome-panel* gnome-panel-data* gnome-session*
0 packages upgraded, 0 newly installed, 4 to remove and 1 not upgraded.
Need to get 0B of archives. After unpacking 14.6MB will be freed.
Do you want to continue? [Y/n][/quote]
observa el "*" después de los nombres. esto indica que los archivos de configuración de cada paquete serán eliminados también.
Se puede utilizar un símbolo con la opción de "remove" para invertir el significado de un paquete en especial. en el caso de la eliminación, si agrega un "+" después del nombre del paquete, el paquete será instalado en vez de eliminarlo.
dijo: # apt-get --purge remove gnome-panel nautilus+[/quote]
dijo:Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
bonobo libmedusa0 libnautilus0 nautilus
The following packages will be REMOVED:
gnome-applets* gnome-panel* gnome-panel-data* gnome-session*
The following NEW packages will be installed:
bonobo libmedusa0 libnautilus0 nautilus
0 packages upgraded, 4 newly installed, 4 to remove and 1 not upgraded.
Need to get 8329kB of archives. After unpacking 2594kB will be used.
Do you want to continue? [Y/n][/quote]
observa que apt-get enlista los paquetes que serán instalados aparte de los seleccionados (esto es, aquellos que su instalación es necesaria para el funcionamiento de aquellos que son seleccionados), aquellos que serán eliminados, y aquellos que serán instalados (incluyendo los paquetes adicionales otra vez).
Eliminando archivos de paquete no utilizados: apt-get clean y autoclean.
cuando apt instala un paquete, descarga los archivos necesarios de los servidores enlistados en /etc/apt/sources, estos a su vez son guardados en un depósito local (/var/cache/apt/archives/), y de ahí se procede con la instalación
con el tiempo el depósito puede crecer y ocupar mucho espacio en disco. afortunadamente, apt provee de herramientas para manejar su depósito local: apt-get, clean y autoclean.
apt-get clean elimina todo excepto los archivos "lock" de /var/cache/apt/archives/ y /var/cache/apt/archives/partial/. así, si necesita reinstalar un paquete apt, lo descargará de nueva cuenta.
apt-get autoclean elimina sólo los archivos que no pueden ser descargados de nuevo.
el siguiente ejemplo muestra como funciona la autolimpieza de apt-get:
dijo:# ls /var/cache/apt/archives/logrotate* /var/cache/apt/archives/gpm*[/quote]
dijo:logrotate_3.5.9-7_i386.deb
logrotate_3.5.9-8_i386.deb
gpm_1.19.6-11_i386.deb[/quote]
en /var/cache/apt/archives hay dos archivos para el paquete logrotatey uno para gpm.
dijo: # apt-show-versions -p logrotate[/quote]
dijo: logrotate/stable uptodate 3.5.9-8[/quote]
dijo: # apt-show-versions -p gpm[/quote]
dijo:gpm/stable upgradeable from 1.19.6-11 to 1.19.6-12[/quote]
apt-show-versions muestra que logrotate_3.5.9-8_i386.deb provee la versión actualizada de of logrotate, así pues logrotate_3.5.9-7_i386.deb es innecesario. también gpm_1.19.6-11_i386.deb no es necesario debido a que una versión mas reciente puede ser descargada.
dijo: # apt-get autoclean[/quote]
dijo:Reading Package Lists... Done
Building Dependency Tree... Done
Del gpm 1.19.6-11 [145kB]
Del logrotate 3.5.9-7 [26.5kB][/quote]
finalmente, apt-get autoclean elimina los archivos viejos. consulte cómo actualizar paquetes de versiónes específicas de debian
Apt-CACHE
Buscar un paquete en los repositorios, se puede especificar un patrón, expresión regular, el nombre exacto del paquete, etc:
# apt-cache search <paquete>
Mostrar información sobre un paquete específico (nombre del paquete, versión, dependencias…):
# apt-cache showpkg <paquete>
Mostrar información del paquete incluyendo la descripción, información del paquete como su sitio web, página de bugs…
# apt-cache show <paquete>
Mostrar dependencias de un paquete:
# apt-cache depends <paquete>
Mostrar los nombres de todos los paquetes instalados en el sistema:
# apt-cache pkgnames