Aptitude vs Apt-Get

Leyendo Planet Ubuntu he visto esta comparativa entre APT-GET y APTITUDE hecha por Aaron Toponce y creo que merece la pena publicar aquí una traducción (es más bien un refrito con algún añadido mío y ciertos párrafos eliminados del texto):


Siendo un usuario de Ubuntu y Debian (sí, y defiendo el uso de ambos), durante un tiempo adoraba el uso de Advanced Packaging Tool, o sea, apt.

El uso de apt-get es un buen método para instalar software en tu sistema. Tras probar alguna de las distros tipo Debian, como Ubuntu, aprendes algunos de sus usos y herramientas relacionadas:

  • apt-get: Instala y elimina paquetes en tu sistema, también permita actualizar las listas de paquetes o el propio software.

  • apt-cache: Busca paquetes en la lista de paquetes mantenida por apt en el sistema local.

  • dpkg- Se usa para varias tareas administrativas del sistema, como reconfigurar Xorg.

Probablemente esas sean las primeras herramientas relacionadas con apt que aprendiste a usar en una distro tipo Debian. Pero esto no es más que el principio. Necesitarás aprender y recordar otras herramientas si vas a administrar más a fondo tu sistema. Estas incluyen:

  • apt-listbugs: Muestra los bugs/errores conocidos de un paquete de software antes de instalarlo.
  • apt-listchanges: Igual que apt-listbugs, pero muestra cambios no relacionados con los errores/bugs.
  • apt-rdepends: Herramienta para ver los árboles de dependencias de los paquetes.
  • deborphan- Busca dependencias que han quedado huérfanas tras eliminar del sistema los paquetes que las necesitaban.
  • debfoster- Ayuda a deborphan a identificar qué dependencias no se necesitan más en tu sistema.
  • dselect- Interfaz curses para ver, seleccionar y buscar paquetes en tu sistema.

Pero aún hay más: apt-cdrom, apt-config, apt-extracttemplates, apt-ftparchive, apt-key, apt-mark y apt-sortpkgs.

Por si no llevas la cuenta, son 16 herramientas diferentes. No sé qué pensareis vosotros, pero a mí no me parece una forma muy correcta de hacer las cosas. Quiero decir, si decido usar OpenSSH, por ejemplo, salvo en el caso de scp, todal la functionalidad de OpenSSH es realizada por una herramienta: ssh. ¿No estaría bien tener lo mismo para el caso que nos ocupa: tener toda la functionalidad de apt en una sola herramienta llamada ‘apt’?

Más aún, apt-get tiene un gran problema (que sólo recientemente ha comenzado a solucionarse) a la hora de eliminar paquetes: apt-get trabaja muy bien identificando qué dependencias necesitan ser instaladas para que funcione un paquete determinado, pero falla miserablemente a la hora de eliminar dicho paquete. ‘apt-get remove’ elimina los paquetes indicados, pero deja sus dependencias, aunque éstas queden huérfanas (ningún paquete de tu sistema las necesita). En Psychocats.net se habla más de esto, viendo lo que ocurre al instalar y eliminar el paquete kword. ¿Cuál puede ser la solución? Aptitude.

Antes de continuar, he de decir que sí, que estoy al corriente de que ‘apt-get autoremove’ finalmente puede encargarse de las dependencias huérfanas. Es un paso en la buena dirección, por supuesto. Sin embargo, apt-get, junto a sus herramientas hermanas, es un buen método para las tareas mencionadas, si estás dispuesto a aprender 16 herramientas diferentes. Aptitude, como verás ahora, reune todas en una. Por otra parte, la opción ‘autoremove’ sólo está en las versiones más recientes de apt-get (en el caso de Ubuntu, la tienes a partir de Edgy (6.10)).

Aptitude es una herramienta mejor para instalar, eliminar, actualizar, y administrar de otras formas los paquetes en tu sistema que apt. Para empezar, desde sus comienzos, aptitude ha sido capaz de resolver el problema de las dependencias huérfanas. En 2º lugar, tiene una interfaz basada en curses que supera totalmente a la de dselect. Finalmente, y no menos importante, usa una sola herramienta con muchas funciones. Veamos:

  • aptitude: Al ejecutarlo sin argumentos muestra una interfaz para buscar, navegar, instalar, actualizar y realizar otras tareas de administración de paquetes.
  • aptitude install: Instala software en tu sistema, junto con las dependencias necesarias.
  • aptitude remove: Elimina paquetes junto con las dependencias que queden huérfanas.
  • aptitude purge: Elimina paquetes y dependencias huérfanas junto con los ficheros de configuración.
  • aptitude search: Busca paquetes en las listas de paquetes locales de apt.
  • aptitude update: Actualiza las listas de paquetes locales.
  • aptitude upgrade: Actualiza los paquetes disponibles.
  • aptitude clean: Elimina los ficheros que fué necesario descargar para instalar software en tu sistema.
  • aptitude dist-upgrade: Actualiza paquetes, incluso si eso significa que debe desinstalar otros.
  • aptitude show: Muestra detalles acerca del paquete nombrado.
  • aptitude autoclean: Elimina los paquetes deb obsoletos.
  • aptitude hold: Fuerza a que un paquete permanezca en su versión actual, y no se actualice.

¿Ves algún patrón aquí? Un sólo comando con diferentes opciones legibles (no flags). Y esto es sólo la punta del iceberg, hay muchas otras ventajas. Por ejemplo, al buscar un paquete con aptitude, los resultados aparecen ordenados alfabéticamente y justificados por columnas; también te dirá cuales están instalados en tu sistema, en lugar de darte un listado de paquetes en un formato desordenado e ilegible, como hace apt-cache.

Ya lo he mencionado, pero insisto en que al ejecutar aptitude sin ninguna opción hará que aparezca una interfaz curses para navegar por el sistema apt. Los que la hayais usado, sabreis que es de lejos superior a dselect. Aptitude facilita mucho la búsqueda paquetes, actualizarlos, eliminarlos, obtener detalles y otras tareas necesarias. Pasa 20 minutos en la consola, probando ambas aplicaciones, y verás que Aptitude está bastante mejor que dselect, la cual te hará sentir como si estuvieras perdido en un laberinto.

Aptitude es simplemente superior a apt-get en todo. Maneja mejor las dependencias. Mejor interfaz curses. Mejores opciones. UNA herramienta. Mejor formateo de la salida (stdout). La lista sigue y sigue. Veo continuamente, en foros, IRC y email, el uso de apt-get. Tenemos que educar mejor a nuestros compañeros acerca de las herramientas más apropiadas para cada tarea, y Aptitude destaca bastante. He estado usándola desde que la conocí, y continuaré haciéndolo hasta el final de mis días como usuario de Debian/Ubuntu.

Gracias a GarfieldTech por la inspiración de este post.

Aclaración final:

30 Comments »

  1. 1
    maty1206 Says:

    Excelente artículo.

    Claro y completo.

    Muchas gracias, desde ahora usaré APTITUDE.

    ¡¡¡SI SEÑOR!!!

    Like

  2. 2
    DaniFP Says:

    Me alegro de que lo encuentres útil.
    Salu2

    Like

  3. 3
    guadafan Says:

    Pues las búsquedas son bastante malas en APTITUDE, sólo probad esto:

    apt-cache search editor audio

    y

    aptitude search editor audio

    No hay color. Creo que aptitude es incapaz de buscar por contenido.

    Like

  4. 4
    DaniFP Says:

    Pues no he hecho la comparación (aún, pero intentaré acordarme para la próxima vez que arranque en Debian o Ubuntu). En cualquier caso, nada impide usar ambas herramientas, aunque por lo general me parece más recomendable Aptitude (sin embargo está bien tener en cuenta el detalle que indicas). Gracias por el comentario.

    Like

  5. Es cierto que apt nos devuelve muchos más resultados que aptitude, por la sencilla razón de que aptitude busca por nombre de paquete, y yo la verdad es que lo prefiero la mayoría de veces. Apt devuelve tal cantidad de paquetes que generalmente tengo que estar tirando de tuberías con grep.

    No obstante, tengo un portatil bastante antiguo (Celeron 600MHz) en el cual se nota mucho la diferencia entre ambos. Aptitude tarda bastante más en ejecutar las acciones que apt, así que en él suelo utilizar apt.

    Like

  6. […] Aptitude vs Apt-Get […]

    Like

  7. 7
    Ado Ello Says:

    Gracias por tu Entrada… Pude complementar tus comandos para crearme una buena base con Alias 😉

    Like

  8. 8
    cegottardi Says:

    yo uso apt-get purge y generalmente me muestra todos los paquetes y dependecias a remover

    Like

  9. 9
    DaniFP Says:

    ¿Con “apt-get purge” sin más? Esto tengo que probarlo 8)

    Like

  10. 10
    miguelitro Says:

    Gracias, realmente sirve mucho el articulo…

    Like

  11. […] muchos usuarios de ubuntu usan comando sudo apt-get para instalar o eliminar el software. En este artículo podeis comparar la diferencia entre apt-get y aptitude. Sudo aptitude install […]

    Like

  12. 12
    vladimir Says:

    Gracias por la traducción

    Like

  13. 14
    Roberto Says:

    Instalé Ubuntu 9.04 en dos computadores y lo primero que hice fué remover programas que no me gustaban, por ejemplo:

    sudo apt-get remove pidgin

    después de un rato, me dí cuenta que apt-get, además de remover pidgin, removió la interfaz gráfica (ubuntu-desktop*).

    Luego, solucionado lo anterior, ejecuté:

    sudo aptitude purge pidgin

    y no tuve problemas =p. Desde ahí, uso más aptitude ^^

    Saludos!

    Like

  14. 16
    anonimo Says:

    es verdad eso que apt-get purge elimina todo absolutamente todo lo de un programa, pero a veces elimina mas de la cuenta, muchas veces me ha eliminado el entorno grafico o sus dependencias xD

    Like

  15. 17

    Gracias por la informacion. Se te agradece.

    Saludos!

    Like

  16. 18
    Daniel Says:

    También podrías comparar las herramientas de bash que operan sobre el sistema de archivos (cd, mv, cp, rm, rmdir, mkdir por decir las que se me ocurren) con un administrador de archivos como Midnight Comander… Interfaz curses, una sola herramienta para esas tareas, etc. Pero eso no significa que mc sea mejor que la línea de comandos, y tampoco la va a superar en uso, a pesar de que unos cuantos crean que hay que “educar” a los demás a usar solo eso.
    En cuanto al manejo de dependencias huérfanas, en sistemas muy viejos tendría la delantera aptitude, pero en sistemas actuales simplemente apt-get tiene la misma capacidad que aptitude en ese aspecto. Es una falacia decir que aptitude es mejor porque apt-get implementó determinada función mas tarde que la otra.
    Sobre la cantidad de comandos que componen apt: realmente no veo por que usar diferentes ejecutables es mas dificil que usar aptitude [órden].
    ¿Por que usar una herramienta compleja y grande si existen otras pequeñas y simples que cumplen satisfactoriamente con determinada misión?

    Like

    • 19
      teft90 Says:

      No es que sea más difícil, es que no hay necesidad de fragmentar en distintas aplicaciones una herramienta que está destinada a un solo propósito, manejar paquetes, el entorno es 1, apt, y como “herramienta avanzada de paquetes” debería ser solo apt y no apt-tarea

      La comparación me parece aún más falaz porque el mc no es una herramienta con intefaz gráfica opcional, y sería realmente ridículo pasar de las herramientas sobre el sistema de archivos a mc cd, mc mv, mc cp, mc rm, etc; en cambio con apt tienes apt-get, apt-cache, apt-etc }:) el cual mezcla las opciones con el nombre de la aplicación, en vez de ser solamente opciones.

      Like

  17. 20
    DaniFP Says:

    Porque es más versátil, o porque apt-get o dselect tengan fallos que aptitude no, o por tener una sóla herramienta para múltiples tareas en vez de distintas herramientas aunque sean equivalentes. Es cosa de cada uno.
    En cuanto a los fallos de apt-get, seguramente se habrán ido corrigiendo en las nuevas versiones, pero este artículo es del año 2007 y de aquella apt-get sí tenía los problemas que menciono en el post.
    Saludos.

    Like

  18. […] ver los paquetes manipulados usando aptitude: […]

    Like

  19. 22
    Danilo Says:

    Muy buen articulo, siempre tuve mis dudas con apt, pero ahora usare aptitude.

    Like

  20. 23
    toto Says:

    Sigo prefiriendo YUM.

    Like

  21. 24

    Hi, always i used to check webpage posts here in the early hours
    in the daylight, because i like to find out more and more.

    Like

  22. […] Aptitude vs Apt-Get […]

    Like

  23. 26

    Parecen unas ideales realmente geniales en relacion a bloguear.

    Has tratado Unos pocos puntos polemicos aqui. De cualquiera manera sibue
    escribiendo.

    Like

  24. 27

    Hola.
    ¿Y cuál es el comando APT install?, noto que ese lo mencionan en el tutorial pdf que dispone Linux Mint en su web.
    Y su autor recomienda no hacer Upgrade de actualizaciones por Terminal, ya que esta no filtra de qué tipo de niveles de estabilidad son, como si lo dispone el Actualizador GUI de Mint.

    Like

  25. 29
    url Says:

     De heho no resulta nada mal el videogame de consolas, mee ha dado divertidos ratos
    y por otro lado tambien funestos.

    Like

  26. 30
    Alessandro Says:

    Bla, bla, bla por eso dice Linus Torvalds que Linux esta inflado, en lugar de simplemente mejorar, actualizar o como le quieran llamar Apt-Get nos sacamos de la manga otro comando, asi ‘engordamos’ mas al ‘gordito’ Linux.

    Like


RSS Feed for this entry

Leave a comment