Gestion des paquets
Les dépôts de paquets Debian sont un moyen simple, sûr et efficace pour installer des logiciels.
Les fichiers des programmes sont contenus dans des archives appelées « paquets ». Ces paquets se trouvent sur des serveurs de fichiers appelés « dépôts ». Le gestionnaire de paquets, appelé « APT » (Advanced Packaging Tool) se charge de récupérer les paquets et de les installer sur votre système.
Les paquets sont séparés le plus possible pour éviter d’installer des composants inutiles. Si un programme a besoin d’une bibliothèque --- composant lui permettant de faire certaines tâches (vous verrez peut-être le mot « librairie », souvent employé par anglicisme) ---, elle se situera dans un autre paquet. Le gestionnaire APT se chargera de l’installer en même temps que le programme. Si un autre programme utilise la même bibliothèque, elle ne sera pas installée deux fois…
Configuration des dépôts
Ce sujet est traité sur un autre article : Sources de paquets : les bases
Gérer ses paquets
Il existe trois outils pour installer/désinstaller et mettre à jour des programmes : apt-get, aptitude et à partir de Jessie apt (ce dernier est en fait une interface différente pour apt-get).
apt-get et apt se chargent d’effectuer l’action demandée, et c’est tout ! Ils sont donc particulièrement adaptés aux tâches de maintenance courantes, comme la mise-à-jour du sytème et les installations/désinstallations.
aptitude fournit une gestion plus fine des dépendances, en vous proposant plusieurs choix dans les situations complexes. Au prix d’un temps d’exécution plus long il est l’outil idéal pour régler les situations de conflits entre paquets.
Si vous préférez un gestionnaire graphique, vous pouvez utiliser synaptic, après l’avoir installé via :
# apt-get install synaptic
Mettre à jour la liste des paquets
Pour mettre à jour la liste des paquets disponibles à partir des dépôts, il faut lancer, au choix :
# apt-get update # apt update # aptitude update
Rechercher un paquet
Pour rechercher un paquet, il vous suffit de lancer :
$ apt-cache search <mots-clés> $ apt search <mots-clés> $ aptitude search <mots-clés>
aptitude peut prendre des expressions régulières dans ses termes de recherche.
Recherches avancées
Aptitude propose une foule d’options de recherches avancées :
Recherche de tous les paquets installés :
$ aptitude search ~i
Recherche des paquets désinstallés, mais dont les fichiers de configurations n’ont pas été purgés :
$ aptitude search ~c
Recherche des paquets installés qui peuvent être mis à jour :
$ aptitude search ~U
Rechercher les paquets installés mis en "hold" ("hold" = en pause ; ces paquets ne seront jamais mis à jour tant qu’il seront marqués "h") :
$ aptitude search ~i~ahold
Vous trouverez la liste des options possibles sur cette page
Installer un paquet
En une commande, vous pouvez installer un paquet et ses dépendances :
# apt-get install <paquet> # apt install <paquet> # aptitude install <paquet>
Mettre à jour le système
NOTE: La mise à jour des paquets installés sur votre système, utilise la liste des paquets.
Il faudra donc Mettre à jour la liste des paquets avant de mettre à jour les paquets installés.
Il existe trois méthodes de mise-à-jour :
- la première n’installe ni ne supprime de paquets, quitte à empêcher la mise-à-jour de certains paquets nécessitant de nouvelles dépendances dans leur dernière version :
# apt-get upgrade # aptitude --no-new-installs
- la deuxième peut installer des paquets pour satisfaire de nouvelles dépendances, mais pas en supprimer :
# apt-get upgrade --with-new-pkgs # apt upgrade # aptitude safe-upgrade
- la troisième peut installer et/ou désinstaller des paquets pour satisfaire de nouvelles dépendances :
# apt-get dist-upgrade # apt dist-upgrade # aptitude full-upgrade
Désinstaller un paquet
Pour désinstaller un paquet sans désinstaller ses dépendances :
# apt-get remove <paquet> # apt remove <paquet>
Pour désinstaller un paquet avec ses dépendances (sauf si elles sont utilisées par d’autres paquets) :
# apt-get autoremove <paquet> # apt autoremove <paquet> # aptitude remove <paquet>
Pour désinstaller un paquet et supprimer ses fichiers de configuration :
# apt-get purge <paquet> # apt purge <paquet> # aptitude purge <paquet>
Remarque particulière au sujet de apt autoremove (apt-get autoremove)
Il arrive parfois au fil du temps que apt vous propose lors d'une mise à jour de supprimer des paquets devenus (selon apt) inutiles:
Les paquets suivants ont été installés automatiquement et ne sont plus nécessaires : ... Veuillez utiliser « apt autoremove » pour les supprimer.
En anglais...
The following packages were automatically installed and are no longer required: ... Use 'apt-get autoremove' to remove them.
La plupart du temps c'est légitime et si les paquets proposés à la suppression ne vous sont pas utiles, vous pouvez y aller. Il arrive par contre que cela entraîne la "casse" de votre système. Cela arrive généralement à cause des mata-paquets et de leurs dépendances.
Voici un exemple:
Vous avez installé le bureau KDE Standard à l'aide du meta paquet kde-standard:
# apt install kde-standard
Plus tard vous avez enlevé le paquet kopete qui vous était inutile:
# apt remove kopete
Sans le vouloir vous avez rendu orphelins tous les paquets liés au meta paquet kde-standard qui a été enlevé avec Kopete (kopete est une de ses dépendances). Résultat: apt veut enlever tous les paquets qui dépendent de kde-standard... Ce que vous ne souhaitez évidemment pas!
The following packages were automatically installed and are no longer required: akregator dragonplayer freespacenotifier gwenview juk kate kcalc kde-baseapps kde-plasma-desktop kde-wallpapers-default kde-workspace kde-workspace-bin kde-workspace-data kde-workspace-kgreet-plugins kdepasswd kdeplasma-addons khelpcenter4 klipper kmix knotes korganizer kscreensaver ksnapshot ksysguard kwalletmanager kwrite libeventviews4 libgadu3 libkateinterfaces4 libkephal4abi1 libkexiv2-11 libkexiv2-data libkipi-data libkipi10 libknewstuff2-4 libkopete4 libkscreensaver5 libksignalplotter4 libmarblewidget15 libmeanwhile1 libmediastreamer-base3 libmsn0.3 libokularcore2 libortp9 libplasmagenericshell4 libprocessui4a libqimageblitz4 libqoauth1 libsolidcontrolifaces4abi2 libspectre1 marble-data okular plasma-containments-addons plasma-dataengines-addons plasma-desktop plasma-desktopthemes-artwork plasma-runners-addons plasma-wallpapers-addons plasma-widget-folderview plasma-widget-lancelot plasma-widgets-addons polkit-kde-1 sweeper systemsettings Use 'apt-get autoremove' to remove them.
La solution est très simple: Il suffit de marquer les paquets dépendants du meta-paquet kde-standard en "manual". Cela signifie qu'il ne dépendront plus du meta-paquet avec lequel ils ont été installés.
# apt-mark manual kde-plasma-desktop kdeplasma-addons gwenview kmix okular
La liste devrait se raccourcir et ne plus contenir que des paquets que je ne souhaite pas garder :
# apt-get install Reading package lists... Done Building dependency tree Reading state information... Done The following packages were automatically installed and are no longer required: akregator dragonplayer juk kate kcalc khelpcenter4 knotes korganizer kscreensaver ksnapshot kwalletmanager libeventviews4 libgadu3 libkateinterfaces4 libknewstuff2-4 libkopete4 libmeanwhile1 libmediastreamer-base3 libmsn0.3 libortp9 plasma-desktopthemes-artwork sweeper Use 'apt-get autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 7 not upgraded.
Je peux alors m'en débarrasser :
# apt-get autoremove Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: akregator* dragonplayer* juk* kate* kcalc* khelpcenter4* knotes* korganizer* kscreensaver* ksnapshot* kwalletmanager* libeventviews4* libgadu3* libkateinterfaces4* libknewstuff2-4* libkopete4* libmeanwhile1* libmediastreamer-base3* libmsn0.3* libortp9* plasma-desktopthemes-artwork* sweeper* 0 upgraded, 0 newly installed, 22 to remove and 7 not upgraded. After this operation, 27.6 MB disk space will be freed. Do you want to continue? [Y/n]
Merci à Vv222!
Création de l’article :
7 février 2010
Dernière mise-à-jour :
Vv222 (discussion) 11 septembre 2014 à 11:14 (CEST)
Discussion sur le FORUM