Comment puis-je configurer apt-get pour nettoyer automatiquement après chaque installation

12

Existe-t-il un moyen de faire automatiquement apt-get cleanaprès apt-get install, comme dans d'autres distributions?

Tiago Carrondo
la source
Grâce à @Braiam, j'ai trouvé un bogue dans Ubuntu et je vais le signaler. Dans la solution de Debian Braiam, cela fonctionne très bien.
Tiago Carrondo
1
@TiagoCarrondo Pouvez-vous partager le lien de bogue s'il vous plaît?
Ken Sharp
Dans Xenial, toutes mes machines se nettoient. Je ne sais pas où cela est configuré mais cela fonctionne.
Ken Sharp

Réponses:

13

Il vous suffit de l'ajouter dans les fichiers de configuration apt. Exécutez simplement:

sudo sh -c "echo 'DSELECT::Clean "always";' >> /etc/apt/apt.conf.d/99AutomaticClean"

Cela déclenchera un nettoyage automatique à chaque fois upgrade.

Expliquons cette entrée, à partir de la page de manuel:

Clean

Mode de nettoyage du cache; cette valeur peut être l'une de toujours, rapide, automatique, pré-automatique et jamais. always et prompt supprimera tous les packages du cache après la mise à niveau, prompt (la valeur par défaut) le fait de manière conditionnelle. auto supprime uniquement les packages qui ne sont plus téléchargeables (remplacés par une nouvelle version par exemple). pre-auto effectue cette action avant de télécharger de nouveaux packages.

Plus d'informations:

https://groups.google.com/d/msg/linux.debian.user/aK2jvfL_tuw/rUd6i6bd4YQJ

Braiam
la source
Je suppose qu'il devrait avoir besoin d'un point-virgule à la fin ;! et donc il devrait êtresudo sh -c "echo 'APT::Get::Clean=always;' >> /etc/apt/apt.conf.d/99AutomaticClean"
Indian
@Braiam Je l'ai essayé et ça ne marche pas. J'ai même essayé APT :: Get :: Clean "toujours" comme dans d'autres fichiers mais pas de chance. un indice?
Tiago Carrondo
@Braiam no luck
Tiago Carrondo
@TiagoCarrondo et maintenant? Ce message Usenet dit que c'est le gagnant.
Braiam
J'ai déjà essayé ça après ton premier post. Je vais changer l'emplacement du fichier ... attendez
Tiago Carrondo
2

Écrivez un script shell!

sudo nano /usr/bin/aptinstaller 

Dans ce type de fichier:

#!/bin/bash
sudo apt-get install $1
sudo apt-get -y autoclean
sudo apt-get -y autoremove  

Enregistrez et quittez nanoet saisissez:

sudo chmod +x /usr/bin/aptinstaller 

Maintenant, chaque fois que vous tapez

sudo aptinstaller <package-name> 

Il installerait puis nettoierait.

Indien
la source
Je préfère une option, mais sonne comme un bon plan preety B, thx
Tiago Carrondo
2
/usr/local/bin/semble plus correct.
Ken Sharp
0

Ma solution de contournement, bien que n'étant pas une vraie solution, consiste à définir le répertoire d'archives sur /tmp. Il ne sera pas nettoyé automatiquement après une installation mais il sera nettoyé au redémarrage.

J'ai créé /etc/apt/apt.conf.d/99cleanet ajouté:

Dir::Cache::archives /tmp;

Alternativement, vous pouvez monter en /var/cache/apt/archivesutilisant tmpfs, bien que cela utilisera évidemment de la RAM et je ne recommanderais pas cette option.

Dans /etc/fstab, par exemple:

tmpfs /var/cache/apt/archives tmpfs size=128m,mode=755 0 0
Ken Sharp
la source
0

Un hack semble ajouter ce qui suit, par exemple /etc/apt/apt.conf.d/clean( via ):

DPkg::Post-Invoke {"/bin/rm -f /var/cache/apt/archives/*.deb || true";};

Cela effacera automatiquement le cache après que dpkg ait été invoqué par apt.

Cela ne nettoie pas le cache après, apt-get updatecependant, le crochet APT::Update::Post-Invokepeut être utilisé pour cela.

La meilleure méthode semble toujours appeler apt-get clean/ aptitude cleanmanuellement.

bleuté
la source