web-dev-qa-db-fra.com

Quelle est la différence entre apt-get and aptitude?

Je ne comprends pas pourquoi il existe deux programmes différents dans une installation minimale pour installer des logiciels. Ne fais-ils pas la même chose? Y a-t-il une grande différence? J'ai lu partout pour utiliser aptitude sur apt-get, mais je ne connais toujours pas la différence

56
Thomaschaaf

aptitude est une enveloppe pour DPKG, tout comme APT-GET/APT-cache, mais c'est un outil unique pour la recherche/l'installation/la suppression/interrogation. Quelques exemples que APT pourrait ne pas fournir:

$ aptitude why libc6
i   w64codecs Depends libc6 (>= 2.3.2)
$ aptitude why-not libc6
Unable to find a reason to remove libc6.

$ aptitude show libc6
Package: libc6
State: installed
Automatically installed: no
Version: 2.9-4ubuntu6
Priority: required
Section: libs
Maintainer: Ubuntu Core developers <[email protected]>
Uncompressed Size: 12.1M
Depends: libgcc1, findutils (>= 4.4.0-2ubuntu2)
Suggests: locales, glibc-doc
Conflicts: libterm-readline-gnu-Perl (< 1.15-2), 
tzdata (< 2007k-1), tzdata-etch, nscd (< 2.9)
Replaces: belocs-locales-bin
Provides: glibc-2.9-1
Description: GNU C Library: Shared libraries
 Contains the standard libraries that are used by nearly all programs 
 on the system. This package includes shared versions of the standard 
 C library and the standard math library, as well as many others.
48
katriel
mikeage@linode ~$ aptitude -h | tail -n 1
              This aptitude does not have Super Cow Powers.
mikeage@linode ~$ apt-get -h | tail -n 1
                   This APT has Super Cow Powers.
mikeage@linode ~$ aptitude moo
    There are no Easter Eggs in this program.
mikeage@linode ~$ apt-get moo
         (__)
         (oo)
   /------\/
  / |    ||
 *  /\---/\
    ~~   ~~
...."Have you mooed today?"...
mikeage@linode ~$ aptitude -v moo
There really are no Easter Eggs in this program.
mikeage@linode ~$ aptitude -vv moo
Didn't I already tell you that there are no Easter Eggs in this program?
mikeage@linode ~$ aptitude -vvv moo
Stop it!
mikeage@linode ~$ aptitude -vvvv moo
Okay, okay, if I give you an Easter Egg, will you go away?
mikeage@linode ~$ aptitude -vvvvv moo
All right, you win.

                               /----\
                       -------/      \
                      /               \
                     /                |
   -----------------/                  --------\
   ----------------------------------------------
mikeage@linode ~$ aptitude -vvvvvv moo
What is it?  It's an elephant being eaten by a snake, of course. 
44
Mikeage

L'outil officiel actuellement utilisé dans le programme d'installation de Debian et recommandé dans les notes de version est aptitude.

Aptitude offre une interface de la malédiction (lorsqu'elle est exécutée sans paramètre) et une interface de ligne de commande pouvant faire presque tout ce que apt-cache/apt-get Est-ce que. Il possède également une meilleure résolution de dépendance qui vous permet de parcourir plusieurs solutions. Même lors de l'utilisation de la version de la ligne de commande, vous pouvez interagir avec la solution proposée et donner des ordres ou des allusions supplémentaires (comme l'installation ou la suppression d'un package recommandé par un autre).

Mais l'aptitude est basée sur la bibliothèque libapt (ce n'est pas une enveloppe directe de DPKG) et, en tant que telle, cela dépend du package apt afin que vous ne puissiez pas avoir d'aptitude installée sans apt-get (qui est également dans l'APT. emballer).

$ dpkg --status aptitude| grep Depends
Depends: libapt-pkg-libc6.9-6-4.7, [...]
$ dpkg --status apt|grep Provides
Provides: libapt-pkg-libc6.9-6-4.7
$ dpkg --search /usr/lib/libapt-pkg-libc6.9-6.so.4.7 /usr/bin/apt-get
apt: /usr/lib/libapt-pkg-libc6.9-6.so.4.7
apt: /usr/bin/apt-get

Pour en savoir plus sur la manière dont APT/DPKG/APTITUITUIT INTERACT, vous pouvez vérifier le diagramme fabriqué par Daniel Burrows (Auteur principal d'Aptitude). Un autre diagramme présente les informations stockées par les différents outils de gestion de paquets: ne carte des fichiers d'état APT et DPKG .

Vous pouvez également lire mon article apt-get, aptitude, ... choisir le bon gestionnaire de paquets pour vous

19
Raphaël Hertzog

aptitude se souvient quels packages que vous avez délibérément installés et qui ont été automatiquement installés pour satisfaire les dépendances. Lors de la suppression d'une aptitude à package supprimera les packages automatiquement installés pour garder votre système rangé. apt-get N'est-ce pas intelligent.

aptitude va rapidement devenir un outil indispensable une fois que vous utilisez différents référentiels avec différentes versions d'un package. Imaginez que vous travaillez avec BackPorts.org ou des référentiels non officiels comme -Debian-multimedia.org. Ensuite, aptitude va montrer (au bas de la page de détails d'un certain package), le numéro de version disponible et vous permet de sélectionner une.

Si vous entrez dans une situation dans laquelle les programmes sont conflits en raison d'une telle utilisation de référentiels non officiels, vous verrez A "cassé: ..." Affichage sur le dessus. Vous pouvez taper L ~ B (limite/drapeau/brisé) et obtenez simplement une liste de packages qui en conflit les uns avec les autres. Il est beaucoup plus facile de résoudre le conflit manuellement.

En outre, vous pouvez utiliser "l" pour limiter la liste des packages. Imaginez que vous recherchiez des paquets commençant par "OpenOffice" Puis appuyez sur "l" et tapez "^openoffice "(C'est une expression régulière) et vous verrez simplement ces packages. Choisissez A " Liste de paquets à plat " Dans le menu et vous obtiendrez votre objectif rapidement.

Le manuel complet est très important, vous offrant de nombreux autres filtres et possibilités. Même si vous ne les connaissez pas aptitude est un remplaçant pratique pour apt-get Et vous pouvez l'utiliser avec des paramètres communs comme:

aptitude install ... (install or upgrade a package)
aptitude remove ... (remove the binary portions of a package but preserve your /etc configuration)
aptitude purge ... (remove the package completely including your configuration)
7
Signum

En plus de fournir une jolie console interface utilisateur lorsque vous exécutez aptitude sans arguments, il combine les différents apt-* commandes (et dselect) dans un seul utilitaire ..

Pour rechercher un package et l'installer, en utilisant apt-get:

apt-cache search somepkg
apt-get install somepkg

..mais avec aptitude c'est la même commande:

aptitude search somepkg
aptitude install somepkg

aptitude a des fonctionnalités supplémentaires, comme aptitude changelog somepkg et des choses comme tenir des packages (pour les arrêter d'être mis à niveau) - Rien que vous ne puissiez pas atteindre par d'autres commandes/méthodes, il est tout simplement plus unifié et agréable à utiliser.

5
dbr

comme vous le savez lorsque vous installez un package s'il a besoin d'autres packages (dépendances), ils seront également téléchargés et installés. Les pistes d'aptitude, au moment de l'installation, les packages qui viennent avec l'un d'autre que lorsque vous supprimez, cette dernière aptitude vous demandera de supprimer les dépendances "orphelines non utilisées". apt-get les gardera dans votre système silencieusement si vous supprimez le package "principal".

on dirait que les dernières versions d'APT-GET ont une fonctionnalité similaire: http://www.psychocats.net/ubuntu/aptuest

4
gpilotino

La plus grande différence est que l'aptitude est conçue pour être interactive où les outils APT conviennent mieux aux travaux de script. Vous pouvez utiliser ce dernier, c'est-à-dire les outils APT, de manière interactive parfaitement avec beaucoup plus d'effort pour obtenir les mêmes résultats que l'aptitude fournit. Si vous deviez vous installer sur un seul outil ou l'autre pour une raison quelconque, vous devez décider combien d'efforts que vous souhaitez mettre dans votre gestion de paquets.

3
user3146

L'un des avantages graves de l'aptitude est sa capacité à calculer les dépendances. Tout d'abord, il peut gérer des intercendances complexes sans intervention de vous-même, ce qui peut souvent tomber sur. Mais si vous n'aimez pas la solution, cela vous a présenté (et cela marquera sa propre solution pour démontrer à quel point il pense qu'il est), vous pouvez la demander de partir et proposer une autre solution pour résoudre le conflit.

Cela fait vraiment une gestion de forfaits impressionnante.

1
Coops

La plus grande différence est la suivante: tapez "aptitude" sans paramètres.

Il vous donne une interface utilisateur basée sur des textes, vous pouvez utiliser Keybord pour rechercher/naviguer, etc. Voir Informations sur les dépendances, les dépendances inverse, toutes les versions disponibles d'un package, et vous pouvez effectuer toute opération de gestionnaire de packages à partir de cet écran.

Vous pouvez appuyer sur "G" pour examiner les modifications, modifier les ajouts et les déménagements du paquet si nécessaire et appliquer toutes les opérations en attente.

Un excellent moyen visuel de la gestion des paquets sur une connexion SSH ou un ancien terminal uni.

1
hayalci