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

Lo sé que tanto apt-get como 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 sistema APT?

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

Comentarios

  • Sé que no es la respuesta correcta para tu pregunta, pero ¿por qué no puedes probar Synaptic? su usuario es muy amable y descarga e instala dependencias automáticamente. ¿Gnome no está presente en su sistema?
  • Yo ‘ estoy sesgado, pero creo que esta pregunta en el sitio de Ubuntu SE podría ser relevante.
  • duplicado: unix.stackexchange.com/questions/244/apt-get-or-aptitude .
  • @Wim debido a la parte de wajig de esta pregunta, decidí fusionar 244 en esta pregunta en lugar de al revés
  • Vale la pena señalar que la aptitud está programada para eliminarlo de la instalación predeterminada en la próxima versión de Ubuntu (aunque siempre puede instalarlo usando apt-get después)

Respuesta

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 sólo las interfaces de línea de comandos de cada uno, son bastante similares y, en su mayor parte, realmente no importa cuál uses. 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 la misma base de datos de paquetes instalados manualmente frente a automáticamente, por lo que los casos en los que instalas algo con apt-get y luego aptitude quiere desinstalarlo son principalmente cosa el pasado.

Hay algunas diferencias menores:

  • aptitude eliminará automáticamente los paquetes elegibles, mientras que apt-get requiere un comando separado para hacerlo
  • El Los comandos para actualización vs dist-upgrade han sido renombrados en aptitude a los nombres probablemente más precisos safe-upgrade y full-upgrade , respectivamente.
  • aptitude en realidad 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 why y why-not para decirle qué paquetes instalados manualmente impiden una acción que tal vez desee realizar.
  • Si las acciones (instalar, eliminar, actualizar paquetes) que desea realizar provocan conflictos, aptitude puede Sugiera 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 yo puede pensar.

En resumen, aptitude pertenece más apropiadamente a la categoría con Synaptic y otras interfaces de administración 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?

Recuerde que mencioné esas herramientas «complementarias» como apt- caché 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, una envoltura de todas esas herramientas. también aplica sudo cuando es 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 dices 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ás 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 --simulate y --teaching m odas.

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

Comentarios

  • Un gran problema que tuve con aptitude es que se necesita mucho tiempo para completar las pestañas en los nombres de los paquetes (por ejemplo, aptitude install linux-im pestaña), aunque es muy rápido para apt-get. Parece haber algo de almacenamiento en caché presente en la familia apt-get que carece de aptitude.
  • aptitude también tienen la increíble aptitude search que puede utilizar con patrones de búsqueda muy potentes . Tienes aptitude reinstall. También puede usar la interfaz ncurses (menú de terminal) para preparar operaciones complejas de paquetes como actualización parcial, eliminar un paquete, congelar otro, actualizar este, que luego puede ejecutar en una sola operación … Ah, y tiene un solucionador de conflictos interactivo .
  • @Totor santa vaca, usando aptitude ‘ ¡La interfaz de ncurses para preparar comandos me vendió aptitude de una vez por todas! (después de años de pensar que vale la pena practicar la aptitud, pero escribiendo apt-get de la memoria muscular)
  • … y aptitude también tiene aptitude download package-name para obtener el archivo .deb del paquete.
  • Es ‘ solo una cosa que he encontrado que no es ‘ t en aptitude pero están en apt-get, y eso es apt-get --compile source package-name . apt-get build-dep package-name existen pero creo que aptitude build-dep package-name hacen un mejor trabajo.

Respuesta

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

Nunca he usado wajig, pero la documentación sugiere que «es solo una secuencia de comandos que sabe si» le estás pasando un archivo deb (cuando se ejecuta dpkg) o un apt nombre de paquete (cuando se ejecuta apt-get en su lugar). ¿Podrías probarlo y ver si 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. 

Comentarios

  • ¡No! aptitude tiene más. Olvidaste poner las interminables banderas -v en moo. (Puede ir hasta -vvvvvv)
  • No ‘ t olvide los importantes poderes de las supervacas, que apt-get tiene pero aptitude no. (Pruebe --help en ambos)
  • lmao. Esa es una respuesta divertida de leer, aunque la respuesta de @ryan ‘ es mucho más elaborada;)

Respuesta

aptitude es el programa preferido para la gestió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 solo apt-get install aptitude 🙂

Comentarios

  • Las notas de la versión digamos que ahora se recomienda apt-get sobre aptitude para que las actualizaciones se reduzcan.
  • Sí, pero solo para eso. De lo contrario, se consideran iguales, pero aptitude tiene muchas funciones más avanzadas, como búsqueda y modo de pantalla completa, que apt-get.
  • Por alguna razón usé aptitude para instalar emacs y sin mirarlo eliminó gdm! Entonces, por ahora, usaré apt-get, pero tengo mucha curiosidad por conocer aptitude.

Responder

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 sean necesarios.

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

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

Comentarios

  • Esto solía ser cierto, pero sé que mi apt-get tiene un comando apt-get autoremove para eliminar paquetes instalados solo como dependencias. No ‘ no sé cuándo se agregó esta función, pero un sitio web sugiere que podría haber sucedido con Debian Lenny (junio de 2010).
  • apt-get autoremove no ‘ t elimina los paquetes instalados solo como dependencias, elimina las dependencias huérfanas, que es una diferencia sutil ; puede ‘ t decir si un paquete ‘ leaf ‘ se instaló con la intención o como una dependencia para que la deje, donde aptitude la sabría y la eliminaría.
  • ¡Estoy ‘ vendido! Hay otras cosas buenas acerca de aptitude pero esta es una característica increíble.

Responder

apt-get, así como las diversas herramientas complementarias, utilizan significativamente menos memoria que las respectivas invocaciones de línea de comandos de aptitude, y son un poco más rápidos. Felizmente ignoraba esto hasta que intenté actualizar la instalación de Debian en un viejo Thinkpad pentium arrugado con 32 MB de RAM. Se necesitarían una o dos horas de intercambio de golpes para ejecutar apt-get, que se completó con éxito; aptitude fallaría después de un período de tiempo más prolongado.

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

Respuesta

Basándose en 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.

Respuesta

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

Aquí 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

Comentarios

  • Son bastante similares, puedo cambiar entre ellos con bastante facilidad.

Responder

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

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. Realiza un seguimiento de 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 con dpkg. aptitude hace lo mismo, con una interfaz diferente.

Responder

Ambos aptos -get y 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 responsable de aptitude 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 .

Respuesta

No estoy seguro si esto aún se mantiene, pero el desarrollador de Debian de vanguardia Joey Hess siempre solía defender la aptitud sobre apt-get. Por supuesto, las cosas cambiarán a medida que evolucione el software. Apt-get ahora maneja las dependencias mejor que antes. 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ía usar aptitude en lugar de apt-get o dselect.

  1. aptitude puede parecerse a apt-get

    Si ejecuta «aptitude update» o «aptitude upgrade» o «aptitude install», se ve y funciona igual que apt-get, con algunas mejoras. Por lo tanto, no hay curva de aprendizaje.

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

  2. aptitude tracks paquetes instalados automáticamente

    Deje de preocuparse por eliminar las bibliotecas no utilizadas y los paquetes de soporte de su sistema. Si usa aptitude para instalar todo, realizará un seguimiento de los paquetes que se incorporan únicamente a las dependencias y eliminará esos paquetes cuando ya no son necesarios.

  3. aptitude maneja con sensatez las recomendaciones

    Una falla 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 se basan en 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 paquetes recomendados , es fácil pasar por alto sus advertencias.

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

  4. use aptitude como un usuario normal y evite la instalación de un sistema en su sistema

    Quizás no lo hizo » Sé que puedes ejecutar aptitude en modo interfaz gráfica de usuario como un usuario normal. Realiza los cambios que quieras probar. Si se mete en un lío real, 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 limpiar su sistema hasta que le diga a aptitude que haga 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 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 con aptitude.

  6. aptitude facilita el seguimiento del 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 Debian sistema de tareas

    Aptitude le permite usar el sistema de tareas de Debian tal como fue diseñado para ser usado. Puede explorar las tareas disponibles, seleccionar una tarea para instalar, y luego profundizar en ella y deseleccionar partes de la tarea que no desea. apt-get no tiene soporte para tareas, y aptitude es mejor incluso que las herramientas de propósito especial como tasksel.

  8. aptitude admite múltiples fuentes

    Si sus fuentes. list está configurado para hacer disponibles múltiples versiones de un paquete, aptitude le permite profundizar para ver las versiones disponibles y elegir una versión no predeterminada para instalar. Si un paquete se rompe y se vuelve inestable, simplemente regréselo a la versión en prueba.

  9. aptitude registra sus acciones

    Aptitude registra el paquete 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 partiticlar.

– ver a shy 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.

Deja una respuesta

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