Recherche de site Web

Qu'est-ce que l'APT et l'Aptitude ? et quelle est la vraie différence entre eux ?


Aptitude et apt-get sont deux des outils populaires qui gèrent la gestion des packages. Les deux sont capables de gérer toutes sortes d’activités sur les packages, y compris l’installation, la suppression, la recherche, etc. Mais il existe néanmoins des différences entre les deux outils qui incitent les utilisateurs à préférer l’un à l’autre. Quelles sont les différences qui font que ces deux outils doivent être considérés séparément, telle est la portée de cet article.

Qu'est-ce qu'Apt

Apt ou Advanced Packaging Tool est un logiciel gratuit et open source qui gère gracieusement l'installation et la suppression de logiciels. Initialement, il a été conçu pour les packages .deb de Debian, mais il a été rendu compatible avec RPM Package Manager.

Apt est une ligne de commande complète sans interface graphique. Chaque fois qu'il est invoqué depuis la ligne de commande en spécifiant le nom du package à installer, il trouve ce package dans la liste configurée des sources spécifiée dans '/etc/apt/sources.list' ainsi que la liste des dépendances. pour ce package, les trie et les installe automatiquement avec le package actuel, permettant ainsi à l'utilisateur de ne pas se soucier de l'installation des dépendances.

Il est très flexible, permettant à l'utilisateur de contrôler facilement diverses configurations, comme : ajouter n'importe quelle nouvelle source pour rechercher des packages, apt-pinning, c'est-à-dire marquer tout package indisponible pendant la mise à niveau du système, faisant ainsi de sa version actuelle sa version finale installée, Mise à niveau « intelligente », c'est-à-dire mettre à niveau les packages les plus importants et laisser les moins importants.

Qu’est-ce que l’Aptitude ?

Aptitude est une interface frontale pour un outil d'empaquetage avancé qui ajoute une interface utilisateur à la fonctionnalité, permettant ainsi à un utilisateur de rechercher de manière interactive un package et de l'installer ou de le supprimer. Initialement créé pour Debain, Aptitude étend également ses fonctionnalités aux distributions basées sur RPM.

Son interface utilisateur est basée sur la bibliothèque ncurses qui y ajoute divers éléments couramment vus dans les interfaces graphiques. L’un de ses points forts est qu’il peut émuler la plupart des arguments de ligne de commande d’apt-get.

Au total, Aptitude est un gestionnaire de packages de niveau supérieur qui résume les détails de bas niveau et peut fonctionner à la fois en mode interface utilisateur interactive basée sur du texte et même en mode non interactif en ligne de commande.

Si vous souhaitez connaître l'utilisation d'APT et d'Aptitude avec des exemples concrets, vous devriez consulter les articles suivants.

  1. Apprenez 25 exemples utiles sur APT-GET et APT-CACHE
  2. Apprenez la gestion des packages Linux avec Aptitude et Dpkg

Quelles sont les différences entre APT et Aptitude ?

Outre la principale différence, Aptitude est un gestionnaire de packages de haut niveau, tandis que APT est un gestionnaire de packages de niveau inférieur qui peut être utilisé par d'autres gestionnaires de packages de niveau supérieur, d'autres principaux les points forts qui séparent ces deux gestionnaires de packages sont :

  1. Aptitude est plus vaste en fonctionnalités que apt-get et intègre les fonctionnalités d'apt-get et ses autres variantes, notamment apt-mark et apt -cache.

Alors que apt-get gère toute l'installation du paquet, la mise à niveau, la mise à niveau du système, la purge du paquet, la résolution des dépendances, etc., Aptitude gère beaucoup plus de choses qu'apt, y compris les fonctionnalités de apt-mark et apt-cache, c'est-à-dire rechercher un package dans la liste des packages installés, marquer un package pour qu'il soit installé automatiquement ou manuellement, conserver un package le rendant indisponible pour la mise à niveau, etc.

  1. Alors qu'apt-get ne dispose pas d'interface utilisateur, Aptitude dispose d'une interface utilisateur interactive et uniquement en texte.

Apt-get étant un gestionnaire de paquets de niveau inférieur est limité uniquement à la ligne de commande, tandis qu'Aptitude étant un outil de niveau supérieur possède une interface interactive en texte uniquement par défaut ainsi qu'une option d'opération en ligne de commande en saisissant les informations requises. commandes.

  1. Aptitude a une meilleure gestion des paquets qu'apt-get

Dans de nombreuses situations impliquant l'installation, la suppression et la résolution de conflits pour les packages, Aptitude fait ses preuves plutôt qu'apt-get. Certaines des situations incluent :

1. Lors de la suppression d'un package installé, Aptitude supprimera automatiquement les packages inutilisés, tandis que apt-get nécessitera que l'utilisateur le spécifie explicitement en ajoutant option supplémentaire de '—auto-remove' ou en spécifiant 'apt-get autoremove'.4

2. Pour enquêter plus en détail sur la raison pour laquelle certaines actions sont bloquées ou pourquoi ou pourquoi une certaine action doit être entreprise, Aptitude propose 'pourquoi' et '. pourquoi-pas' commandes.

J'aime : Aptitude peut vous trouver la raison d'installer un certain package en recherchant dans la liste des packages installés et en vérifiant si l'un de leurs packages suggérés a une dépendance ou si l'une de leurs dépendances suggère ce package ou ainsi de suite. .

$ 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

Comme ici, il a recherché la raison pour installer un paquet nommé 'yaws-wiki' car il est suggéré par une dépendance (yaws) qui fournit un paquet virtuel (httpd-cgi) sur quel package (dwww) a une dépendance et le package (dwww) est suggéré par l'un des packages installés nommé ' doc-base'.

Cette fonctionnalité est manquante dans apt-get.

3. Bien que apt-get s'éteigne probablement en cas d'action conflictuelle concernant l'installation ou la suppression d'un paquet avec un message, Aptitude peut suggérer mesures possibles pour éliminer ce conflit.

Aptitude fournit une fonction de recherche puissante qui peut être utilisée pour rechercher presque tous les packages, non seulement sur le système mais également sur l'ensemble du référentiel.

Alors que apt-get a besoin d'une autre variante d'apt, à savoir apt-cache pour rechercher un package, Aptitude fournit un moyen beaucoup plus simple et efficace de rechercher un package installé ou présent. dans le référentiel mais pas encore installé.

Recherche d'un package à l'aide d'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

Ici, par défaut, apt-cache et aptitude recherchent un package dans la liste complète des packages dans le référentiel, mais la sortie d'aptitude indique si le package est installé sur le système ou pas en donnant un indicateur par package qui est ici 'p' indiquant que le package est présent mais non installé et 'i' qui indique que le package est installé, alors qu'apt -cache répertorie simplement le package et ses détails sur une ligne sans indiquer si le package est installé ou non.

Quelques autres exemples de recherche avancée de packages avec Aptitude

1. Recherche d'un package dans le référentiel avec 'python2.7' dans le nom du package et '2.7' dans sa description.

$ 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

Ici, '~n' indique le nom et '~d' indique la description. Une autre forme de la même commande est :

aptitude search '?name(python2.7) ?description(2.7)'
Certains autres drapeaux incluent :
  1. ~i ou ?installed() : Recherche d'un package dans la liste des packages installés uniquement.
  2. ~U ou ~Upgradable : répertorie tous les packages pouvant être mis à niveau avec leurs dernières versions disponibles.
  3. ~E ou ?Essential() : les packages installés ou disponibles qui sont essentiels.
$ 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 

Comme une courte liste présentée ici de 3 packages avec la version installée (indiquée par 'i') et leur version évolutive présente (indiquée par 'p').

2. Trouver tous les forfaits qui fournissent un service particulier

Pour trouver tous les packages qui fournissent le service 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. Trouver tous les packages suggérant un certain package

Comme ici, nous répertorions tous les packages qui suggèrent le package '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 

Conclusion

Ainsi, dans la plupart des cas, la syntaxe de Aptitude est presque la même que celle de apt-get, pour que les utilisateurs d'apt-get aient moins de mal à migrer vers Aptitude. , mais en plus de cela, de nombreuses fonctionnalités puissantes sont intégrées dans Aptitude qui en font celui à choisir. Hormis ces différences que nous avons soulignées, si vous trouvez d’autres différences intéressantes entre ces deux gestionnaires de packages, mentionnez-les dans vos commentaires.