97 votes

Aptitude vs. apt-get : Quel est l'outil recommandé (c'est-à-dire le "bon") à utiliser ?

Il y a quelque temps, j'ai lu que aptitude est l'outil préféré pour l'installation sur les systèmes basés sur Debian. Mais lorsque vous faites des recherches sur la manière d'administrer un système basé sur Debian, aptitude est rarement mentionné. La plupart des gens semblent préférer apt-get - et c'est même vrai pour les pages du wiki Debian !

Je me demande donc si je n'ai pas manqué quelque chose. Quel est le bon outil à utiliser ?

75voto

Charles Stewart Points 2782

aptitude y apt-get fonctionnent de la même manière pour de nombreuses tâches, mais pour les cas les plus délicats, comme les mises à niveau de distribution ( apt-get dist-upgrade vs. aptitude full-upgrade ), ils ont des règles différentes, et les règles de l'aptitude sont presque toujours meilleures en pratique lorsqu'elles sont en désaccord.

La raison pour laquelle vous voyez plus de documentation pour apt-get sur aptitude est principalement de l'inertie : aptitude n'est pas le frontal recommandé pour APT depuis longtemps, donc une grande partie de la documentation existante n'a pas été mise à jour, et il y a beaucoup de gens qui reconnaissent les avantages d'APT. aptitude sur apt-get mais utiliser apt-get par réflexe.

J'en suis arrivé récemment au point où je suis habituellement apt avec un i et non un - quand je tape.

Post-scriptum Notez que les règles utilisées dans apt-get y aptitude sont des cibles mouvantes - comme Hubert le note dans les commentaires, le chemin de mise à jour recommandé depuis Debian Lenny utilise maintenant apt-get pas aptitude . Cela reflète le fait que apt-get garde la trace de moins d'informations sur le paquet actuel que aptitude et n'a donc pas besoin de s'inquiéter du fait que l'état de l'APT ne soit pas "propre", et parce que apt-get les règles sont plus intelligentes qu'elles ne l'étaient auparavant. J'utilise et recommande toujours aptitude sur apt-get mais il s'agit d'une recommandation plus nuancée

22voto

Prabhu Points 1039

aptitude permet de montrer quels programmes d'une recherche sont déjà installés sur le système (avec l'aide de l'option grep ) :

aptitude search flash | grep ^i

En fait, aptitude est beaucoup plus puissant que ce que vous pouvez obtenir par le biais de la tuyauterie. grep car il prend en charge la recherche contextuelle :

Par exemple, ceci trouve tous les paquets avec 'flash' dans le nom du paquet qui sont installés :

aptitude search '~iflash'

Une "forme longue" équivalente à la "forme courte". ~i :

aptitude search '?installed(flash)'

Notez que les modèles de recherche sont libres (non ancrés) par défaut. Pour les ancrer, vous devez utiliser des motifs d'ancrage ' ^ ' (début de la chaîne) et/ou ' $ ' (fin de chaîne).

Pour trouver tous les paquets dont le nom commence par 'ttf' ou 'font' :

aptitude search '(^ttf|^font)'

(Remarque : il s'agit d'une solution de contournement d'un bogue dans le système de gestion de l'information. aptitude comme l'expression correcte de '^(ttf|font)' ne fonctionne pas correctement -- il trouve les paquets dont le nom commence par 'ttf' ou contiennent "police".)

Autre nifty aptitude caractéristiques :

Afficher tous les paquets ayant 'firmware' dans leur nom et ayant AUSSI 'wireless' dans leur description :

aptitude search 'firmware ~dwireless'

ou la forme longue :

aptitude search '?and(?name(firmware),?description(wireless))'

(Note : dans la forme courte, les arguments délimités par des espaces sont AND entre guillemets ; s'ils sont passés comme des arguments de ligne de commande argv[] séparés, ils sont OR).

p   atmel-firmware       - Firmware for Atmel at76c50x wireless networking chips.
p   firmware-atheros     - Binary firmware for Atheros wireless cards
...
p   libertas-firmware    - Firmware for Marvell's libertas wireless chip series
p   zd1211-firmware      - Firmware images for the zd1211rw wireless driver

~U montre tous les paquets qui peuvent être mis à jour à partir de leurs versions actuelles avec de nouvelles versions :

# aptitude update ; aptitude versions '~U'
Package virtualbox-4.1:            
i   4.1.18-78361~Debian~squeeze                       100
p   4.1.20-80170~Debian~squeeze     <NULL>            500

Afficher les paquets qui recommandent 'gcc-multilib'.

$ aptitude search '~DRecommends:gcc-multilib'
i   libc6-dev-i386   - Embedded GNU C Library: 32-bit development libraries for AMD64

Expliquez pourquoi il est nécessaire d'installer 'fuse-utils'.

$ aptitude why fuse-utils
i   xorg           Depends    xterm | x-terminal-emulator
pi  gnome-terminal Provides   x-terminal-emulator
pi  gnome-terminal Recommends gvfs
pi  gvfs           Depends    libgdu0 (>= 2.29.90)
pi  libgdu0        Depends    udisks (< 1.1.0)
pi  udisks         Recommends ntfsprogs
pi  ntfsprogs      Depends    fuse-utils (> 2.5.0)

(Cet exemple montre une partie de la folie résultant de l'installation par défaut, depuis Squeeze( ?), de tous les paquets " recommandés ". Installer gnome-terminal finit par installer ntfsprogs et fuse-utils, zut ! Je pense que la plupart des gens veulent juste la perspective du terminal et non l'intégration NTFS intégrée, qui est optionnelle, à moins qu'ils ne l'aient spécifiée).

Trouvez tous les paquets qui fournissent le service "mail-transport-agent" :

$ aptitude search '?provides(mail-transport-agent)'
p   citadel-mta          - complete and feature-rich groupware server (mail transport agent)
...
p   nullmailer           - simple relay-only mail transport agent
p   postfix              - High-performance mail transport agent
i   sendmail-bin         - powerful, efficient, and scalable Mail Transport Agent
p   ssmtp                - extremely simple MTA to get mail off the system to a mail hub
p   xmail                - advanced, fast and reliable ESMTP/POP3 mail server

Affiche tous les noms de paquets qui sont installés, mais qui ne sont ni essentiels ni automatiquement installés par les dépendances :

$ aptitude search '~i!(~E|~M)' -F '%p'

Malheureusement, ce matériel est plutôt mal documenté et difficile à trouver, mais aquí C'est la meilleure référence (du mainteneur de 'aptitude').

4voto

pagliuca Points 139

Según la FAQ de Debian GNU/Linux sur la gestion des paquets L'aptitude est plus complexe qu'apt-get et dépend des outils de gestion de paquets moins complexes apt-get et dpkg.

Par conséquent, pour les besoins les plus simples, vous pouvez utiliser les outils les plus simples, tandis que pour les besoins plus complexes, vous pouvez compter sur l'outil le plus sophistiqué (apitude).

Citation de la FAQ Debian : "aptitude fournit les fonctionnalités de dselect et apt-get, ainsi que de nombreuses fonctionnalités supplémentaires que l'on ne trouve dans aucun des deux programmes."

3voto

Fleshgrinder Points 143

Aptitude marque les paquets qui ont été installés à cause d'une dépendance avec l'étiquette auto. Si vous purgez ou supprimez maintenant un paquet, aptitude supprimera automatiquement les paquets installés automatiquement qui ne sont plus utilisés en même temps que le paquet que vous voulez purger ou supprimer.

C'est la raison principale pour laquelle je pense personnellement que l'aptitude est toujours meilleure que l'apt.

2voto

Dev Points 21

Il n'y a pas de bon outil, vous pouvez mélanger les deux en fonction de celui que vous trouvez le plus pratique pour la tâche à accomplir. aptitude est un excellent outil pour les utilisateurs de testing/sid mais il a tendance à être moins fiable pour la mise à niveau de dist d'une stable à l'autre. Voir mon article apt-get, aptitude, choisissez le bon gestionnaire de paquets pour vous .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X