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 encore quelque peu confus. Sous le capot, n'utilisent-ils pas le même système APT ?
Pourquoi Debian maintient-elle ces outils parallèles ? (Question bonus :qu'est-ce que c'est que wajig ?)
Réponse acceptée :
La différence la plus évidente est que aptitude
fournit une interface de menu de terminal (un peu comme Synaptic dans un terminal), alors que apt-get
pas.
En ne considérant que les interfaces de ligne de commande de chacun, 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 à la suppression automatique). En fait, je crois qu'encore plus récemment, les deux outils ont été mis à jour pour partager la même base de données de packages installés manuellement et automatiquement, donc les cas où vous installez quelque chose avec apt-get et qu'aptitude veut le désinstaller sont principalement une chose de le passé.
Il y a quelques différences mineures :
- aptitude supprimera automatiquement les packages éligibles, alors qu'apt-get nécessite une commande distincte pour le faire
- Les commandes de mise à jour vs dist-upgrade ont été renommés dans aptitude avec les noms probablement plus précis safe-upgrade et mise à niveau complète , respectivement.
- aptitude exécute en fait les fonctions non seulement d'apt-get, mais également de certains de ses outils compagnons, tels qu'apt-cache et apt-mark.
- aptitude a une syntaxe de requête légèrement différente pour la recherche (par rapport à apt-cache)
- aptitude a le pourquoi et pourquoi pas commandes pour vous dire lesquelles sont installées manuellement les packages empêchent une action que vous souhaiteriez peut-être entreprendre.
- Si les actions (installation, suppression, mise à jour de packages) que vous souhaitez effectuer provoquent des conflits, aptitude peut suggérer plusieurs solutions potentielles. apt-get dira simplement "Je suis désolé Dave, je ne peux pas te permettre de faire ça."
Il existe d'autres petites différences, mais ce sont les plus importantes auxquelles je puisse penser.
En bref, aptitude appartient plus correctement à la catégorie avec Synaptic et d'autres interfaces de gestion de packages de niveau supérieur. Il se trouve qu'il a également une interface de ligne de commande qui ressemble à apt-get.
Monde bonus :Qu'est-ce que le wajig ?
Vous vous souvenez 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. C'est essentiellement un répartiteur, un wrapper autour de tous ces outils. Il applique également sudo si nécessaire. Quand vous dites 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 vous dites 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 d'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 dans les 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
.