¿Cuál es la diferencia real entre “apt-get” y “aptitude”? (¿Qué tal "wajig"?)

248

Sé que tanto apt-get como aptitude son interfaces de administración de paquetes de línea de comandos en Linux derivado de Debian, con diferentes opciones, pero todavía estoy algo confundido. Debajo del capó, ¿no están usando el mismo sistema APT?

¿Por qué Debian mantiene estas herramientas paralelas? (Pregunta extra: ¿qué diablos es wajig ?)

    
pregunta Kevin Cantu 19.08.2010 - 06:50

10 respuestas

217

La diferencia más obvia es que aptitude proporciona una interfaz de menú de terminal (como Synaptic en una terminal), mientras que apt-get no lo hace.

Teniendo en cuenta únicamente las interfaces de línea de comandos de cada una, son bastante similares y, en su mayor parte, realmente no importa cuál utilice. Las versiones recientes de ambos rastrearán qué paquetes se instalaron manualmente y cuáles se instalaron como dependencias (y, por lo tanto, son elegibles para la eliminación automática). De hecho, creo que incluso más recientemente, las dos herramientas se actualizaron para compartir realmente la misma base de datos de paquetes instalados manualmente o automáticamente, por lo que los casos en los que instalas algo con apt-get y luego aptitude quiere desinstalarlo son, en su mayoría, cosa de el pasado.

Hay algunas diferencias menores:

  • aptitude eliminará automáticamente los paquetes elegibles, mientras que apt-get requiere un comando separado para hacerlo
  • Los comandos para actualizar frente a dist-upgrade han sido renombrados en aptitude a los nombres probablemente más precisos safe-upgrade y actualización completa , respectivamente.
  • aptitude realiza las funciones no solo de apt-get, sino también de algunas de sus herramientas complementarias, como apt-cache y apt-mark.
  • aptitude tiene una sintaxis de consulta ligeramente diferente para la búsqueda (en comparación con apt-cache)
  • aptitude tiene los comandos por qué y por qué-no para decirle qué paquetes se instalan manualmente están impidiendo una acción que tal vez desee realizar .
  • Si las acciones (instalación, eliminación, actualización de paquetes) que desea generar causan conflictos, aptitude puede sugerir varias posibles soluciones. apt-get simplemente dirá "Lo siento, Dave, no puedo permitir que hagas eso".

Hay otras pequeñas diferencias, pero esas son las más importantes en las que puedo pensar.

En resumen, aptitude pertenece más apropiadamente a la categoría con Synaptic y otras aplicaciones de administrador de paquetes de nivel superior. Resulta que también tiene una interfaz de línea de comandos que se parece a apt-get.

Ronda de bonificación: ¿Qué es wajig?

¿Recuerdas cómo mencioné esas herramientas "complementarias" como apt-cache y apt-mark? Bueno, hay un montón de ellos, y si los usas mucho, es posible que no recuerdes cuáles proporcionan cuáles comandos. wajig es una solución a ese problema. Es esencialmente un despachador, una envoltura alrededor de todas esas herramientas. También se aplica sudo cuando sea necesario. Cuando dices wajig install foo , wajig dice "Ok, install es proporcionado por apt-get y requiere privilegios de administrador", y ejecuta sudo apt-get install foo . Cuando dice wajig search foo , wajig dice "Ok, search es proporcionado por apt-cache y no requiere privilegios de administrador", y ejecuta apt-cache search foo . Si usa wajig en lugar de apt-get, apt-mark, apt-cache y otros, entonces nunca tendrá este problema:

$ apt-get search foo
E: Invalid operation search

Si quieres saber qué está haciendo wajig detrás de escena, qué herramientas está usando para implementar un comando en particular, tiene los modos --simulate y --teaching .

Los dos comandos wajig que uso a menudo son wajig listfiles foo y wajig whichpkg /usr/bin/foo .

    
respondido por el Ryan Thompson 21.08.2010 - 02:37
68

Me he preguntado muchas veces. Wikipedia destaca que la principal característica distintiva es que aptitude tiene una interfaz de modo de texto (curses) de pantalla completa. El hecho de que pueda usar la mayoría de los argumentos del comando apt-get con el mismo aptitude es solo una decisión de diseño para facilitar que los usuarios de apt-get se muevan a aptitude y viceversa.

Nunca he usado wajig , pero la documentación sugiere que solo es un script que sabe si le estás pasando un archivo deb (cuando se ejecuta dpkg ) o un nombre de paquete apt ( cuando se ejecuta apt-get en su lugar). ¿Podrías probarlo y ver si eso es lo que hace?

Por supuesto, la diferencia real es:

gaurav@fern:~$ apt-get moo
         (__) 
         (oo) 
   /------\/ 
  / |    ||   
 *  /\---/\ 
    ~~   ~~   
...."Have you mooed today?"...
gaurav@fern:~$ aptitude moo
There are no Easter Eggs in this program.
    
respondido por el Gaurav 19.08.2010 - 07:33
25

aptitude es el programa preferido para la administración de paquetes desde la consola, tanto para las instalaciones de paquetes como para las actualizaciones de paquetes o sistemas en Debian.

Aquí hay una descripción general de la herramienta y las características que tiene sobre apt-get: enlace

Por lo tanto, mi consejo es simplemente apt-get install aptitude :)

    
respondido por el dsp 11.08.2010 - 09:10
19

aptitude recuerda qué paquetes se solicitaron explícitamente y cuáles solo se instalaron debido a dependencias. Desinstalará automáticamente los paquetes que no se solicitaron explícitamente cuando ya no son necesarios.

apt-get trata los paquetes solicitados explícitamente y sus dependencias de la misma manera.

Por lo tanto, es mejor usar aptitude , esto ayuda a mantener limpio el sistema.

    
respondido por el starblue 19.08.2010 - 08:59
11

apt-get , así como las diversas herramientas complementarias, usan significativamente menos memoria que las respectivas invocaciones de línea de comando de aptitude , y son un poco más rápidas. No me di cuenta de esto hasta que intenté actualizar la instalación de Debian en un antiguo thinkpad pentium con 32MB de RAM. Tomaría una o dos horas de swap-thrashing para ejecutar apt-get , que se completó con éxito; aptitude fallaría después de un período de tiempo más largo.

Esta distinción es más o menos irrelevante en cualquier cosa que se parezca a un sistema de escritorio moderno.

    
respondido por el intuited 16.02.2011 - 05:30
8

Ofrecen la misma funcionalidad básica: instalar y eliminar paquetes de la línea de comandos.

Aquí hay una comparación más detallada, publicada en el sitio web de Ubuntu Stack Exchange : enlace

    
respondido por el Riccardo Murri 11.08.2010 - 10:28
7

Sobre la base de la respuesta de @Gaurav, ¡los huevos de Pascua en los dos administradores de paquetes son bastante divertidos !:

siddhartha@siddhartha-dev:~$ apt-get  moo
             (__) 
             (oo) 
       /------\/ 
      / |    ||   
     *  /\---/\ 
        ~~   ~~   
..."Have you mooed today?"...

siddhartha@siddhartha-dev:~$ aptitude  moo
There are no Easter Eggs in this program.
siddhartha@siddhartha-dev:~$ aptitude -v moo
There really are no Easter Eggs in this program.
siddhartha@siddhartha-dev:~$ aptitude -vv moo
Didn't I already tell you that there are no Easter Eggs in this program?
siddhartha@siddhartha-dev:~$ aptitude -vvv moo
Stop it!
siddhartha@siddhartha-dev:~$ aptitude -vvvv moo
Okay, okay, if I give you an Easter Egg, will you go away?
siddhartha@siddhartha-dev:~$ aptitude -vvvvv moo
All right, you win.

                               /----\
                       -------/      \
                      /               \
                     /                |
   -----------------/                  --------\
   ----------------------------------------------
siddhartha@siddhartha-dev:~$ aptitude -vvvvvv moo
What is it?  It's an elephant being eaten by a snake, of course.
siddhartha@siddhartha-dev:~$ aptitude -vvvvvvv moo
What is it?  It's an elephant being eaten by a snake, of course.
siddhartha@siddhartha-dev:~$ aptitude -vvvvvvvv moo
What is it?  It's an elephant being eaten by a snake, of course.

y así sucesivamente.

    
respondido por el Siddhartha 19.04.2015 - 22:57
6

Como se mencionó, enlace , aptitude tiene un mucho más fácil de usar interfaz de línea de comandos.

  

Bajo el capó, ¿no están usando el mismo sistema APT?   Sí.

El sistema subyacente no es solo apt , sino dpkg . Este sistema es tan tonto como RPM, solo puede manejar la instalación y administración de paquetes individuales. Rastrea qué archivos instalados pertenecen a qué paquete.

apt maneja las descargas de repositorios, el seguimiento de dependencias, etc. para todos los paquetes individuales, que luego se instala utilizando dpkg . aptitude hace lo mismo, con una interfaz diferente.

    
respondido por el vdboor 19.08.2010 - 22:43
5

No estoy seguro de si esto sigue siendo válido, pero Joey Hess, el desarrollador de Debian de vanguardia, solía abogar por aptitude sobre apt-get. Por supuesto, las cosas cambian a medida que el software evoluciona. Apt-get now maneja las dependencias mejor que antes. De enlace

Fecha: martes, 20 de abril de 2004 22:27:12 -0400 De: Joey Hess

Nueve razones por las que debería utilizar aptitude en lugar de apt-get o dselect.

  1. aptitude puede verse como apt-get

    Si ejecuta 'actualización de aptitude' o 'actualización de aptitude' o 'aptitude instalar ', se ve y funciona como apt-get, con algunas mejoras. Así que no hay curva de aprendizaje.

    (Si eres un usuario selecto, la curva de aprendizaje obviamente no es una de tus problemas.)

  2. aptitude realiza un seguimiento de los paquetes instalados automáticamente

    Deje de preocuparse por la poda de bibliotecas no utilizadas y paquetes de soporte de tu sistema. Si usas aptitude para instalar todo, mantendrá realizar un seguimiento de los paquetes que solo son dependientes y eliminar esos paquetes cuando ya no son necesarios.

  3. aptitude sanely manejar recomienda

    Una falla de larga data de apt-get ha sido su falta de apoyo para La relación de recomendaciones. Lo cual es un problema porque muchos paquetes en Debian confían en las recomendaciones para incluir el software que el usuario promedio Generalmente se usa con el paquete. Esta es una causa no infrecuente de problemas, a pesar de que apt-get recientemente llegó a ser capaz de al menos mencionar paquetes recomendados, es fácil pasar por alto sus advertencias.

    Aptitude admite recomendaciones de forma predeterminada, y se puede configurar para apoyo sugiere también. Incluso soporta la instalación de paquetes recomendados. cuando se utiliza en el modo de línea de comandos.

  4. use aptitude como usuario normal y evite administrar su sistema

    Tal vez no sabías que puedes ejecutar aptitude en modo gui como un jugador habitual usuario. Haz los cambios que quieras probar. Si te metes en un verdadero lío, puede pulsar 'q' y salir, sus cambios no se guardarán. (Aptitude también te permite usar ctrl-u para deshacer los cambios). Ya que se está ejecutando como usuario normal, no puede aplicar una manguera a su sistema hasta que le indique a aptitude haga algo, en ese momento le pedirá su contraseña de root.

  5. aptitude tiene una potente interfaz de usuario y capacidades de búsqueda

    Entre el navegador categórico de aptitude y su gran soporte para Filtrado de estilo mutt y búsqueda de paquetes por nombre, descripción, Mantenedor, dependencias, etc., deberías poder encontrar paquetes. más rápido que nunca antes de usar aptitude.

  6. aptitude facilita el seguimiento de software obsoleto

    Si Debian deja de distribuir un paquete, apt lo dejará en su sistema De forma indefinida, sin advertencias, y sin actualizaciones. Listas de aptitud tales paquetes en su sección "Paquetes obsoletos y creados localmente", por lo que puede ser informado del problema y hacer algo al respecto.

  7. aptitude tiene una interfaz con el sistema de tareas de Debian

    Aptitude te permite usar el sistema de tareas de Debian como fue diseñado para ser usado. Puede navegar por las tareas disponibles, seleccionar una tarea para instalar y luego profundice en él y elimine la selección de las partes de la tarea que no desea. apt-get no tiene soporte para tareas, y aptitude es mejor incluso que herramientas de propósito especial como taskel.

  8. aptitude soporta múltiples fuentes

    Si su sources.list está configurado para hacer varias versiones de un paquete disponible, aptitude le permite profundizar para ver los disponibles versiones y elegir una versión no predeterminada para instalar. Si un paquete se rompe en inestable, simplemente devuélvalo a la versión en prueba.

  9. aptitude registra sus acciones

    Aptitude registra el paquete que instala, actualiza y elimina / varlog / aptitude, que puede ser útil para averiguar por qué empezaron las cosas rompiendo después de la actualización de ayer, o cuando eliminó un partiticlar paquete.

- ver tímido jo

=================== también hay una discusión más reciente de 2010 aquí enlace en StackExchange.

    
respondido por el manselton 25.12.2013 - 15:33
4

Tanto apt-get como aptitude dependen de la biblioteca APT, sí.

Vea mi respuesta en serverfault.com .

Debian no es una entidad monolítica, hay personas con opiniones diferentes y el mantenedor de aptitudes decidió que apt-get tenía algunas deficiencias y quería construir algo mejor con aptitude. Mejoró la lógica para encontrar soluciones para escenarios de actualización complejos, agregó una GUI para la consola, etc. Y hay más que solo apt-get y aptitude, vea mi artículo apt-get, aptitude, ... elige el administrador de paquetes adecuado para ti .

    
respondido por el Raphaël Hertzog 21.06.2011 - 10:45

Lea otras preguntas en las etiquetas