web-dev-qa-db-fra.com

Quand utiliseriez-vous apt-get remove sur apt-get autoremove?

Je comprends que apt-get remove supprime les packages et que apt-get autoremove consiste à supprimer tous les packages installés pour répondre à une dépendance pour un package donné. Ainsi, par exemple, si j'ai installé LibreOffice et qu'il avait des dépendances sur say Java et que je l'ai installé lors de l'installation lorsque j'exécute la commande apt-get libreoffice, pourquoi devrais-je exécuter la commande apt-get remove libreoffice suivie de apt-get autoremove? Est-ce que je ne peux pas simplement exécuter la commande apt-get autoremove libreoffice? Ou bien la combinaison de apt-get remove et apt-get autoremove a-t-elle un but différent?

16
PeanutsMonkey

Cela dépend de votre degré de confiance envers le suivi des dépendances. Bien que presque toujours correct, vous voudrez peut-être conserver une dépendance, en particulier lorsque vous êtes un développeur ou un utilisateur privilégié qui installe un logiciel qui ne se trouve pas dans le référentiel.

Si vous installez toujours un logiciel via apt-get, sans exception, et si vous faites en sorte que toutes les dépendances soient correctes (ce qu’elles sont habituellement), vous pouvez alors utiliser apt-get autoremove et gagner un petit espace disque exposition réduite aux failles de sécurité potentielles en le faisant supprimer les paquets qui n'en ont plus.

Mais si vous installez le logiciel manuellement, ou si vous développez un logiciel, ou si vous ne voulez pas gérer une possible erreur de dépendance, ne pas utiliser le retrait automatique pour effacer les paquets potentiellement inutilisés est probablement le choix le plus sûr. Que vous utilisiez apt-get autoremove de temps en temps ou non, vous supprimerez toujours les logiciels à l'aide de apt-get remove Package

Par exemple, si j'installe AwesomePackagename__, il peut dépendre de AwesomeLibraryet AwesomeLibrarysera automatiquement installé en tant que dépendance. Lorsque je supprime AwesomePackageà l'aide de la suppression automatique, tant qu'aucun autre package ne possède AwesomeLibraryen tant que dépendance, il sera également désinstallé. Mais si SuperPackagerequiert également AwesomeLibraryou si j’ai installé explicitement AwesomeLibraryau lieu de l’avoir automatiquement comme dépendance (apt-get install AwesomeLibrary), le déplacement automatique ne le supprime pas.

La raison pour laquelle ce n'est pas le défaut est qu'avoir AwesomeLibrarysur le système, non utilisé, est un problème très mineur. Cela ne posera presque jamais de problèmes et la plupart des dépendances ne prennent pas beaucoup de place. Il existe des exceptions, mais le nombre de fois où la suppression d'une dépendance entraîne des problèmes est supérieur au nombre de fois où cela résout ou évite un problème.

11
Myrddin Emrys

Vous pouvez trouver la description de remove , autoremove , purger , nettoyer et autoclean , ainsi que la syntaxe dans les pages de manuel d'apt-get: man apt-get.

Si vous n'êtes toujours pas sûr après l'avoir lu, la meilleure façon de le clarifier est de l'essayer.

Vous trouverez ci-dessous un exemple d'arborescence de dépendance complète pour vim:

vim-dependency-tree

Vous pouvez l'obtenir avec:

apt-rdepends -d vim > vim.dot
dotty vim.dot

Vous pouvez également obtenir une liste des dépendances immédiates en utilisant apt-cache depends (voir Déclaration des relations entre les packages pour plus d'informations):

$ apt-cache depends vim
vim
  Depends: vim-common
  Depends: vim-runtime
  Depends: libacl1
  Depends: libc6
  Depends: libgpm2
  Depends: libselinux1
  Depends: libtinfo5
  Suggests: <ctags>
    exuberant-ctags
  Suggests: vim-doc
  Suggests: vim-scripts

Donc, il semble que vim dépend d'un certain nombre de paquets, essayons de l'installer avec apt-get install et voyons ce qui se passe:

$ Sudo apt-get install vim
...
The following extra packages will be installed:
  vim-common vim-runtime
Suggested packages:
  ctags vim-doc vim-scripts
The following NEW packages will be installed:
  vim vim-common vim-runtime
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
After this operation, 25.1 MB of additional disk space will be used.
Do you want to continue [Y/n]? n

Pour que vim fonctionne, nous avons besoin de vim-common et vim-runtime, des packages et apt-get s'en chargeront. Nous pouvons le vérifier avec dpkg -s pkg... (voir man dpkg pour plus d'informations sur les statuts):

$ Sudo dpkg -s libc6
Package: libc6
Status: install ok installed        // we already have it, no need to install

$ Sudo dpkg -s vim-common
Package: vim-common
Status: deinstall ok config-files   // we don't have it, have to install

Tout comme nous avons vérifié ce que vim dépend, nous pouvons également vérifier quelles autres choses dépendent des mêmes packages que vim en utilisant apt-cache rdepends. Nous devrions voir vim parmi (éventuellement) d'autres choses:

$ apt-cache rdepends vim-common
vim-common
Reverse Depends:
  vim-latexsuite
  vim-addon-manager
  vim-tiny
  vim-nox
  vim-gtk
  vim-gnome
 |vim-dbg
  vim-athena
  vim                               // there it is

Continuons avec l'installation. Une fois que nous avons installé vim, nous pouvons faire l'expérience de la différence entre remove et autoremove . Essayons de supprimer d'abord:

$ Sudo apt-get remove vim
...
The following packages will be REMOVED:
  vim
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 1,922 kB disk space will be freed.
Do you want to continue [Y/n]? n

apt-get remove supprimerait alors vim mais pas ses dépendances les laissant derrière. Essayons maintenant de supprimer l'une des dépendances de vim:

$ Sudo apt-get remove vim-runtime
...
The following packages will be REMOVED:
  vim vim-runtime
0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded.
After this operation, 24.8 MB disk space will be freed.
Do you want to continue [Y/n]? n

Cela supprimerait la dépendance vim-runtimeainsi que le paquet qui en dépend, à savoir vim. Par curiosité, voyons ce qui se passerait si nous supprimions une dépendance inférieure à l'arbre de dépendance de vim:

$ Sudo apt-get remove libgpm2
...
The following packages were automatically installed and are no longer required:
  libgtkglext1 libqtassistantclient4 libtiff-tools libtiff5 python-qt4
  python-sip python-sqlalchemy python-sqlalchemy-ext
Use 'apt-get autoremove' to remove them.
The following packages will be REMOVED:
  anki cheese gimp gimp-gmic gimp-plugin-registry gnome-control-center      // !
  gnome-media gnome-video-effects gstreamer0.10-plugins-good libaa1         // !
  libcheese-gtk21 libcheese3 libgpm2 mplayer quodlibet vim vlc w3m          // !
0 upgraded, 0 newly installed, 18 to remove and 0 not upgraded.
After this operation, 63.1 MB disk space will be freed.
Do you want to continue [Y/n]? n

Cela supprimerait vim et beaucoup de friandises!

Continuons avec apt-get remove vim alors. Une fois que nous l'avons fait, nous devrions avoir quelques restes. Si nous essayons maintenant de supprimer automatiquement , nous pouvons voir:

$ Sudo apt-get autoremove
...
The following packages will be REMOVED:
  vim-common vim-runtime
0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded.
After this operation, 23.2 MB disk space will be freed.
Do you want to continue [Y/n]? y

Ce sont les deux paquets apt-get remove laissés derrière même si rien d'autre n'a besoin d'eux.

Expérimenté avec apt-get 0.9.7.9.

11
Johnny Baloney

Selon ceci: http://ubuntuforums.org/showthread.php?t=99605 autoremove supprimera tous les paquets dont les autres programmes n'ont pas besoin. Vous feriez 'apt-get autoremove', pas 'apt-get autoremove libreoffice'. En outre, la suppression de packages inutiles ne libère pas simplement un peu d'espace disque, elle réduit également la "surface d'attaque" de votre système.

4
conspiritech

remove supprime le programme spécifié alors que autoremove inclut des dépendances, sinon plus utilisées.

En outre, si vous souhaitez libérer de l’espace disque, une commande utile et sûre est ...

Sudo apt-get clean

Cela supprime le cache d'aptitude dans/var/cache/apt/archives

3
kobaltz