Què és APT i Aptitude? i Quina és la diferència real entre ells?


Aptitude i apt-get són dues de les eines populars que gestionen la gestió de paquets. Tots dos són capaços de gestionar tot tipus d'activitats en paquets, com ara la instal·lació, l'eliminació, la cerca, etc. Però encara hi ha diferències entre ambdues eines que fan que els usuaris prefereixin una sobre l'altra. Quines són aquestes diferències que fan que aquestes dues eines es considerin per separat és l'abast d'aquest article.

Què és Apt

Apt o Advanced Packaging Tool és un programari gratuït i de codi obert que gestiona amb gràcia la instal·lació i eliminació de programari. Inicialment es va dissenyar per als paquets .deb de Debian, però s'ha fet compatible amb el gestor de paquets RPM.

Apt és una línia d'ordres sencera sense GUI. Sempre que s'invoca des de la línia d'ordres juntament amb especificar el nom del paquet que cal instal·lar, troba aquest paquet a la llista configurada de fonts especificada a '/etc/apt/sources.list' juntament amb la llista de dependències d'aquest paquet i les ordena i els instal·la automàticament juntament amb el paquet actual, de manera que l'usuari no es preocupi d'instal·lar dependències.

És molt flexible que permet a l'usuari controlar diverses configuracions fàcilment, com ara: afegir qualsevol font nova per cercar paquets, apt-pinning, és a dir, marcar qualsevol paquet no disponible durant l'actualització del sistema, fent que la seva versió actual sigui la seva versió final instal·lada, \intel·ligent. ” actualització, és a dir, actualitzar els paquets més importants i deixar els menys importants.

Què és Aptitud?

Aptitude és una eina d'embalatge avançada que afegeix una interfície d'usuari a la funcionalitat, permetent així a l'usuari cercar un paquet de manera interactiva i instal·lar-lo o eliminar-lo. Creat inicialment per a Debain, Aptitude també amplia la seva funcionalitat a les distribucions basades en RPM.

La seva interfície d'usuari es basa en la biblioteca ncurses que afegeix diversos elements que es veuen habitualment a les GUI. Un dels seus aspectes més destacats és que pot emular la majoria dels arguments de la línia d'ordres d'apt-get.

En total, Aptitude és un gestor de paquets de nivell superior que resumeix detalls de baix nivell i pot funcionar tant en mode d'IU interactiu basat en text com fins i tot en mode no interactiu de línia d'ordres.

Si voleu conèixer l'ús d'APT i Aptitude amb exemples del món real, hauríeu de dirigir-vos als articles següents.

  1. Aprèn 25 exemples útils sobre APT-GET i APT-CACHE
  2. Aprèn la gestió de paquets de Linux amb Aptitude i Dpkg

Quines diferències hi ha entre APT i Aptitude?

A part de la diferència principal que és que Aptitude és un gestor de paquets d'alt nivell, mentre que APT és un gestor de paquets de nivell inferior que pot ser utilitzat per altres gestors de paquets de nivell superior, altres aspectes principals que separen aquests dos gestors de paquets són:

  1. Aptitude té més funcionalitats que apt-get i integra funcionalitats d'apt-get i les seves altres variants, com ara apt-mark i apt-cache.

Mentre que apt-get gestiona tota la instal·lació de paquets, l'actualització de grau, l'actualització del sistema, la depuració de paquets, la resolució de dependències, etc., Aptitude gestiona moltes més coses que apt, incloses les funcionalitats d'apt-mark i apt-cache, és a dir, cercar un paquet a llista de paquets instal·lats, marcant un paquet que s'instal·larà automàticament o manualment, mantenint un paquet que no estigui disponible per a l'actualització, etc.

  1. Tot i que apt-get no té una interfície d'usuari, Aptitude té una interfície d'usuari interactiva només de text

Apt-get, com a gestor de paquets de nivell inferior, només es limita a la línia d'ordres, mentre que Aptitude és una eina de nivell superior té una interfície interactiva només de text per defecte juntament amb l'opció d'operar la línia d'ordres introduint les ordres necessàries.

  1. Aptitude té una millor gestió de paquets que apt-get

En moltes situacions que impliquen instal·lació, eliminació i resolució de conflictes per a paquets, Aptitude demostra la seva vàlua més que apt-get. Algunes de les situacions inclouen:

1. Mentre s'elimina qualsevol paquet instal·lat, Aptitude eliminarà automàticament els paquets no utilitzats, mentre que apt-get necessitaria que l'usuari ho especifiqui explícitament afegint l'opció addicional de '—auto-remove' o especificant 'apt-get autoremove'.4

2. Per investigar més sobre per què es bloqueja una determinada acció o per què s'ha de fer una determinada acció o per què no, Aptitude ofereix les ordres per què i per què no.

Com: Aptitude pot trobar el motiu per instal·lar un determinat paquet mirant a la llista de paquets instal·lats i comprovant si algun dels seus paquets suggerits té una dependència o alguna de les seves dependències suggereix aquest paquet o així successivament.

$ 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

Com aquí, va buscar el motiu per instal·lar un paquet anomenat yaws-wiki perquè el suggereix una dependència (yaws) que proporciona un paquet virtual ( httpd-cgi) de quin paquet (dwww) té dependència i el paquet (dwww) és suggerit per un dels paquets instal·lats anomenats doc-base .

Aquesta característica no es troba a apt-get.

3. Tot i que apt-get probablement desapareixeria en cas d'acció conflictiva pel que fa a la instal·lació o eliminació del paquet amb un missatge, Aptitude pot suggerir possibles mesures per eliminar aquest conflicte.

Aptitude proporciona una cerca potent que es pot utilitzar per cercar gairebé qualsevol paquet no només al sistema sinó també a tot el repositori.

Mentre que apt-get necessita una altra variant d'apt, és a dir, apt-cache per cercar un paquet, Aptitude ofereix una manera molt més fàcil i eficaç de cercar un paquet que estigui instal·lat o present al repositori però encara s'ha d'instal·lar.

$ 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 manera predeterminada, tant apt-cache com aptitude cerquen un paquet a la llista sencera de paquets del repositori, però la sortida d'aptitude mostra si el paquet està instal·lat al sistema o no donant un senyalador per paquet que aquí és p que indica que el paquet està present però no instal·lat i i que indica que el paquet està instal·lat, mentre que apt-cache només enumera el paquet i els seus detalls d'una línia sense dir si el paquet està instal·lat o no.

1. Cercant un paquet al dipòsit amb python2.7 al nom del paquet i 2.7 a la seva descripció.

$ 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 nom i ~d indica la descripció. Una altra forma de la mateixa ordre és:

$ aptitude search '?name(python2.7) ?description(2.7)'

  1. ~i o ?installed(): cerca un paquet només a la llista de paquets instal·lats.
  2. ~U o ~Actualitzable: enumera tots els paquets que es poden actualitzar amb les seves últimes versions disponibles.
  3. ~E o ?Essential(): Aquells paquets instal·lats o disponibles, que són essencials.

$ 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 

Com una llista breu que es mostra aquí de 3 paquets amb la versió instal·lada (indicada amb i) i la seva versió actualitzable present (indicada amb p).

Per trobar tots els paquets que ofereixen servei 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

Com aquí, enumerem tots els paquets que suggereixen el paquet 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ó

Així, per a la majoria dels casos, la sintaxi d'Aptitude es manté gairebé igual que la d'apt-get, per fer que els usuaris d'apt-get tinguin menys dolor a l'hora de migrar a Aptitude, però a més d'això, s'integren moltes funcions potents a Aptitude. que el converteixen en el que s'ha d'escollir. A part d'aquestes diferències que hem destacat, si trobeu altres diferències interessants entre aquests dos gestors de paquets, mencioneu-les als vostres comentaris.