¿Puede causar problemas para cambiar de apt-get a aptitude?


8

He estado pensando en cambiar a aptitude, pero escuché que la gente decía "si ya estás usando apt-get, debes esperar hasta tu próxima instalación para cambiar". ¿Por qué la gente dice esto? ¿Qué tipo de problemas (si alguno) puede causar?

Respuestas:


8

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-upgradevs. 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.


2
Una gran respuesta clara. Un detalle adicional es cómo / cuándo eliminan las dependencias instaladas automáticamente. aptitudelos eliminará de inmediato, pero apt-getsolo le pedirá que los elimine ingresando el comando apt-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
Telemachus

5

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 aptitudeel 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-gety aptitudehará 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-souna dependencia. Hacen esto, de modo que si luego lo eliminas mpd, también lib-so-and-sose elimina. Pero aptitudey apt-getmaneja esta limpieza de manera diferente. aptitudeintenta inmediatamente eliminar todas las dependencias huérfanas; pero apt-getsimplemente sugiere que corras apt-get autoremovepara limpiar. (La lógica detrás de todo esto es que solo obtuviste la biblioteca, ya que la mpdnecesitabas. Si no la conservas mpd, ya no deberías necesitarla. Si otro paquete todavía depende de ella, entonces ambos aptitudeyapt-get sabrá esto y no intentará eliminar la biblioteca).

¿Cuál es mi punto? Bueno, si has visto constantes empujones para correr apt-get autoremovey cambias a aptitude, entonces puedes sorprenderte la primera vez que intentes instalar algo. aptitudeinmediatamente 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 gnomepaquete, 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 deaptitudeel 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:

  1. Siempre lea la salida de aptitudeo apt-getcuidadosamente, antes de decir sí a cualquier cosa.
  2. Recuerda que siempre puedes hacer una carrera en seco usando aptitude -s safe-upgradeo aptitude -s install foo. La -s|--simulatebandera es tu amiga.

4

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.


1
¿Tiene un enlace a la publicación de la lista de correo?
Mateo

Matthew, ¿imaginas que tengo un archivo perfectamente indexado de toda la lista de correo de usuarios de Debian aquí? Cuando está claro por lo anterior que ni siquiera recuerdo el año.
CarlF

@Matthew: hace un tiempo (Sarge o Early Etch), había mucha gente preocupada por cambiar de apt-geta aptitude. En aquel entonces, manejaban muchas funciones esenciales de manera muy diferente. Con el tiempo, se han vuelto mucho más similares y aptitudehan 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.
Telémaco

2

También diría que adelante y úselo aptitude.
Aptitudetiene 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 aptitudetiene 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-cacheo dpkge 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.


1

¿No son solo una interfaz diferente al mismo backend?


2
aptitudees una interfaz más funcional ...
quack quixote

Eso podría ser. Pero una interfaz con más funciones no necesariamente significa un backend diferente.
Svish

2
no, tienes razón, ambos son front-end para dpkg. pero dpkgsolo instala los paquetes; son los front-end los que se encargan de la búsqueda, la resolución de la dependencia y la descarga.
quack quijote

pero la búsqueda, la descarga y la resolución de dependencia no romperán nada. o si es así, sería muy extraño en mi opinión ...
Svish

2
Acabo de notar tu último comentario. tenga en cuenta que son los frontends los que deciden qué instalar; dpkg solo hace la instalación. Si algo se rompe, generalmente es porque la resolución de dependencia falló o porque el usuario apagó la resolución de dependencia (por ejemplo, con una opción --force ).
Quack Quijote

1

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.


-1

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 fooes lo mismo que aptitude install foo.

Saludos


No creo que sean iguales. A menos que las cosas hayan cambiado, aptitude hará más seguimiento de dependencias y eliminará cualquier paquete que haya instalado automáticamente, mientras que apt-get no lo hará. Es decir, si foo depende de la barra e instala y elimina foo con apt-get, la barra permanecerá en su sistema. Si haces lo mismo con aptitude, no lo hará.
William Pursell

Tienes razón: mira los comentarios de ~ quack a continuación.
dag729

@William, @ dag729: las versiones actuales de apt-gettambién ofrecen la eliminación automática de paquetes instalados solo como dependencias. La diferencia restante a ese respecto es que aptitudeelimina instantáneamente las dependencias (según corresponda), pero apt-getsolo 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.
Telémaco
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.