Gestion des paquets

De Le Wiki de debian-fr.xyz
Aller à : navigation, rechercher

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