web-dev-qa-db-fra.com

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 Debian. Mais lorsque vous cherchez comment administrer un système basé sur Debian, il est rarement fait mention d'aptitude. La plupart des gens semblent préférer apt-get - et c'est même le cas pour les pages du wiki Debian!

Ainsi, je me demande si j'ai oublié quelque chose. Quel est le bon outil à utiliser?

93
Vokuhila-Oliba

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

La raison pour laquelle vous voyez plus de documentation pour apt-get sur aptitude est principalement due à l’inertie: aptitude n’a pas été le frontal recommandé pour APT pendant tout ce temps, une grande partie de la documentation existante n’a pas été mise à jour, et Beaucoup de gens qui reconnaissent les avantages de aptitude par rapport à apt-get mais utilisent apt-get par réflexe.

J'ai récemment pris l'habitude de suivre apt avec un i et non un - lorsque je tape.

Postscript Notez que les règles utilisées dans apt-get et aptitude sont des cibles mobiles. Comme Hubert le note dans les commentaires, le chemin de mise à niveau recommandé par Debian Lenny utilise désormais apt-get et non aptitude. Cela reflète le fait que apt-get garde moins d'indications sur le paquet actuel que aptitude et qu'il n'est donc pas nécessaire de s'inquiéter du fait que APT ne soit pas "propre", et parce que les règles apt-get sont plus intelligentes qu'elles ne l'étaient auparavant. être. J'utilise toujours et recommande aptitude par rapport à apt-get, mais il s'agit d'une recommandation plus nuancée

72
Charles Stewart

aptitude facilite l'affichage des programmes que vous avez déjà installés sur le système (à l'aide de grep):

aptitude search flash | grep ^i

En fait, la recherche de aptitude est beaucoup plus puissante que ce que vous obtenez par le biais de grep, car elle prend en charge la recherche contextuelle:

par exemple, tous les paquets avec le nom 'flash' installé dans le nom 'flash' 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 (sans ancrage) par défaut. Pour les ancrer, vous devez utiliser les modèles d'ancrage '^' (début de chaîne) et/ou '$' (fin de chaîne).

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

aptitude search '(^ttf|^font)'

(Remarque: il s'agit d'une solution de contournement pour un bogue dans aptitude, car la regex correcte de '^(ttf|font)' ne fonctionne pas correctement. Elle trouve les paquets dont le nom commence par 'ttf' ou contient ' Police de caractère'.)

Autres astuces aptitude:

Montrer tous les paquets avec 'firmware' dans leur nom qui AUSSI ont 'sans fil' dans leur description:

aptitude search 'firmware ~dwireless'

ou forme longue:

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

(Remarque: dans la forme abrégée, les arguments délimités par un espace sont AND dans des guillemets; s'ils sont passés en tant qu'arguments de ligne de commande argv [] distincts, ils sont OU).

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 affiche tous les packages pouvant être mis à niveau à partir de leurs versions actuelles avec les 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

Montrer 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 peut-être 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 la valeur par défaut depuis Squeeze (?) D'installer tous les paquets "Recommends". L'installation de gnome-terminal finit par installer ntfsprogs et Fuse-utils, egad! Je pense que la plupart des gens veulent juste la perspective du terminal et pas l'intégration NTFS intégrée, qui est facultative, à moins d'indication contraire.)

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 paquetages installés, qui ne sont ni essentiels ni installés automatiquement par dépendances:

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

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

20
Chris P

Selon de la Debian GNU/Linux FAQ à propos de la gestion des paquets , aptitude est plus complexe que apt-get et dépend de la moins complexe outils de gestion de paquets apt-get et dpkg.

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

Extrait de la FAQ Debian: "aptitude fournit les fonctionnalités de dselect et d’apt-get, ainsi que de nombreuses fonctionnalités supplémentaires, qui ne figurent dans aucun de ces programmes."

4
pagliuca

aptitude marque les paquets qui ont été installés en raison d’une dépendance avec la balise automatique. Si vous purgez ou supprimez maintenant un paquet, aptitude supprimera automatiquement les paquets installés automatiquement qui ne sont plus utilisés parallèlement au paquet que vous voulez purger ou supprimer.

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

3
Fleshgrinder

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

2
Raphaël Hertzog