Aptitud vs. apt-get: ¿Cuál es la herramienta recomendada (aka la "derecha") para usar?

Hace algún tiempo leí que aptitude es la herramienta preferida para la instalación en sistemas basados ​​en Debian. Pero cuando se investiga cómo administrar un sistema basado en Debian, la aptitud rara vez se menciona. La mayoría de las personas parecen preferir apt-get – y eso es incluso cierto para las páginas wiki de Debian!

Así que me pregunto si he perdido algo. ¿Cuál es la herramienta correcta para usar?

aptitude y apt-get funcionan igual para muchas tareas, pero para los casos más difíciles, como las actualizaciones de distribución ( apt-get dist-upgrade vs. aptitude full-upgrade ), tienen reglas diferentes y las reglas de aptitude casi siempre son mejores En la práctica donde no están de acuerdo.

La razón por la que ve más documentación para apt-get sobre aptitude es sobre todo inercia: aptitude no ha sido el front-end recomendado para APT durante tanto tiempo, tanto de la documentación existente no ha sido actualizada, y hay un montón de personas que Reconocer las ventajas de aptitude sobre apt-get pero usar apt-get reflexively.

Recientemente llegué al punto en que suelo seguir apt con un i y no a - cuando escribo.

Postscript Tenga en cuenta que las reglas usadas en apt-get y aptitude son objetivos móviles -como Hubert señala en los comentarios, la ruta de actualización recomendada desde Debian Lenny ahora usa apt-get , no aptitude . Esto refleja el hecho de que apt-get mantiene un seguimiento de menos estado sobre el paquete actual que aptitude , y por lo tanto no tiene que preocuparse de que el estado de APT no esté "limpio", y porque apt-get reglas de apt-get son más inteligentes de lo que solían ser. Todavía uso y recomiendo aptitude sobre apt-get , pero es una recomendación más matizada

aptitude hace que sea conveniente para mostrar qué programas en una búsqueda que ya tiene instalado en el sistema (con la ayuda de grep ):

 aptitude search flash | grep ^i 

En realidad, la búsqueda de aptitude es mucho más poderosa que la que obtienes a través de grep , ya que soporta la búsqueda contextual:

Por ejemplo, esto encuentra todos los paquetes con 'flash' en el nombre del paquete que están instalados:

 aptitude search '~iflash' 

Una "forma larga" equivalente de la "forma corta" ~i :

 aptitude search '?installed(flash)' 

Tenga en cuenta que los patrones de búsqueda son gratuitos (sin anclaje) de forma predeterminada. Para anclarlos, es necesario utilizar los patrones de anclaje ' ^ ' (comienzo de la cadena) y / o ' $ ' (final de la cadena).

Para encontrar todos los paquetes cuyos nombres empiezan con 'ttf' o 'font':

 aptitude search '(^ttf|^font)' 

(Nota: esta es una solución para un error en aptitude , ya que el regex correcto de '^(ttf|font)' no funciona correctamente – encuentra paquetes cuyos nombres empiezan con 'ttf' o contienen 'font'.

Otras características de aptitude nifty:

Mostrar todos los paquetes con 'firmware' en su nombre que TAMBIÉN tienen 'inalámbrico' en su descripción:

 aptitude search 'firmware ~dwireless' 

O forma larga:

 aptitude search '?and(?name(firmware),?description(wireless))' 

(Nota: en la forma abreviada, los argumentos delimitados por el espacio son ANDed dentro de las comillas, si se pasan como argumentos separados de la línea de comandos argv [] son ​​ORed).

 p atmel-firmware - Firmware for Atmel at76c50x wireless networking chips. p firmware-atheros - Binary firmware for Atheros wireless cards ... p libertas-firmware - Firmware for Marvell's libertas wireless chip series p zd1211-firmware - Firmware images for the zd1211rw wireless driver 

~U muestra todos los paquetes que son actualizables desde sus versiones actuales con nuevas versiones:

 # aptitude update ; aptitude versions '~U' Package virtualbox-4.1: i 4.1.18-78361~Debian~squeeze 100 p 4.1.20-80170~Debian~squeeze <NULL> 500 

Mostrar paquetes que recomiendan 'gcc-multilib'

 $ aptitude search '~DRecommends:gcc-multilib' i libc6-dev-i386 - Embedded GNU C Library: 32-bit development libraries for AMD64 

Explique por qué podría ser necesario instalar 'fuse-utils'

 $ aptitude why fuse-utils i xorg Depends xterm | x-terminal-emulator pi gnome-terminal Provides x-terminal-emulator pi gnome-terminal Recommends gvfs pi gvfs Depends libgdu0 (>= 2.29.90) pi libgdu0 Depends udisks (< 1.1.0) pi udisks Recommends ntfsprogs pi ntfsprogs Depends fuse-utils (> 2.5.0) 

(Este ejemplo muestra algunas de las locuras resultantes del default desde Squeeze (?) De instalar todos los paquetes de "Recommends." Instalando gnome-terminal termina instalando ntfsprogs y fuse-utils, egad! Creo que la mayoría de la gente solo quiere la perspectiva de terminal y No la integración integrada de NTFS, que es opcional, a menos que lo hayan especificado.)

Encuentre todos los paquetes que proporcionan el servicio "mail-transport-agent":

 $ aptitude search '?provides(mail-transport-agent)' p citadel-mta - complete and feature-rich groupware server (mail transport agent) ... p nullmailer - simple relay-only mail transport agent p postfix - High-performance mail transport agent i sendmail-bin - powerful, efficient, and scalable Mail Transport Agent p ssmtp - extremely simple MTA to get mail off the system to a mail hub p xmail - advanced, fast and reliable ESMTP/POP3 mail server 

Mostrar todos los nombres de paquetes que están instalados, que no son Esenciales o Instalados automáticamente por dependencias:

 $ aptitude search '~i!(~E|~M)' -F '%p' 

Desafortunadamente, este material está bastante mal documentado y difícil de encontrar, pero aquí está la mejor referencia (del mantenedor de 'aptitud').

Según las preguntas frecuentes de Debian GNU / Linux sobre la administración de paquetes , aptitude es más complejo que apt-get y depende de las herramientas de administración de paquetes menos complejas apt-get y dpkg.

Por lo tanto, para necesidades más simples, puede utilizar las herramientas más simples, mientras que para necesidades más complejas, puede contar con la herramienta más sofisticada (apitude).

Citado en el FAQ de Debian: "aptitude proporciona la funcionalidad de dselect y apt-get, así como muchas características adicionales que no se encuentran en ninguno de los programas".

Paquetes de aptitude marks que están instalados debido a una dependencia con la etiqueta automática. Si ahora elimina o elimina un paquete, aptitude eliminará automáticamente los paquetes instalados automáticamente que ya no se utilizan junto al paquete que desea eliminar o eliminar.

Esta es la razón principal por la que personalmente creo que la aptitud es siempre mejor que apto.

No hay una herramienta adecuada, puede mezclar y combinar ambas, dependiendo de la que le resulte más conveniente para la tarea que tiene a su alcance. Aptitude es una gran herramienta para probar / sid usuarios, pero tiende a ser menos confiable para dist-actualización de un establo a otro. Vea mi artículo apt-get, aptitude, … elija el administrador de paquetes adecuado para usted .

    Intereting Posts