Quelle est la différence entre ces commandes?
Sudo apt-get autoremove --purge packagenames
Sudo apt-get remove --purge packagenames
Sudo apt-get purge purge packagenmaes
Sudo apt-get remove packagenames
Sudo apt-get autoremove
remove
désinstalle les paquets qui portent son nom.autoremove
désinstalle tous les packages installés automatiquement qui ne sont plus nécessaires. Il est incorrect de lister les noms de paquetages après autoremove
; ils seront ignorés (et tous les paquets éligibles seront supprimés), ce qui n'est probablement pas ce que vous souhaitez.--purge
_ entraîne également la suppression des fichiers de configuration système associés aux packages en cours de suppression. Il doit être accompagné d'une commande, telle que remove
ou autoremove
. L'indicateur _--purge
_ modifie l'action d'une commande; il n'agit pas seul.purge
signifie la même chose que _--purge remove
_ (qui est identique à _remove --purge
_). Il est incorrect de dire purge
deux fois; le second purge
est interprété comme le nom d'un package comme étant purge
d, ce qui n'est probablement pas ce que vous souhaitez.Pour comprendre ce que font ces commandes et en quoi elles sont différentes, il est utile (et probablement même essentiel) de comprendre deux concepts:
Un package installé est manuellement ou automatiquement installé.
Lorsque vous spécifiez un package pour l'installation, et qu'il est installé, il est manuellement installé.
Mais d'autres paquets peuvent aussi être installés. La plupart des packages ont des dépendances - d'autres packages à installer - 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 précédemment installées.
Lorsqu'un paquet n'est pas spécifié par vous pour être installé, mais est plutôt installé en tant que dépendance d'un paquet que vous avez spécifié pour l'installation, il est automatiquement installé .
Veuillez noter que lorsque deux packages sont 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 que vous l'avez spécifiée, par exemple avant ou au même moment que le paquet qui en dépend).
Finalement:
apt-mark
), quelles que soient la manière ou les circonstances dans lesquelles ils ont été réellement installés.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 l'a causé automatiquement). 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 et qui ne contiennent plus de packages installés manuellement.
Un package fournit des fichiers destinés à rester 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 habituellement ces "fichiers" fournis par un paquet.
Mais un paquet fournit également d’autres fichiers qui sont (éventuellement) modifiés. Ces fichiers sont appelés fichiers de configuration globaux (ou globaux). Ils sont presque toujours installés dans le répertoire _/etc
_ et peuvent être modifiés automatiquement et manuellement pour modifier le comportement des programmes installés. Par exemple, Sudo
a un fichier de configuration _/etc/sudoers
_ et un répertoire pour plusieurs 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 quelle manière.
Généralement, il est souhaitable que désinstaller un paquet puis l'installer ne change pas son comportement (à moins que ses fichiers de paquet soient corrompus et c'est pourquoi vous avez réinstallé ça, 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 système ne sont pas modifiés.
Lorsque vous désinstallez un package sans indiquer que ses fichiers de configuration système doivent également être supprimés, cela s'appelle "supprimer" le package.
Si vous souhaitez également supprimer les fichiers de configuration système d'un package lors de la désinstallation du package, cela s'appelle "purger" le package.
_apt-get remove
_ va supprimer un paquet; c'est-à-dire qu'il désinstallera le paquet mais laissera ses fichiers de configuration à l'échelle du système.
_apt-get purge
_ va purger un paquet; c'est-à-dire qu'il désinstallera le paquet et s'assurera également de supprimer ses fichiers de configuration à l'échelle du système.
Un autre moyen de purger les packages consiste à utiliser l'indicateur _--purge
_. Cela ne dit pas _apt-get
_ quoi faire; au lieu de cela, il modifie quels termes (ou "commandes") comme remove
lui disent de le faire. L'indicateur _--purge
_ entraîne que toute désinstallation de package s'accompagne de la suppression de fichiers de configuration à l'échelle du système pour le (s) package (s) en cours de désinstallation. En d'autres termes, le drapeau _--purge
_ transforme les retraits en purges.
Pourquoi avons-nous le drapeau _--purge
_ lorsque nous avons la commande purge
? Après tout, _Sudo apt-get --purge remove packagename
_ n’est-il pas équivalent à _Sudo apt-get purge packagename
_. Ils sont équivalents. _--purge
_ est utile lorsque vous souhaitez modifier le comportement des commandes autres que que remove
.
Par exemple, supposons que vous souhaitiez désinstaller les packages installés automatiquement qui ne sont plus nécessaires (car aucun package installé manuellement n’y dépend plus), mais que vous ne souhaitez pas simplement supprimer ces packages installés automatiquement, vous souhaitez également supprimer les packages installés automatiquement. leurs fichiers de configuration à l'échelle du système. Ensuite, vous pouvez exécuter:
_Sudo apt-get --purge autoremove
_
Considérons une autre utilisation de _--purge
_. Un indicateur appelé _--reinstall
_ transforme les installations en réinstallations. En d'autres termes, normalement, lorsque vous essayez d'installer un package déjà installé, rien ne se passera ou (si le package est marqué comme automatiquement installé), le package sera marqué comme étant installé manuellement. Mais avec l'indicateur _--reinstall
_, l'installation d'un package déjà installé entraîne sa suppression , puis . ) installé en arrière :
_Sudo apt-get --reinstall install packagename
_
Mais supposons que vous vouliez supprimer les fichiers de configuration à l'échelle du système du paquet que vous réinstallez. C'est un peu commun. Si un paquet ne fonctionne pas et que vous ne savez pas pourquoi, vous pouvez essayer de le réinstaller et de supprimer ses fichiers de configuration afin que sa configuration soit réinitialisée. Pour ce faire, vous pouvez exécuter:
_Sudo apt-get --purge --reinstall install packagename
_
Le _--reinstall
_ transforme l’installation en réinstallation (c’est-à-dire la suppression suivie de l’installation) et le _--purge
_ transforme la partie de la réinstallation supprimée en purge.
Vous devez maintenant savoir exactement ce que chacune de vos exemples de commandes _apt-get
_ fait:
_Sudo apt-get autoremove --purge packagenames
_
Cela purge les packages installés automatiquement qui ne possèdent plus aucun package installé manuellement qui en dépend. En d’autres termes, il désinstalle ces packages (ce qui implique la suppression de leurs fichiers), ainsi que leurs fichiers de configuration à l’échelle du système.
Ici, packagenames
ne fait rien. En particulier, si vous vouliez simplement supprimer les paquets dont les noms sont répertoriés ici, cela ne se comportera pas comme vous le souhaitez.
_Sudo apt-get remove --purge packagenames
_
Ceci purge packagenames
; en supposant que packagenames
est une liste de noms de paquetages séparés par des espaces, elle les purgera tous. C'est-à-dire qu'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, cela équivaudrait à la précédente. Dans l'état actuel des choses, il essaie de purger un paquet nommé purge
, et également de purger les paquets listés dans packagenames
. Puisque purge
n'est pas le nom d'un paquet, 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 package. 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
_
Cette opération désinstalle les packages installés automatiquement qui ne possèdent plus aucun package installé manuellement qui en dépend. 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 de _apt-get
_, je recommande sa page de manuel . Pour plus d'informations générales, voir ce guide .