Réponses:
apt-get et aptitude sont des interfaces utilisateur différentes qui font partie du même système de gestion de packages, APT, Advanced Packaging Tool . Par exemple, les deux sont configurés à l'aide /etc/apt/apt.conf
, les deux utilisent le même espace de fichier et les mêmes formats pour représenter l'état du package, et le même espace de fichier pour stocker les fichiers .debs téléchargés.
En quoi ils diffèrent, c'est leur système de règles internes pour représenter les conflits potentiels entre les packages, comment les résoudre (disons pendant apt-get dist-upgrade
vs aptitude full-upgrade
) et comment les exprimer lors de l'interaction avec l'utilisateur. D'une manière générale, les deux peuvent faire la mauvaise chose dans des situations délicates, mais apt-get est beaucoup plus susceptible de se tromper que l'aptitude.
Beaucoup de bons conseils sont déjà là, mais permettez-moi d'ajouter une chose que personne n'a mentionnée. Si vous décidez de changer, vous voudrez peut-être exécuter cette commande, selon ce que vous avez fait avec apt-get
:
aptitude keep-all
Cette commande réinitialise aptitude
le sens de quels paquets sont orphelins et doivent être supprimés.
Voici la raison pour laquelle il est parfois utile: pendant un certain temps maintenant, les deux apt-get
et aptitude
suivront les packages qui ont été installés automatiquement en tant que dépendance de quelque chose d'autre. Ainsi, par exemple, si vous installez mpd
, vous pourriez obtenir lib-so-and-so
une dépendance. Ils le font, de sorte que si vous supprimez plus tard mpd
, il lib-so-and-so
est également supprimé. Mais aptitude
et apt-get
gérer ce nettoyage différemment. aptitude
essaie immédiatement de supprimer toutes les dépendances orphelines; mais apt-get
suggère simplement que vous couriez apt-get autoremove
pour nettoyer. (La logique derrière tout cela est que vous n'avez obtenu la bibliothèque que depuis que vous en avez mpd
besoin. Si vous ne la conservez pas mpd
, vous ne devriez plus avoir besoin de la bibliothèque. Si un autre paquet en dépend toujours, alors les deux aptitude
etapt-get
le saura et n'essaiera pas de supprimer la bibliothèque.)
Quel est mon point? Eh bien, si vous avez vu des coups de pouce constants apt-get autoremove
et que vous passez à aptitude
, vous risquez d'être choqué la première fois que vous essayez d'installer quelque chose. aptitude
va tout de suite essayer de supprimer tous ces orphelins. En général, ce sera bien (ils sont orphelins après tout, et ce n'est pas nécessaire), mais il y a un cas compliqué. Les méta-packages de bureau impliquent tous une chaîne de dépendance complexe dans laquelle chaque programme individuel est extrait en tant que dépendance d'un wrapper de package virtuel. Par exemple, si Gnome est installé parce que vous avez installé le gnome
package, tous vos programmes de bureau normaux ont été installés en tant que dépendances. Si vous avez désinstallé un seul de ces programmes (par exemple, Ekiga ou Gedit), aux yeux deaptitude
le reste de votre bureau devrait également être supprimé. Notez que aptitude
toujours demande avant de supprimer des choses, mais les gens entrent souvent «Y» sans lire. D'après mon expérience, c'est la plainte / confusion la plus courante pour les nouveaux utilisateurs de Debian.
Deux conseils généraux:
aptitude
ou apt-get
attentivement, avant de dire oui à quoi que ce soit.aptitude -s safe-upgrade
ou aptitude -s install foo
. Le -s|--simulate
drapeau est ton ami.Il a été dit sur la liste de diffusion Debian, il y a des années, que passer d'apt-get à aptitude était risqué. Il s'agit de deux versions de Debian (disons 10 ans). Tous ces problèmes semblent être résolus maintenant, et je n'ai certainement vu aucun problème sur Debian ou Ubuntu.
apt-get
à aptitude
. À l'époque, ils géraient de nombreuses fonctions essentielles très différemment. Au fil du temps, ils sont devenus beaucoup plus similaires et aptitude
ont mûri une tonne. Pour 90% des cas maintenant, aucun changement ne devrait survenir. Voir mon article pour un cas de bord.
Je dirais aussi allez-y et utilisez aptitude
.
Aptitude
a une meilleure gestion des dépendances que apt-get
. Cela aidera à maintenir le nombre de paquets orphelins à un niveau bas.
J'ai lu il y a un moment qui aptitude
a le meilleur algorithme de mise à niveau dist par rapport à apt-get
. Mais ce n'est guère une caractéristique mortelle car elle n'est pas utilisée très souvent dans la durée de vie d'un système.
De plus, vous aurez plus de choses réunies dans un seul outil. Plutôt que de se rappeler quand appeler apt-get
, apt-cache
ou dpkg
et avec lequel je commute simplement utiliser les aptitudes et obtenir la plupart des choses.
Quant aux complications lors du passage "au milieu": je ne me souviens pas en avoir eu quand je l'ai fait.
Ne sont-ils pas simplement une interface différente du même backend?
aptitude
est une interface plus fonctionnelle ...
dpkg
. mais dpkg
installe simplement les packages; ce sont les frontaux qui sont chargés de la recherche, de la résolution des dépendances et du téléchargement.
D'après mon expérience, ils ont une façon différente d'épingler les versions des packages. Dans mon cas, j'ai dit à aptitude de verrouiller certains packages, en supposant que je serais à l'abri des futures mises à jour. J'avais tort; le gestionnaire de mise à jour programmé cron, qui utilise apt-get, procède à sa mise à niveau à ma grande consternation.
Drats, pendant que j'écrivais ceci, j'ai googlé et découvert que le bug ( # 557580 aptitude n'obéit pas aux pins dans preferences.d / *) était déjà corrigé!
J'utilise à la fois apt-get et aptitude sans aucun problème: j'ai la même question ... Pourquoi les gens disent ça ??? :RÉ
Continuez, et ne vous inquiétez pas: aptitude est juste une interface texte pour apt-get, que vous pouvez même utiliser comme application en ligne de commande, par exemple, apt-get install foo
est la même que aptitude install foo
.
Cordialement
apt-get
proposent également la suppression automatique des packages installés uniquement en tant que dépendances. La différence restante à cet égard est qu'elle aptitude
supprime instantanément les dépendances (le cas échéant), mais apt-get
vous incite uniquement à exécuter la commande apt-get autoremove
. Mais ils suivent tous les deux les dépendances de la même manière maintenant. Cependant, ils diffèrent toujours dans la gestion des dépendances complexes et des cas marginaux (installations ou suppressions très compliquées), mais pour la majorité des gens et la majorité des situations, ils fonctionnent de la même manière maintenant.
aptitude
les supprimera immédiatement, maisapt-get
ne vous invitera à les supprimer qu'en entrant la commandeapt-get autoremove
. En général, ils voudront supprimer les mêmes éléments. Voir ce lien, cependant, pour un cas complexe où ils n'étaient pas d'accord sur cela: forums.debian.net/viewtopic.php?f=10&t=49589&start=0