Je sais que les deux apt-get
et aptitude
sont des interfaces de gestion de paquets en ligne de commande sur Linux dérivé de Debian, avec différentes options, mais je suis toujours quelque peu confus. Sous le capot, n'utilisent-ils pas le même système APT?
Pourquoi Debian maintient-il ces outils parallèles? (Question bonus: qu'est-ce que c'est wajig ?)
La différence la plus évidente est que aptitude
fournit une interface de menu de terminal (un peu comme Synaptic dans un terminal), tandis que apt-get
ne fait pas.
En considérant uniquement les interfaces de ligne de commande de chacune, elles sont assez similaires, et pour la plupart, peu importe celle que vous utilisez. Les versions récentes des deux suivront quels packages ont été installés manuellement et lesquels ont été installés en tant que dépendances (et donc éligibles pour la suppression automatique). En fait, je pense que même plus récemment, les deux outils ont été mis à jour pour partager la même base de données de packages installés manuellement vs automatiquement, donc les cas où vous installez quelque chose avec apt-get puis aptitude veut le désinstaller sont principalement une question de le passé.
Il existe quelques différences mineures:
Il y a d'autres petites différences, mais ce sont les plus importantes auxquelles je peux penser.
En bref, aptitude appartient plus correctement à la catégorie avec Synaptic et d'autres interfaces de gestionnaire de paquets de niveau supérieur. Il se trouve simplement qu'il a également une interface de ligne de commande qui ressemble à apt-get.
Rappelez-vous comment j'ai mentionné ces outils "compagnons" comme apt-cache et apt-mark? Eh bien, il y en a beaucoup, et si vous les utilisez beaucoup, vous ne vous souviendrez peut-être pas lesquels fournissent quelles commandes. wajig est une solution à ce problème. Il s'agit essentiellement d'un répartiteur, d'une enveloppe autour de tous ces outils. Il applique également Sudo si nécessaire. Quand tu dis wajig install foo
, wajig dit "Ok, install
est fourni par apt-get
et nécessite des privilèges d'administrateur ", et il exécute Sudo apt-get install foo
. Quand tu dis wajig search foo
, wajig dit "Ok, search
est fourni par apt-cache
et ne nécessite pas de privilèges d'administrateur ", et il exécute apt-cache search foo
. Si vous utilisez wajig au lieu de apt-get, apt-mark, apt-cache et autres, vous n'aurez jamais ce problème:
$ apt-get search foo
E: Invalid operation search
Si vous voulez savoir ce que wajig fait en coulisses, quels outils il utilise pour implémenter une commande particulière, il a --simulate
et --teaching
modes.
Deux commandes wajig que j'utilise souvent sont wajig listfiles foo
et wajig whichpkg /usr/bin/foo
.
Je me suis souvent demandé. Wikipedia met en évidence que la principale caractéristique distinctive est que aptitude a une interface en mode texte plein écran (curses). Le fait que vous puissiez utiliser la plupart des apt-get
Les arguments de commande avec aptitude
lui-même ne sont qu'une décision de conception pour faciliter apt-get
utilisateurs pour passer à aptitude
et vice-versa.
Je n'ai jamais utilisé wajig
, mais la documentation suggère que c'est juste un script qui sait si vous lui passez un fichier deb
(quand il s'exécute dpkg
) ou un apt
nom du package (lors de son exécution apt-get
au lieu). Pourriez-vous l'essayer et voir si c'est ce qu'il fait?
Bien sûr, la différence réelle est:
gaurav@fern:~$ apt-get moo
(__)
(oo)
/------\/
/ | ||
* /\---/\
~~ ~~
...."Have you mooed today?"...
gaurav@fern:~$ aptitude moo
There are no Easter Eggs in this program.
aptitude est le programme préféré pour la gestion des paquets à partir de la console à la fois pour les installations de paquets et les mises à niveau de paquets ou de systèmes dans Debian.
Voici un aperçu de l'outil et des fonctionnalités qu'il possède sur apt-get: http://www.debian.org/doc/FAQ/ch-pkgtools.en.html#s-aptitude
Donc, mon conseil est de simplement installer apt-get installer aptitude :)
aptitude
se souvient des packages qui ont été explicitement demandés et qui n'ont été installés qu'en raison de dépendances. Il désinstallera automatiquement les packages qui n'étaient pas explicitement demandés lorsqu'ils ne sont plus nécessaires.
apt-get
traite les packages demandés explicitement et leurs dépendances de la même manière.
Il vaut donc mieux utiliser aptitude
, cela aide à garder votre système propre.
apt-get
, ainsi que les divers outils complémentaires, utilisent beaucoup moins de mémoire que les appels de ligne de commande respectifs de aptitude
et sont un peu plus rapides. J'étais parfaitement inconscient de cela jusqu'à ce que j'essaie de mettre à niveau l'installation de Debian sur un vieux Thinkpad pentium avec 32 Mo de RAM. Il faudrait une heure ou deux de swash-thrash pour exécuter apt-get
, qui s'est terminé avec succès; aptitude
échouerait après une longue période de réflexion.
Cette distinction est plus ou moins sans importance pour tout ce qui ressemble à un système de bureau moderne.
S'appuyant sur la réponse de @ Gaurav, les œufs de Pâques dans les deux gestionnaires de paquets sont assez drôles!:
siddhartha@siddhartha-dev:~$ apt-get moo
(__)
(oo)
/------\/
/ | ||
* /\---/\
~~ ~~
..."Have you mooed today?"...
siddhartha@siddhartha-dev:~$ aptitude moo
There are no Easter Eggs in this program.
siddhartha@siddhartha-dev:~$ aptitude -v moo
There really are no Easter Eggs in this program.
siddhartha@siddhartha-dev:~$ aptitude -vv moo
Didn't I already tell you that there are no Easter Eggs in this program?
siddhartha@siddhartha-dev:~$ aptitude -vvv moo
Stop it!
siddhartha@siddhartha-dev:~$ aptitude -vvvv moo
Okay, okay, if I give you an Easter Egg, will you go away?
siddhartha@siddhartha-dev:~$ aptitude -vvvvv moo
All right, you win.
/----\
-------/ \
/ \
/ |
-----------------/ --------\
----------------------------------------------
siddhartha@siddhartha-dev:~$ aptitude -vvvvvv moo
What is it? It's an elephant being eaten by a snake, of course.
siddhartha@siddhartha-dev:~$ aptitude -vvvvvvv moo
What is it? It's an elephant being eaten by a snake, of course.
siddhartha@siddhartha-dev:~$ aptitude -vvvvvvvv moo
What is it? It's an elephant being eaten by a snake, of course.
etc.
Ils offrent la même fonctionnalité de base: installer et supprimer des packages de la ligne de commande.
Voici une comparaison plus détaillée, publiée sur le site Web Ubuntu Stack Exchange : https://askubuntu.com/questions/1743/is-aptitude-really- meilleur-que-apt-get/1749 # 1749
Comme mentionné, http://pthree.org/2007/08/12/aptitude-vs-apt-get/ , aptitude
a une interface de ligne de commande beaucoup plus facile à utiliser.
Sous le capot, n'utilisent-ils pas le même système APT? Oui.
Le système sous-jacent n'est pas seulement apt
, mais dpkg
. Ce système est tout aussi stupide que RPM, il ne peut gérer que l'installation et l'administration de packages uniques. Il suit quels fichiers installés appartiennent à quel package.
apt
gère les téléchargements de référentiels, le suivi des dépendances, etc. pour tous les packages individuels - qu'il installe ensuite à l'aide de dpkg
. aptitude
fait de même, avec une interface différente.
Je ne sais pas si cela tient toujours, mais le développeur de Debian Edge saignant Joey Hess a toujours utilisé pour préconiser l'aptitude sur apt-get. Bien sûr, les choses doivent changer à mesure que le logiciel évolue. Apt-get gère désormais mieux les dépendances qu'auparavant. De http://lists.debian.org/debian-user/2004/04/msg03138.html
Date: mar.20 avril 2004 22:27:12 -0400 De: Joey Hess
Neuf raisons pour lesquelles vous devriez utiliser aptitude au lieu d'apt-get ou dselect.
aptitude peut ressembler à apt-get
Si vous exécutez "aptitude update" ou "aptitude upgrade" ou "aptitude install", cela ressemble et fonctionne exactement comme apt-get, avec quelques améliorations. Il n'y a donc pas de courbe d'apprentissage.
(Si vous êtes un utilisateur dselect, la courbe d'apprentissage n'est évidemment pas un de vos problèmes.)
aptitude suit les packages installés automatiquement
Arrêtez de vous soucier de l'élagage des bibliothèques inutilisées et des packages de support de votre système. Si vous utilisez aptitude pour tout installer, il gardera une trace des packages extraits uniquement par les dépendances et supprimera ces packages lorsqu'ils ne sont plus nécessaires.
aptitude gère sainement recommande
Un échec de longue date d'apt-get a été son manque de soutien à la relation Recommends. Ce qui est un problème car de nombreux paquets dans Debian s'appuient sur Recommends pour récupérer les logiciels que l'utilisateur moyen utilise généralement avec le paquet. Il s'agit d'une cause de problème non rare, même si apt-get est récemment devenu capable de mentionner au moins les packages recommandés, il est facile de manquer ses avertissements.
Aptitude prend en charge les recommandations par défaut et peut également être configuré pour prendre en charge les suggestions. Il prend même en charge l'installation des packages recommandés lorsqu'il est utilisé en mode ligne de commande.
utilisez aptitude en tant qu'utilisateur normal et évitez d'arroser votre système
Peut-être que vous ne saviez pas que vous pouvez exécuter aptitude en mode gui en tant qu'utilisateur régulier. Apportez les modifications que vous souhaitez essayer. Si vous entrez dans un vrai bordel, vous pouvez appuyer sur "q" et quitter, vos modifications ne seront pas enregistrées. (Aptitude vous permet également d'utiliser ctrl-u pour annuler les modifications.) Comme il fonctionne en tant qu'utilisateur normal, vous ne pouvez pas gérer votre système tant que vous ne dites pas à aptitude de faire quelque chose, auquel cas il vous demandera votre mot de passe root.
aptitude possède une interface utilisateur puissante et des capacités de recherche
Entre le navigateur catégorique d'aptitude et sa grande prise en charge du filtrage de style mutt et de la recherche de packages par nom, description, responsable, dépendances, etc., vous devriez pouvoir trouver des packages plus rapidement que jamais auparavant en utilisant aptitude.
aptitude facilite le suivi des logiciels obsolètes
Si Debian arrête de distribuer un paquet, apt le laissera indéfiniment sur votre système, sans avertissement ni mise à niveau. Aptitude répertorie ces packages dans sa section "Packages obsolètes et créés localement", afin que vous puissiez être informé du problème et faire quelque chose.
aptitude a une interface avec le système de tâches Debian
Aptitude vous permet d'utiliser le système de tâches de Debian tel qu'il a été conçu pour être utilisé. Vous pouvez parcourir les tâches disponibles, sélectionner une tâche à installer, puis y creuser et désélectionner les parties de la tâche que vous ne souhaitez pas. apt-get ne prend pas en charge les tâches, et aptitude est même meilleure que les outils à usage spécial comme tasksel.
aptitude prend en charge plusieurs sources
Si votre sources.list est configuré pour rendre plusieurs versions d'un package disponibles, aptitude vous permet de rechercher les versions disponibles et de choisir une version non par défaut à installer. Si un package se casse en instable, restaurez-le simplement dans la version dans testing.
aptitude enregistre ses actions
Aptitude enregistre le package qu'il installe, met à niveau et supprime dans/varlog/aptitude, ce qui peut être utile pour comprendre pourquoi les choses ont commencé à se briser après la mise à niveau d'hier ou lorsque vous avez supprimé un package partiticlar.
- voir timide jo
=================== il y a aussi une discussion plus récente de 2010 ici https://superuser.com/questions/93437/aptitude-vs-apt- get-which-is-the-recommended-aka-the-right-tool-to-use sur StackExchange.
Apt-get et aptitude s'appuient sur la bibliothèque APT, oui.
Voir mon réponse sur serverfault.com .
Debian n'est pas une entité monolithique, il y a des gens avec des opinions différentes et le responsable des aptitudes a décidé qu'apt-get avait quelques défauts et voulait construire quelque chose de mieux avec aptitude. Il a amélioré la logique pour trouver des solutions pour des scénarios de mise à niveau complexes, ajouté une interface graphique pour la console, etc. Et il y a plus que juste apt-get et aptitude, voir mon article apt-get, aptitude,… choisissez le bon package gestionnaire pour vous .