.png)
Sé que ambas apt-get
y 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. 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 aptitude
proporciona una interfaz de menú de terminal (muy parecida a Synaptic en una terminal), mientras que apt-get
no.
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-cache
y apt-mark
? Bueno, hay muchos de ellos, y si los usas mucho, es posible que no recuerdes cuáles proporcionan qué comandos. wajig
es una solución a ese problema. Es esencialmente un despachador, un envoltorio para todas esas herramientas. También se aplica sudo
cuando sea necesario. Cuando dices wajig install foo
, wajig dice "Ok, install
lo proporciona apt-get
y requiere privilegios de administrador" y se ejecuta sudo apt-get install foo
. Cuando dices wajig search foo
, wajig dice "Ok, search
lo proporciona 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, 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 --simulate
y --teaching
características.
Dos comandos wajig que uso frecuentemente son wajig listfiles foo
y 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-get
los argumentos de comando consigo aptitude
mismo es solo una decisión de diseño para facilitar a apt-get
los usuarios el movimiento aptitude
y viceversa.
Nunca lo he usado wajig
, pero la documentación sugiere que es solo un script que sabe si le estás pasando un deb
archivo (cuando se ejecuta dpkg
) o un apt
nombre 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.