Peut-il entraîner des problèmes pour passer d'apt-get à aptitude?

8

J'ai pensé à passer à aptitude, mais j'ai entendu des gens dire "si vous utilisez déjà apt-get, vous devez attendre votre prochaine installation pour passer." Pourquoi les gens disent ça? Quel genre de problèmes (le cas échéant) cela peut-il causer?

Matthieu
la source

Réponses:

8

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-upgradevs 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.

Charles Stewart
la source
2
Une excellente réponse claire. Un détail supplémentaire est de savoir comment / quand ils suppriment les dépendances installées automatiquement. aptitudeles supprimera immédiatement, mais apt-getne vous invitera à les supprimer qu'en entrant la commande apt-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
Télémaque le
5

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 aptitudele 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-getet aptitudesuivront 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-soune dépendance. Ils le font, de sorte que si vous supprimez plus tard mpd, il lib-so-and-soest également supprimé. Mais aptitudeet apt-getgérer ce nettoyage différemment. aptitudeessaie immédiatement de supprimer toutes les dépendances orphelines; mais apt-getsuggère simplement que vous couriez apt-get autoremovepour nettoyer. (La logique derrière tout cela est que vous n'avez obtenu la bibliothèque que depuis que vous en avez mpdbesoin. 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 aptitudeetapt-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 autoremoveet que vous passez à aptitude, vous risquez d'être choqué la première fois que vous essayez d'installer quelque chose. aptitudeva 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 gnomepackage, 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 deaptitudele 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:

  1. Lisez toujours la sortie de aptitudeou apt-getattentivement, avant de dire oui à quoi que ce soit.
  2. N'oubliez pas que vous pouvez toujours faire un essai à sec en utilisant aptitude -s safe-upgradeou aptitude -s install foo. Le -s|--simulatedrapeau est ton ami.
Télémaque
la source
4

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.

CarlF
la source
1
Avez-vous un lien vers le message de la liste de diffusion?
Matthew
Matthew, imaginez-vous que je garde ici une archive parfaitement indexée de la liste de diffusion Debian-user? Quand il est clair de ce qui précède que je ne me souviens même pas de l'année?
CarlF
@Matthew: il y a quelque temps (Sarge ou Early Etch), beaucoup de gens craignaient de passer de 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 aptitudeont mûri une tonne. Pour 90% des cas maintenant, aucun changement ne devrait survenir. Voir mon article pour un cas de bord.
Télémaque le
2

Je dirais aussi allez-y et utilisez aptitude.
Aptitudea 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 aptitudea 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-cacheou dpkget 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.

foraidt
la source
1

Ne sont-ils pas simplement une interface différente du même backend?

Svish
la source
2
aptitudeest une interface plus fonctionnelle ...
Quack Quichotte
C'est possible. Mais une interface avec plus de fonctionnalités ne signifie pas nécessairement un backend différent.
Svish
2
non, vous avez raison, les deux sont frontaux dpkg. mais dpkginstalle 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.
Quack Quichote
mais la recherche, le téléchargement et la résolution des dépendances ne casseront rien. ou si c'est le cas, ce serait très bizarre à mon avis ...
Svish
2
viens de remarquer votre dernier commentaire. gardez à l'esprit que ce sont les interfaces qui décident quoi installer; dpkg fait juste l'installation. si quelque chose se casse, c'est généralement parce que la résolution de dépendance a échoué, ou parce que l'utilisateur a désactivé la résolution de dépendance (par exemple avec une option --force ).
Quack Quichote
1

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é!

syockit
la source
-1

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 fooest la même que aptitude install foo.

Cordialement

dag729
la source
Je ne pense pas que ce soit pareil. Sauf si les choses ont changé, aptitude fera plus de suivi des dépendances et supprimera tous les packages qu'il a installés automatiquement, contrairement à apt-get. Autrement dit, si foo dépend de bar et que vous installez et supprimez foo avec apt-get, bar restera sur votre système. Si vous faites de même avec aptitude, ce ne sera pas le cas.
William Pursell
Vous avez raison: voir les commentaires du ~ quack ci-dessous.
dag729
@William, @ dag729: Les versions actuelles de apt-getproposent également la suppression automatique des packages installés uniquement en tant que dépendances. La différence restante à cet égard est qu'elle aptitudesupprime instantanément les dépendances (le cas échéant), mais apt-getvous 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.
Télémaque le