Réponses:
remove
désinstalle les packages qui portent son nom.autoremove
désinstalle tous les packages installés automatiquement qui ne sont plus nécessaires. Il est incorrect de répertorier les noms des packages après autoremove
; ils seront ignorés (et tous les packages éligibles seront supprimés), ce qui n'est probablement pas ce que vous envisagez.--purge
entraîne également la suppression des fichiers de configuration à l'échelle du système associés aux packages supprimés. Il doit être accompagné d'une commande, telle que remove
ou autoremove
. Le --purge
drapeau modifie l'action d'une commande; il n'agit pas seul.purge
signifie la même chose que --purge remove
(qui est la même chose que remove --purge
). Il est incorrect de dire purge
deux fois; le second purge
est interprété comme le nom d'un paquet à être purge
d, ce qui n'est probablement pas ce que vous voulez.Pour comprendre ce que font ces commandes et en quoi elles diffèrent, il est utile (et même probablement essentiel) de comprendre deux concepts:
Un package installé est installé manuellement ou automatiquement .
Lorsque vous spécifiez un package pour l'installation et qu'il est installé, il est installé manuellement .
Mais d'autres packages peuvent également être installés. La plupart des packages ont des dépendances - d'autres packages qui doivent être installés pour que ces packages fonctionnent comme prévu. Lorsque vous installez un package, ses dépendances (c'est-à-dire les autres packages dont il dépend) sont installées, à l'exception de celles qui ont été installées auparavant.
Lorsqu'un package n'est pas spécifié par vous pour être installé, mais qu'il est plutôt installé en tant que dépendance d'un package que vous avez spécifié d'installer, il est automatiquement installé.
Veuillez noter que lorsque vous avez deux packages installés et que l'un d'eux est une dépendance d'un autre, cela ne signifie pas que la dépendance est automatiquement installée. Il est également possible que la dépendance ait été installée manuellement (c'est-à-dire, spécifiée par vous, par exemple, installée avant ou en même temps que le package qui en dépend).
Finalement:
apt-mark
commande), peu importe comment ou dans quelles circonstances il a été réellement installé.En règle générale, pour chaque package installé automatiquement, vous aurez au moins un package installé manuellement qui en dépend (et qui a provoqué son installation automatique). Toutefois, si vous supprimez ensuite tous les packages installés manuellement qui dépendent d'un package installé automatiquement, le package installé automatiquement ne sera plus nécessaire, mais sera toujours installé.
apt-get autoremove
supprime les packages installés automatiquement qui n'ont plus de packages installés manuellement en fonction d'eux.
Un package fournit des fichiers destinés à être et à rester identiques sur tous les systèmes sur lesquels cette version de ce package est installée. Ces fichiers fournissent des exécutables, des ressources, de la documentation et d'autres «actifs» pour les programmes installés. Nous appelons généralement ces "fichiers" fournis par un package.
Mais un package fournit également d'autres fichiers, qui sont destinés (éventuellement) à être modifiés. Ces fichiers sont appelés fichiers de configuration globaux (ou à l'échelle du système). Ils sont presque toujours installés dans le /etc
répertoire, et ils peuvent être modifiés automatiquement et manuellement pour changer le comportement des programmes installés. Par exemple, sudo
a un fichier de configuration /etc/sudoers
et un répertoire pour plus de fichiers de configuration /etc/sudoers.d
. Ce fichier et tous les fichiers ajoutés à ce répertoire spécifient qui est autorisé à utiliser sudo
de quelles manières.
En règle générale, il est souhaitable que la désinstallation d'un package, puis sa réinstallation ne modifie pas son comportement (sauf si ses fichiers de package sont corrompus et c'est pourquoi vous l'avez réinstallé, bien sûr). Par conséquent, généralement lorsqu'un package est désinstallé, ses fichiers de package sont supprimés mais ses fichiers de configuration à l'échelle du système ne sont pas modifiés.
Lorsque vous désinstallez un package sans spécifier que ses fichiers de configuration à l'échelle du système sont également censés être supprimés, cela s'appelle "supprimer" le package.
Si vous souhaitez également supprimer les fichiers de configuration à l'échelle du système d'un package lorsque vous désinstallez le package, cela s'appelle «purger» le package.
apt-get remove
supprimera un paquet; c'est-à-dire qu'il désinstallera le package mais conservera ses fichiers de configuration à l'échelle du système.
apt-get purge
purgera un paquet; c'est-à-dire qu'il désinstallera le package et s'assurera également de supprimer ses fichiers de configuration à l'échelle du système.
Une autre façon de purger les packages consiste à utiliser l' --purge
indicateur. Cela ne dit pas apt-get
quoi faire; au lieu de cela, il modifie ce que les termes (ou "commandes") comme lui remove
disent de faire. L' --purge
indicateur provoque les désinstallations de packages accompagnées de la suppression des fichiers de configuration à l'échelle du système pour les packages à désinstaller. En d'autres termes, le --purge
drapeau transforme les suppressions en purges.
Pourquoi avons-nous le --purge
drapeau quand nous avons la purge
commande? Après tout, ce n'est pas sudo apt-get --purge remove packagename
équivalent à sudo apt-get purge packagename
. Ils sont équivalents. Lorsque cela --purge
est utile, c'est lorsque vous souhaitez modifier le comportement des commandes autres que remove
.
Par exemple, supposons que vous souhaitiez désinstaller les packages installés automatiquement qui ne sont plus nécessaires (car il n'y a plus de packages installés manuellement en fonction d'eux), mais que vous ne souhaitez pas simplement supprimer ces packages installés automatiquement, vous souhaitez également supprimer leurs fichiers de configuration à l'échelle du système. Ensuite, vous pouvez exécuter:
sudo apt-get --purge autoremove
Prenons une autre utilisation de --purge
. Il existe un indicateur appelé --reinstall
, qui transforme les installations en réinstallations. Cela signifie que, normalement, lorsque vous essayez d'installer un package qui est déjà installé, rien ne se passera ou (si le package est marqué comme installé automatiquement), le package sera marqué comme installé manuellement. Mais avec l' --reinstall
indicateur, l'installation d'un package déjà installé entraîne sa suppression puis sa réinstallation :
sudo apt-get --reinstall install packagename
Mais supposons que vous souhaitiez supprimer les fichiers de configuration à l'échelle du système du package que vous réinstallez. C'est quelque peu courant; lorsqu'un package ne fonctionne pas et que vous ne savez pas pourquoi, vous pouvez essayer de le réinstaller et également supprimer ses fichiers de configuration afin que sa configuration soit réinitialisée à sa valeur par défaut. Pour ce faire, vous pouvez exécuter:
sudo apt-get --purge --reinstall install packagename
Les --reinstall
transformations transforment l'installation en réinstallation (c.-à-d. L'enlèvement suivi de l'installation) et les --purge
transformations la partie d'enlèvement de la réinstallation en purge.
Maintenant, il devrait être clair exactement ce que font chacune de vos exemples de apt-get
commandes:
sudo apt-get autoremove --purge packagenames
Cela purge les packages installés automatiquement qui n'ont plus de packages installés manuellement qui en dépendent. Autrement dit, il désinstalle ces packages (ce qui implique la suppression de leurs fichiers de package), et il supprime également leurs fichiers de configuration à l'échelle du système.
Ici, packagenames
ne fait rien. En particulier, si vous aviez l'intention de supprimer uniquement les packages dont les noms y sont répertoriés, cela ne se comportera pas comme vous le souhaitez.
sudo apt-get remove --purge packagenames
Cela purge packagenames
; en supposant qu'il packagenames
s'agit d'une liste de noms de packages séparés par des espaces, il les purgera tous. Autrement dit, il les désinstallera (ce qui implique la suppression de leurs fichiers de package) et supprimera également leurs fichiers de configuration à l'échelle du système.
Si l'un des packages répertoriés dans packagenames
n'est pas installé, sa présence dans la liste n'aura aucun effet (sauf que vous serez informé qu'il n'a pas été installé). Si vous répertoriez des noms de package qui ne sont pas le nom d'un package réel, la commande échouera avec une erreur.unable to locate packagename
sudo apt-get purge purge packagenmaes
Si vous supprimiez l'une des occurrences de purge
dans cette commande, elle serait équivalente à la précédente. En l'état, il essaie de purger un package appelé purge
et également de purger les packages répertoriés dans packagenames
. Comme ce purge
n'est pas le nom d'un package, il échouera avec un message d'erreur.
sudo apt-get remove packagenames
Cela supprime les packages répertoriés dans packagenames
, ce qui implique la suppression de leurs fichiers de packages. Cela ne supprime pas leurs fichiers de configuration à l'échelle du système (car il s'agit simplement d'une suppression, pas d'une purge).
sudo apt-get autoremove
Cela désinstalle les packages installés automatiquement qui n'ont plus de packages installés manuellement qui en dépendent. Cela implique la suppression de leurs fichiers de package, mais pas de leurs fichiers de configuration à l'échelle du système (c'est-à-dire qu'il s'agit d'une suppression mais pas d'une purge).
Pour plus d'informations sur l'utilisation apt-get
, je recommande sa page de manuel . Pour plus d'informations générales, consultez ce guide .