Respuestas:
apt-get y aptitude son diferentes IU que forman parte del mismo sistema de administración de paquetes, APT, la herramienta de empaquetado avanzada . Por ejemplo, ambos se configuran usando /etc/apt/apt.conf
, ambos usan el mismo espacio de archivos y formatos para representar el estado del paquete, y el mismo espacio de archivos para almacenar .debs descargados.
En qué se diferencian es su sistema de reglas internas para representar posibles conflictos entre paquetes, cómo resolverlos (por ejemplo, durante apt-get dist-upgrade
vs. aptitude full-upgrade
) y cómo expresarlos cuando interactúa con el usuario. En términos generales, ambos podrían hacer lo incorrecto en situaciones difíciles, pero es mucho más probable que apt-get lo haga mal que la aptitud.
Muchos buenos consejos ya están aquí, pero permítanme agregar una cosa que nadie ha mencionado. Si decide cambiar, es posible que desee ejecutar este comando, dependiendo de lo que haya estado haciendo apt-get
:
aptitude keep-all
Ese comando restablece aptitude
el sentido de qué paquetes son huérfanos y deben eliminarse.
Aquí está la razón por la que a veces es útil: por un tiempo ahora, tanto apt-get
y aptitude
hará un seguimiento de los paquetes que se instalaron automáticamente como una dependencia de otra cosa. Entonces, por ejemplo, si instala mpd
, puede obtener lib-so-and-so
una dependencia. Hacen esto, de modo que si luego lo eliminas mpd
, también lib-so-and-so
se elimina. Pero aptitude
y apt-get
maneja esta limpieza de manera diferente. aptitude
intenta inmediatamente eliminar todas las dependencias huérfanas; pero apt-get
simplemente sugiere que corras apt-get autoremove
para limpiar. (La lógica detrás de todo esto es que solo obtuviste la biblioteca, ya que la mpd
necesitabas. Si no la conservas mpd
, ya no deberías necesitarla. Si otro paquete todavía depende de ella, entonces ambos aptitude
yapt-get
sabrá esto y no intentará eliminar la biblioteca).
¿Cuál es mi punto? Bueno, si has visto constantes empujones para correr apt-get autoremove
y cambias a aptitude
, entonces puedes sorprenderte la primera vez que intentes instalar algo. aptitude
inmediatamente intentará eliminar a todos esos huérfanos. En general, esto estará bien (son huérfanos después de todo, y no es necesario), pero hay un caso complicado. Todos los metapaquetes de escritorio implican una cadena de dependencia compleja donde cada programa individual se incorpora como una dependencia de un envoltorio de paquete virtual. Por ejemplo, si tiene instalado Gnome porque instaló el gnome
paquete, entonces todos sus programas de escritorio normales se instalaron como dependencias. Si ha desinstalado uno solo de estos programas (por ejemplo, Ekiga o Gedit), entonces a los ojos deaptitude
el resto de tu escritorio también debería eliminarse. Tenga en cuenta que aptitude
siempre pregunta antes de que elimine las cosas, pero las personas a menudo ingresan 'Y' sin leer. En mi experiencia, esta es la queja / confusión más común para las personas nuevas en Debian.
Dos consejos generales:
aptitude
o apt-get
cuidadosamente, antes de decir sí a cualquier cosa.aptitude -s safe-upgrade
o aptitude -s install foo
. La -s|--simulate
bandera es tu amiga.Se dijo en la lista de correo de Debian, hace años, que cambiar de apt-get a aptitude era arriesgado. Estas son dos versiones de Debian (digamos 10 años) hace. Todos esos problemas parecen estar resueltos ahora, y ciertamente no he visto problemas en Debian o Ubuntu.
apt-get
a aptitude
. En aquel entonces, manejaban muchas funciones esenciales de manera muy diferente. Con el tiempo, se han vuelto mucho más similares y aptitude
han madurado una tonelada. Para el 90% de los casos ahora, no debería haber problemas si cambia. Vea mi publicación para un caso de borde.
También diría que adelante y úselo aptitude
.
Aptitude
tiene una mejor gestión de dependencia que apt-get
. Esto ayudará a mantener baja la cantidad de paquetes huérfanos.
He leído hace un tiempo que aptitude
tiene el mejor algoritmo de actualización dist en comparación apt-get
. Pero eso no es una característica asesina, ya que no se usa con tanta frecuencia en la vida útil de un sistema.
Además, tendrás más cosas unidas en una herramienta. En lugar de recordar cuándo llamar apt-get
, apt-cache
o dpkg
e interruptores con los que sólo tiene que utilizar la aptitud y la mayoría de las cosas consigo.
En cuanto a las complicaciones al cambiar "en el medio": no recuerdo haber tenido ninguna cuando lo hice.
¿No son solo una interfaz diferente al mismo backend?
aptitude
es una interfaz más funcional ...
dpkg
. pero dpkg
solo instala los paquetes; son los front-end los que se encargan de la búsqueda, la resolución de la dependencia y la descarga.
Desde mi experiencia, tienen una forma diferente de fijar las versiones del paquete. En mi caso, le dije a aptitud para bloquear ciertos paquetes, suponiendo que estaría a salvo de futuras actualizaciones. Estaba equivocado; el administrador de actualizaciones programadas por cron, que usa apt-get, procede a actualizarlo para mi consternación.
Drats, mientras escribía esto, busqué en Google y descubrí que el error (la aptitud # 557580 no obedece los pines en las preferencias.d / *) ya estaba solucionado.
Utilizo apt-get y aptitude sin ningún problema: tengo la misma pregunta ... ¿Por qué la gente dice esto? :RE
Continúa y no te preocupes: aptitude es solo una gui de texto para apt-get, que incluso podrías usar como una aplicación de línea de comandos, por ejemplo, apt-get install foo
es lo mismo que aptitude install foo
.
Saludos
apt-get
también ofrecen la eliminación automática de paquetes instalados solo como dependencias. La diferencia restante a ese respecto es que aptitude
elimina instantáneamente las dependencias (según corresponda), pero apt-get
solo le indica que ejecute el comando apt-get autoremove
. Pero ambos rastrean las dependencias de la misma manera ahora. Sin embargo, todavía difieren en su manejo de dependencias complejas y casos extremos (instalaciones o eliminaciones muy complicadas), pero para la mayoría de las personas y la mayoría de las situaciones, ahora funcionan igual.
aptitude
los eliminará de inmediato, peroapt-get
solo le pedirá que los elimine ingresando el comandoapt-get autoremove
. En general, querrán eliminar los mismos elementos. Vea este enlace, sin embargo, para ver un caso complejo en el que no estuvieron de acuerdo en eso: forums.debian.net/viewtopic.php?f=10&t=49589&start=0