Solution 1 :
aptitude est un wrapper pour dpkg tout comme apt-get/apt-cache, mais c'est un outil unique pour rechercher/installer/supprimer/interroger. Quelques exemples qu'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.
Solution 2 :
[email protected] ~$ aptitude -h | tail -n 1
This aptitude does not have Super Cow Powers.
[email protected] ~$ apt-get -h | tail -n 1
This APT has Super Cow Powers.
[email protected] ~$ aptitude moo
There are no Easter Eggs in this program.
[email protected] ~$ apt-get moo
(__)
(oo)
/------\/
/ | ||
* /\---/\
~~ ~~
...."Have you mooed today?"...
[email protected] ~$ aptitude -v moo
There really are no Easter Eggs in this program.
[email protected] ~$ aptitude -vv moo
Didn't I already tell you that there are no Easter Eggs in this program?
[email protected] ~$ aptitude -vvv moo
Stop it!
[email protected] ~$ aptitude -vvvv moo
Okay, okay, if I give you an Easter Egg, will you go away?
[email protected] ~$ aptitude -vvvvv moo
All right, you win.
/----\
-------/ \
/ \
/ |
-----------------/ --------\
----------------------------------------------
[email protected] ~$ aptitude -vvvvvv moo
What is it? It's an elephant being eaten by a snake, of course.
Solution 3 :
L'outil officiel actuellement utilisé dans l'installateur Debian et recommandé dans les notes de version est aptitude
.
Aptitude propose une interface curses (lorsqu'elle est exécutée sans aucun paramètre) et une interface de ligne de commande qui peut faire presque tout ce que apt-cache
/apt-get
Est-ce que. Il dispose également d'un meilleur résolveur de dépendances qui vous permet de naviguer entre plusieurs solutions. Même lorsque vous utilisez la version en ligne de commande, vous pouvez interagir avec la solution proposée et donner des commandes ou des conseils supplémentaires (comme l'installation ou la suppression d'un paquet recommandé par un autre).
Mais aptitude est basé sur la bibliothèque libapt (ce n'est pas un wrapper direct de dpkg) et en tant que tel, il dépend du apt
afin que vous ne puissiez pas installer aptitude sans apt-get (qui se trouve également dans le package apt).
$ 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 façon dont apt/dpkg/aptitude interagissent, vous pouvez consulter le diagramme réalisé par Daniel Burrows (auteur principal d'aptitude). Un autre schéma présente les informations stockées par les différents outils de gestion de paquets :Une carte des fichiers d'état apt et dpkg.
Vous pouvez également lire mon article apt-get, aptitude, … choisissez le bon gestionnaire de paquets pour vous
Solution 4 :
aptitude
se souvient des packages que vous avez délibérément installés et de ceux qui ont été automatiquement installés pour satisfaire les dépendances. Lors de la suppression d'un paquet, aptitude supprimera les paquets installés automatiquement pour garder votre système en ordre. apt-get
n'est-ce pas intelligent.
aptitude
deviendra rapidement un outil indispensable une fois que vous utiliserez différents dépôts avec différentes versions d'un paquet. Imaginez que vous travaillez avec backports.org ou des dépôts non officiels comme debian-multimedia.org . Alors aptitude
affichera (en bas de la page de détails d'un certain paquet) le numéro de version disponible et vous permettra d'en sélectionner un.
Si vous vous trouvez dans une situation où des programmes entrent en conflit en raison d'une telle utilisation de référentiels non officiels, vous verrez un "Broken :..." afficher sur le dessus. Vous pouvez taper l~b (limit / flag / cassé) et obtenez simplement une liste des packages en conflit les uns avec les autres. Facilite la résolution manuelle du conflit.
De plus, vous pouvez utiliser "l
" pour limiter la liste des packages. Imaginez que vous recherchez des packages commençant par "openoffice " puis appuyez sur "l
" et tapez "^openoffice
" (il s'agit d'une expression régulière) et vous ne verrez que ces packages. Choisissez une "liste plate de packages" dans le menu et vous atteindrez rapidement votre objectif.
Le manuel complet est très volumineux, vous offrant beaucoup plus de filtres et de possibilités. Même si vous ne les connaissez pas aptitude
est un remplacement 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)
Solution 5 :
En plus de fournir une jolie interface utilisateur de console lorsque vous exécutez aptitude
sans arguments, il combine les différents apt-*
commandes (et dselect
) dans un seul utilitaire..
Pour rechercher un paquet et l'installer, utilisez 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 quelques fonctionnalités supplémentaires, comme aptitude changelog somepkg
et des choses comme conserver des packages (pour les empêcher d'être mis à jour) - rien que vous ne puissiez obtenir via d'autres commandes/méthodes, c'est juste plus unifié et agréable à utiliser.