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


Il y a quelque temps, j'ai lu ça aptitude est l'outil préféré pour l'installation sur les systèmes basés sur Debian. Mais lorsque vous effectuez une recherche sur la façon d'administrer un système basé sur Debian, alors 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 j'ai raté quelque chose. Quel est le bon outil à utiliser?


93
2018-01-09 09:42


origine


Intéressant Ubuntu ne plus installer aptitude par défaut. - Mechanical snail
La différence la plus importante pour moi, c'est qu'après avoir lu attentivement les documents, je ne trouve aucun moyen d'obtenir la source d'un paquet via aptitude. apt-get source package-name le fera, mais je n'ai pas vu d'aptitude équivalente - EricR
Une chose est que aptitude search package-name travaille dans l'aptitude. Un autre est aptitude why package-name est également utile mais pas dans apt-get. Je pense aussi que la ligne de commande de aptitude est un peu nettoyé par rapport à apt-get. Mais comme vous l'avez remarqué, il y a aptitude build-dep package-name mais non aptitude source package-name. - Anders


Réponses:


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

La raison pour laquelle vous voyez plus de documentation pour apt-get plus de aptitude est principalement l'inertie: aptitude n'a pas été le front-end recommandé pour APT aussi longtemps, une grande partie de la documentation existante n'a pas été mise à jour, et de nombreuses personnes reconnaissent les avantages de aptitude plus de apt-get mais utilise apt-get par réflexe.

Je suis récemment arrivé au point où je suis habituellement apt avec un iet pas un - quand je tape

Postscript Notez que les règles utilisées dans apt-get et aptitude sont des cibles mobiles - comme le note Hubert dans les commentaires, le chemin de mise à niveau recommandé par Debian Lenny utilise maintenant apt-get, ne pas aptitude. Cela reflète le fait que apt-get garde trace de moins d'état sur le paquet actuel que aptitude, et n'a donc pas besoin de s'inquiéter de l'état de l'APT ne soit pas "propre", et parce que apt-get les règles sont plus intelligentes qu'avant. Je toujours utiliser et recommander aptitude plus de apt-get, mais c'est une recommandation plus nuancée


72
2018-02-26 19:42



En plus de cela, aptitude permet de parcourir facilement les résolutions possibles de conflits, alors qu'avec apt-get, vous n'avez généralement qu'une seule possibilité et que vous l'acceptez ou que vous devez faire une résolution à la main (par exemple, dpkg). - liori
apt-get a l'avantage d'être plus efficace en termes de mémoire. Cela est peu probable pour la plupart des utilisateurs. Je n'étais pas vraiment au courant jusqu'à ce que j'essaye de mettre à jour les paquets sur une installation complète de Debian avec 32 Mo de RAM. aptitudefini par se débattre pendant environ une heure par course; apt-get était beaucoup plus rapide. - intuited
La documentation officielle de squeeze Debian indique explicitement de ne pas utiliser aptitude pour la mise à niveau de Lenny, même si elle était prise en charge pour les mises à niveau précédentes, je ne pense donc pas que ce soit uniquement l'inertie ... - Hubert Kario
@HubertKario - Oui, en effet. J'ai mis à jour ma réponse. - Charles Stewart
Je peux seulement dire que apt-get jette presque toujours des erreurs (expérience du serveur Ubuntu 12.10, 14.04) alors que aptitude peut réellement faire quelque chose. Je ne comprends toujours pas comment apt-get existe toujours. - Totty.js


aptitude il est pratique de montrer quels programmes d’une recherche déjà installée sur le système (avec l’aide de grep):

aptitude search flash | grep ^i

Réellement, aptitudela recherche est beaucoup plus puissante que ce que vous obtenez à travers grep, car il supporte la recherche contextuelle:

Par exemple, cela permet de trouver tous les packages avec «flash» dans le nom du package installé:

aptitude search '~iflash'

Une "forme longue" équivalente de 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 les noms commencent par 'ttf' ou 'font':

aptitude search '(^ttf|^font)'

(Note: ceci est une solution de contournement pour un bogue dans aptitude, comme le regex correct de '^(ttf|font)' ne fonctionne pas correctement - il trouve les paquets dont le nom commence par 'ttf' ou contenir 'Police de caractère'.)

Autre chouette aptitude fonctionnalités:

Afficher tous les paquets avec le 'firmware' dans leur nom qui ont aussi 'wireless' 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 des espaces sont placés entre guillemets; s'ils sont transmis sous forme d'arguments séparés sur la ligne de commande argv [], ils sont ORed.)

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

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 possible que fuse-utils soit installé

$ 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 de Squeeze (?) De tous les paquets "Recommends". L'installation de gnome-terminal finit par installer ntfsprogs et fuse-utils, egad! pas l'intégration NTFS intégrée, qui est facultative, sauf si elle l'a spécifiée.

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

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

Malheureusement, ce genre de choses est plutôt mal documenté et difficile à trouver, mais iciest la meilleure référence (du mainteneur 'aptitude').


19
2018-06-20 10:53



Les fonctionnalités de recherche sont disponibles à partir de apt-get via apt-cache search NAME - EricR
@EricR true mais je n'ai pas trouvé de capacités de recherche car celles-ci - niceman


Selon la FAQ Debian GNU / Linux sur la gestion des paquets, aptitude est plus complexe qu'apt-get et dépend des outils de gestion des paquets moins complexes 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).

Cité à partir de la FAQ Debian: "aptitude fournit les fonctionnalités de dselect et apt-get, ainsi que de nombreuses fonctionnalités supplémentaires introuvables dans les deux programmes."


4
2017-08-15 21:52





aptitude marque les paquets qui ont été installés à cause d'une dépendance avec la balise automatique. Si vous purgez ou supprimez maintenant un paquet, aptitude supprimera automatiquement les paquetages installés automatiquement qui ne sont plus utilisés avec le paquet que vous souhaitez purger ou supprimer.

C’est la raison principale pour laquelle je pense personnellement que l’aptitude est toujours meilleure que celle qui convient.


3
2017-08-16 00:54



Citation nécessaire, mais ce serait une différence convaincante. - Kzqai
Citation: debian-handbook.info/browse/stable/ - deizel
Réellement apt-get est-ce que ça aussi, avec apt-get autoremove <package-name>. Tous les deux apt-get et aptitude marquer les paquets installés automatiquement - Legionair
Mais aptitude nettoie les paquets automatiques chaque fois qu'il est utilisé. Tandis que apt-get vous devez commencer cela explicitement. - Anders


Il n'y a pas de bon outil, 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 les utilisateurs, mais il a tendance à être moins fiable pour la mise à niveau d'une version stable vers une autre. Voir mon article apt-get, aptitude, ... choisissez le bon gestionnaire de paquets pour vous.


2
2018-06-21 08:49