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

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

Sé que ambas apt-gety aptitudeson 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. En el fondo, ¿no utilizan el mismo sistema APT?

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

Respuesta1

La diferencia más obvia es que aptitudeproporciona una interfaz de menú de terminal (muy parecida a Synaptic en una terminal), mientras que apt-getno.

Considerando 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, elegibles para su 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 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 paramejoravs.actualización disthan sido renombrados en aptitud a los nombres probablemente más precisosactualización segurayactualización completa, 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 realizar búsquedas (en comparación con apt-cache)
  • aptitud tiene lapor quéypor qué nocomandos para decirle cuálinstalado manualmenteLos paquetes impiden una acción que quizás desee realizar.
  • Si las acciones (instalar, eliminar, actualizar paquetes) que desea realizar causan conflictos, aptitude puede sugerir varias soluciones potenciales. apt-get simplemente dirá "Lo siento Dave, no puedo permitirte hacer eso".

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

En resumen, aptitude pertenece más propiamente a la categoría de 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.

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

¿Recuerdas que mencioné esas herramientas "complementarias" como apt-cachey apt-mark? Bueno, hay muchos de ellos, y si los usas mucho, es posible que no recuerdes cuáles proporcionan qué comandos. wajiges una solución a ese problema. Es esencialmente un despachador, un envoltorio para todas esas herramientas. También se aplica sudocuando sea necesario. Cuando dices wajig install foo, wajig dice "Ok, installlo proporciona apt-gety requiere privilegios de administrador" y se ejecuta sudo apt-get install foo. Cuando dices wajig search foo, wajig dice "Ok, searchlo proporciona apt-cachey 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, 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, sus modos --simulatey --teachingcaracterísticas.

Dos comandos wajig que uso frecuentemente son wajig listfiles fooy wajig whichpkg /usr/bin/foo.

Respuesta2

Muchas veces me lo he preguntado.Aspectos destacados de Wikipediaque la principal característica distintiva es que aptitude tiene una interfaz en modo texto (curses) de pantalla completa. El hecho de que pueda usar la mayoría de apt-getlos argumentos de comando consigo aptitudemismo es solo una decisión de diseño para facilitar a apt-getlos usuarios el movimiento aptitudey viceversa.

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

Por supuesto, elrealla diferencia es:

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

Respuesta3

aptitude es el programa preferido para la gestión de paquetes desde 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 :)

Respuesta4

Basándonos 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.

etcétera.

información relacionada