Búsqueda de sitios web

¿Qué es APT y Aptitud? y ¿Cuál es la diferencia real entre ellos?


Aptitude y apt-get son dos de las herramientas populares que se encargan de la gestión de paquetes. Ambas son capaces de manejar todo tipo de actividades en paquetes, incluida la instalación, eliminación, búsqueda, etc. Pero aún así existen diferencias entre ambas herramientas que hacen que los usuarios prefieran una sobre la otra. Cuáles son esas diferencias que hacen que estas dos herramientas deban considerarse por separado es el alcance de este artículo.

¿Qué es apto?

Apt o Advanced Packaging Tool es un software gratuito y de código abierto que maneja con elegancia la instalación y eliminación de software. Inicialmente fue diseñado para los paquetes .deb de Debian, pero se hizo compatible con el Administrador de paquetes RPM.

Apt es una línea de comando completa sin GUI. Siempre que se invoca desde la línea de comando junto con la especificación del nombre del paquete que se instalará, encuentra ese paquete en la lista configurada de fuentes especificadas en '/etc/apt/sources.list' junto con la lista de dependencias. para ese paquete, los clasifica y los instala automáticamente junto con el paquete actual, lo que permite al usuario no preocuparse por instalar dependencias.

Es muy flexible, lo que permite al usuario controlar varias configuraciones fácilmente, como: agregar cualquier fuente nueva para buscar paquetes, fijar con apt, es decir, marcar cualquier paquete como no disponible durante la actualización del sistema, haciendo que su versión actual sea la versión final instalada, Actualización “inteligente”, es decir, actualizar los paquetes más importantes y dejar los menos importantes.

¿Qué es la aptitud?

Aptitude es una interfaz para una herramienta de empaquetado avanzada que agrega una interfaz de usuario a la funcionalidad, lo que permite al usuario buscar interactivamente un paquete e instalarlo o eliminarlo. Creado inicialmente para Debain, Aptitude también extiende su funcionalidad a distribuciones basadas en RPM.

Su interfaz de usuario se basa en la biblioteca ncurses que le agrega varios elementos que se ven comúnmente en las GUI. Uno de sus aspectos más destacados es que puede emular la mayoría de los argumentos de la línea de comandos de apt-get.

En resumen, Aptitude es un administrador de paquetes de nivel superior que abstrae detalles de bajo nivel y puede operar tanto en modo de interfaz de usuario interactivo basado en texto como incluso en modo no interactivo de línea de comandos.

Si desea conocer el uso de APT y Aptitude con ejemplos del mundo real, debe consultar los siguientes artículos.

  1. Aprenda 25 ejemplos útiles sobre APT-GET y APT-CACHE
  2. Aprenda la gestión de paquetes de Linux con Aptitude y Dpkg

¿Cuáles son las diferencias entre APT y Aptitude?

Además de que la principal diferencia es que Aptitude es un administrador de paquetes de alto nivel, mientras que APT es un administrador de paquetes de nivel inferior que puede ser utilizado por otros administradores de paquetes de nivel superior, otros administradores de paquetes principales. Los aspectos más destacados que separan a estos dos administradores de paquetes son:

  1. Aptitude tiene una funcionalidad más amplia que apt-get e integra funcionalidades de apt-get y sus otras variantes, incluidas apt-mark y apt. -caché.

Mientras que apt-get maneja toda la instalación del paquete, la actualización, la actualización del sistema, la purga del paquete, la resolución de dependencias, etc., Aptitude maneja muchas más cosas que apt, incluidas las funcionalidades de apt-mark y apt-cache, es decir, buscar un paquete en la lista de paquetes instalados, marcar un paquete para que se instale automática o manualmente, retener un paquete para que no esté disponible para su actualización, etc.

  1. Si bien apt-get carece de interfaz de usuario, Aptitude tiene una interfaz de usuario interactiva y de solo texto.

Apt-get, al ser un administrador de paquetes de nivel inferior, está restringido solo a la línea de comandos, mientras que Aptitude, al ser una herramienta de nivel superior, tiene una interfaz interactiva predeterminada de solo texto junto con la opción de operación de línea de comandos ingresando requerido comandos.

  1. Aptitude tiene una mejor gestión de paquetes que apt-get

En muchas situaciones que involucran instalación, eliminación y resolución de conflictos de paquetes, Aptitude demuestra su valor en lugar de apt-get. Algunas de las situaciones incluyen:

1. Al eliminar cualquier paquete instalado, Aptitude eliminará automáticamente los paquetes no utilizados, mientras que apt-get necesitaría que el usuario especifique esto explícitamente agregando opción adicional de '—auto-remove' o especificando 'apt-get autoremove'.4

2. Para investigar más a fondo por qué se bloquea determinada acción o por qué o por qué no se debe realizar una determinada acción, Aptitude ofrece 'por qué' y ' comandos "por qué no".

Me gusta: Aptitude puede encontrar el motivo para instalar un determinado paquete buscando en la lista de paquetes instalados y verificando si alguno de sus paquetes sugeridos tiene dependencias o si alguna de sus dependencias sugiere ese paquete, etc. .

$ aptitude why yaws-wiki
i   doc-base  Suggests   dhelp | dwww | doc-central | yelp | khelpcenter4
p   dwww      Depends    apache2 | httpd-cgi
p   yaws      Provides   httpd-cgi
p   yaws      Suggests   yaws-wiki

Como aquí, buscó el motivo para instalar un paquete llamado 'yaws-wiki' porque lo sugiere una dependencia (yaws) que proporciona un paquete virtual (httpd-cgi) en qué paquete (dwww) tiene dependencia y el paquete (dwww) es sugerido por uno de los paquetes instalados llamado ' base-doc'.

Esta característica falta en apt-get.

3. Si bien apt-get probablemente desaparecería en caso de una acción conflictiva con respecto a la instalación o eliminación de un paquete con un mensaje, Aptitude puede sugerir posibles medidas para eliminar ese conflicto.

Aptitude proporciona una potente búsqueda que se puede utilizar para buscar casi cualquier paquete no sólo en el sistema sino también en todo el repositorio.

Mientras que apt-get necesita otra variante de apt, es decir, apt-cache para buscar un paquete, Aptitude proporciona una manera mucho más fácil y eficiente de buscar un paquete que esté instalado o presente. en el repositorio pero aún por instalar.

Buscando un paquete usando apt-cache vs Aptitude

$ apt-cache search 'python' | head -n4
kate - powerful text editor
kcachegrind-converters - format converters for KCachegrind profiler visualisation tool
kig - interactive geometry tool for KDE
python-kde4 - Python bindings for the KDE Development Platform

$ aptitude search 'python' | head -n4
i   bpython                         - fancy interface to the Python interpreter 
p   bpython-gtk                     - fancy interface to the Python interpreter 
p   bpython-urwid                   - fancy interface to the Python interpreter 
p   bpython3                        - fancy interface to the Python3 interpreter

Aquí, de forma predeterminada, tanto apt-cache como aptitude buscan un paquete en la lista completa de paquetes en el repositorio, pero el resultado de aptitude muestra si el paquete está instalado en el sistema o no dando un indicador por paquete que aquí es 'p' que indica que el paquete está presente pero no instalado y 'i' que indica que el paquete está instalado, mientras que apt -cache simplemente enumera el paquete y su detalle de una línea sin decir si el paquete está instalado o no.

Algunos otros ejemplos de búsqueda avanzada de paquetes con Aptitude

1. Buscando un paquete en el repositorio con 'python2.7' en el nombre del paquete y '2.7' en su descripción.

$ aptitude search '~npython2.7 ~d2.7'
p   idle-python2.7                   - IDE for Python (v2.7) using Tkinter       
i   libpython2.7                     - Shared Python runtime library (version 2.7
p   libpython2.7:i386                - Shared Python runtime library (version 2.7
p   libpython2.7-dbg                 - Debug Build of the Python Interpreter (ver
p   libpython2.7-dbg:i386            - Debug Build of the Python Interpreter (ver
i A libpython2.7-dev                 - Header files and a static library for Pyth
p   libpython2.7-dev:i386            - Header files and a static library for Pyth
i   libpython2.7-minimal             - Minimal subset of the Python language (ver
p   libpython2.7-minimal:i386        - Minimal subset of the Python language (ver
i   libpython2.7-stdlib              - Interactive high-level object-oriented lan
p   libpython2.7-stdlib:i386         - Interactive high-level object-oriented lan
p   libpython2.7-testsuite           - Testsuite for the Python standard library 
i   python2.7                        - Interactive high-level object-oriented lan
p   python2.7:i386                   - Interactive high-level object-oriented lan
p   python2.7-dbg                    - Debug Build of the Python Interpreter (ver
p   python2.7-dbg:i386               - Debug Build of the Python Interpreter (ver
i A python2.7-dev                    - Header files and a static library for Pyth
p   python2.7-dev:i386               - Header files and a static library for Pyth
p   python2.7-doc                    - Documentation for the high-level object-or
p   python2.7-examples               - Examples for the Python language (v2.7)   
i   python2.7-minimal                - Minimal subset of the Python language (ver
p   python2.7-minimal:i386           - Minimal subset of the Python language (ver

Aquí '~n' indica el nombre y '~d' indica la descripción. Otra forma del mismo comando es:

aptitude search '?name(python2.7) ?description(2.7)'
Algunas otras banderas incluyen:
  1. ~i o ?installed(): busca un paquete solo en la lista de paquetes instalados.
  2. ~U o ~Upgradable: enumera todos los paquetes que se pueden actualizar con sus últimas versiones disponibles.
  3. ~E o ?Essential(): Aquellos paquetes ya sea instalados o disponibles, que son esenciales.
$ aptitude versions '?Upgradable' | head -n 12
Package apache2:
ph  2.4.7-1ubuntu4                                trusty                    500 
ph  2.4.7-1ubuntu4.5                              trusty-security           500 
ih  2.4.7-1ubuntu4.8                                                        100 
ph  2.4.7-1ubuntu4.9                              trusty-updates            500 

Package apache2-bin:
p A 2.4.7-1ubuntu4                                trusty                    500 
p A 2.4.7-1ubuntu4.5                              trusty-security           500 
i A 2.4.7-1ubuntu4.8                                                        100 
p A 2.4.7-1ubuntu4.9                              trusty-updates            500 

Como una breve lista que se muestra aquí de 3 paquetes con la versión instalada (indicada con 'i') y su versión actualizable presente (indicada con 'p').

2. Encontrar todos los paquetes que brindan un servicio en particular.

Para encontrar todos los paquetes que brindan el servicio smtp:

$ aptitude search '?provides(smtp)'
p   libghc-smtpclient-dev            - Simple Haskell SMTP client library        
p   libghc-smtpclient-dev:i386       - Simple Haskell SMTP client library        
p   libghc-smtpclient-prof           - Simple Haskell SMTP client library; profil
p   libghc-smtpclient-prof:i386      - Simple Haskell SMTP client library; profil
p   syslog-ng-mod-smtp               - Enhanced system logging daemon (SMTP plugi
p   syslog-ng-mod-smtp:i386          - Enhanced system logging daemon (SMTP plugi

3. Encontrar todos los paquetes que sugieren un paquete determinado

Como aquí, enumeramos todos los paquetes que sugieren el paquete 'gcc'.

$ aptitude search '~DSuggests:gcc' | head -n10
p   bochs                           - IA-32 PC emulator                         
p   bochs:i386                      - IA-32 PC emulator                         
p   cpp-4.4                         - GNU C preprocessor                        
p   cpp-4.4:i386                    - GNU C preprocessor                        
p   cpp-4.6                         - GNU C preprocessor                        
p   cpp-4.6:i386                    - GNU C preprocessor                        
p   cpp-4.7                         - GNU C preprocessor                        
p   cpp-4.7:i386                    - GNU C preprocessor                        
p   cpp-4.7-arm-linux-gnueabi       - GNU C preprocessor                        
p   cpp-4.7-arm-linux-gnueabi:i386  - GNU C preprocessor 

Conclusión

Por lo tanto, en la mayoría de los casos, la sintaxis de Aptitude se mantiene casi igual que la de apt-get, para que los usuarios de apt-get tengan menos problemas al migrar a Aptitude. , pero además de esto, en Aptitude se integran muchas funciones potentes que lo convierten en el elegido. Aparte de estas diferencias que destacamos, si encuentra otras diferencias interesantes entre estos dos administradores de paquetes, menciónelas en sus comentarios.