it-swarm-es.tech

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

Sé que ambos apt-get y aptitude son interfaces de gestió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 APT sistema?

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

259
Kevin Cantu

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

Teniendo en cuenta solo las interfaces de línea de comandos de cada una, son bastante similares y, en su mayor parte, realmente no importa cuál use. Las versiones recientes de ambos rastrearán qué paquetes se instalaron manualmente y cuáles se instalaron como dependencias (y, por lo tanto, 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 una cuestión 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 vs. dist-upgrade han sido renombrados en aptitud para los nombres probablemente más precisos safe-upgrade y full -actualización, respectivamente.
  • aptitude realmente realiza las funciones no solo de apt-get, sino también 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 instalados manualmente están impidiendo una acción que tal vez desee tomar.
  • Si las acciones (instalación, eliminación, actualización de paquetes) que desea realizar causan conflictos, aptitude puede sugerir varias posibles soluciones. apt-get solo dirá "Lo siento Dave, no puedo permitir que hagas eso".

Hay otras pequeñas diferencias, pero esas son las más importantes que se me ocurren.

En resumen, aptitude pertenece más apropiadamente en la categoría con Synaptic y otras interfaces 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.

Bonus Round: ¿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 usa mucho, es posible que no recuerde cuáles proporcionan qué comandos. wajig es una solución a ese problema. Es esencialmente un despachador, un envoltorio alrededor de todas esas herramientas. También aplica Sudo cuando es necesario. Cuando tu dices wajig install foo, wajig dice "Ok, install es proporcionado por apt-get y requiere privilegios de administrador ", y se ejecuta Sudo apt-get install foo. Cuando tu dices wajig search foo, wajig dice "Ok, search es proporcionado por apt-cache y no requiere privilegios de administrador ", y se 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 desea saber qué está haciendo wajig detrás de escena, qué herramientas está utilizando para implementar un comando en particular, tiene --simulate y --teaching modos.

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

225
Ryan C. Thompson

A menudo me he preguntado. Wikipedia destaca que la principal característica distintiva es que aptitude tiene una interfaz de modo de texto de pantalla completa (maldiciones). El hecho de que puedes usar la mayoría apt-get argumentos de comando con aptitude en sí mismo es solo una decisión de diseño para que sea más fácil para apt-get usuarios para moverse a aptitude y viceversa.

Nunca he usado wajig, pero la documentación sugiere que es solo un script que sabe si le está pasando un archivo deb (cuando se ejecuta dpkg) o un apt nombre del paquete (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:

[email protected]:~$ apt-get moo
         (__) 
         (oo) 
   /------\/ 
  / |    ||   
 *  /\---/\ 
    ~~   ~~   
...."Have you mooed today?"...
[email protected]:~$ aptitude moo
There are no Easter Eggs in this program.
71
Gaurav

aptitude es el programa preferido para la administración de paquetes desde la consola, tanto para instalaciones de paquetes como para 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: http://www.debian.org/doc/FAQ/ch-pkgtools.en.html#s-aptitude

Entonces, mi consejo es simplemente apt-get install aptitude :)

26
dsp

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 se necesitan.

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

Así que mejor use aptitude, esto ayuda a mantener limpio su sistema.

20
starblue

apt-get, así como las diversas herramientas complementarias, usan significativamente menos memoria que las invocaciones de línea de comandos respectivas de aptitude, y son un poco más rápidas. Estaba completamente inconsciente de esto hasta que intenté actualizar la instalación de Debian en un viejo thinkpad pentium con 32MB de RAM. Se necesitaría una o dos horas de intercambio para ejecutar apt-get, que se completó con éxito; aptitude fallaría después de pensar 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.

12
intuited

Sobre la base de la respuesta de @ Gaurav, los huevos de pascua en los dos gestores de paquetes son bastante divertidos:

[email protected]:~$ apt-get  moo
             (__) 
             (oo) 
       /------\/ 
      / |    ||   
     *  /\---/\ 
        ~~   ~~   
..."Have you mooed today?"...

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

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

y así.

9
Siddhartha

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

Aquí está una comparación más detallada, publicada en el sitio web de Ubuntu Stack Exchange : https://askubuntu.com/questions/1743/is-aptitude-really- better-than-apt-get/1749 # 1749

8
Riccardo Murri

Como se mencionó, http://pthree.org/2007/08/12/aptitude-vs-apt-get/ , aptitude tiene una interfaz de línea de comandos mucho más fácil de usar.

Debajo del capó, ¿no están usando el mismo APT sistema? 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 instala usando dpkg. aptitude hace lo mismo, con una interfaz diferente.

7
vdboor

No estoy seguro de si esto todavía se mantiene, pero el desarrollador de Edge Debian, Joey Hess, siempre solía abogar por la aptitud sobre apt-get. Por supuesto, las cosas cambian a medida que el software evoluciona. Apt-get ahora maneja las dependencias mejor de lo que solía hacerlo. De http://lists.debian.org/debian-user/2004/04/msg03138.html

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

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

  1. aptitud puede parecerse a apt-get

    Si ejecuta 'actualización de aptitude' o 'actualización de aptitude' o 'instalación de aptitude', se ve y funciona igual que apt-get, con algunas mejoras. Entonces no hay curva de aprendizaje.

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

  2. aptitude rastrea paquetes instalados automáticamente

    Deje de preocuparse por recortar bibliotecas no utilizadas y paquetes de soporte de su sistema. Si usa aptitude para instalar todo, realizará un seguimiento de los paquetes que se obtienen solo por dependencias y eliminará esos paquetes cuando ya no sean necesarios.

  3. aptitud maneja sanamente recomienda

    Un fallo de larga data de apt-get ha sido su falta de soporte para la relación Recommends. Lo cual es un problema porque muchos paquetes en Debian dependen de Recommends para incorporar software que el usuario promedio generalmente usa con el paquete. Esta es una causa común de problemas, aunque apt-get recientemente pudo al menos mencionar los paquetes recomendados, es fácil pasar por alto sus advertencias.

    Aptitude admite Recommends de forma predeterminada y también se puede configurar para admitir Sugerencias. Incluso admite la instalación de paquetes recomendados cuando se usa en modo de línea de comandos.

  4. use aptitude como usuario normal y evite mangueras en su sistema

    Tal vez no sabía que puede ejecutar aptitude en modo gui como usuario normal. Realice los cambios que le gustaría probar. Si se mete en un verdadero desastre, puede presionar 'q' y salir, sus cambios no se guardarán. (Aptitude también le permite usar ctrl-u para deshacer los cambios). Dado que se está ejecutando como un usuario normal, no puede controlar su sistema hasta que indique la aptitud para hacer algo, momento en el que le pedirá su contraseña de root.

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

    Entre el navegador categórico de aptitude y su gran soporte para el filtrado de estilo mutt y la búsqueda de paquetes por nombre, descripción, mantenedor, dependencias, etc., debería poder encontrar paquetes más rápido que nunca utilizando aptitude.

  6. aptitude facilita el seguimiento de software obsoleto

    Si Debian deja de distribuir un paquete, apt lo dejará en su sistema indefinidamente, sin advertencias y sin actualizaciones. Aptitude enumera dichos paquetes en su sección "Paquetes obsoletos y creados localmente", para que pueda estar informado del problema y hacer algo al respecto.

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

    Aptitude le permite utilizar el sistema de tareas de Debian tal como fue diseñado para ser utilizado. Puede explorar las tareas disponibles, seleccionar una tarea para la instalación, y luego buscar en ella y deseleccionar 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. aptitud admite múltiples fuentes

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

  9. aptitud registra sus acciones

    El paquete de registros de aptitud que instala, actualiza y elimina a/varlog/aptitude, que puede ser útil para averiguar por qué las cosas comenzaron a romperse después de la actualización de ayer, o cuando eliminó un paquete parcial.

- ver timido jo

=================== también hay una discusión más reciente de 2010 aquí https://superuser.com/questions/93437/aptitude-vs-apt- get-which-is-the-Recommended-aka-the-right-tool-to-use en StackExchange.

6
manselton

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

Ver mi respuesta en serverfault.com .

Debian no es una entidad monolítica, hay personas con opiniones diferentes y el responsable de aptitudes decidió que apt-get tenía algunas deficiencias y quería construir algo mejor con aptitude. Él 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, ... elija el paquete correcto gerente para ti .

6
Raphaël Hertzog