Ceci est une ancienne révision du document !



Nettoyer Ubuntu

Bien voilà un petit nettoyage s'impose. En règle générale Ubuntu est bien optimisé mais si on manque de place, ou que l'on veut optimiser au maximum il faut bien faire quelque chose.

FIXME À coordonner avec les pages apt-get et aptitude dans les parties nettoyage.

Voir également : Maintenir Système , optimisation

apt-get ou aptitude ?

Ci-dessous nous utiliserons apt-get. Vous pouvez remplacer apt-get par aptitude, mais une fois votre choix fait, ne changez plus; et sur Gnome il est recommandé d'utiliser uniquement apt-get 1).

MAN la commande d'information

Pour ce qui est des commandes utilisées au cours de cette page je vous suggère de taper un man dans votre terminal puis la commande utilisée, exemple :

man aptitude ou bien man apt-get

De façon plus générale, cette commande vous renseignera sur les options des commandes utilisées.

Si vous n'êtes pas sûr(e) d'avoir bien compris n'hésitez pas à entrer man man dans un terminal et vous verrez !

Supprimez les paquets .deb pour gagner de la place, ces paquets d'installation sont sauvegardés dans le dossier /var/cache/apt/archives/ , or après plusieurs installations les paquets téléchargés s'accumulent et utilisent beaucoup d'espace.

Je précise que les paquets téléchargés ne servent à rien si vous avez Internet. Il vous permettront uniquement de réinstaller des logiciels en mode hors ligne. Et leur suppression n'engendre pas la suppression des logiciels qui on été installés grâce à ces paquets.

Supprimer uniquement les paquets périmés :

sudo apt-get autoclean

Supprimer tous les paquets téléchargés et installés :

sudo apt-get clean
Attention à ne pas supprimer des paquets importants comme ubuntu-desktop ! Le plus sage est de vérifier à quoi correspondent ces paquets en faisant une petite recherche sur le net. Si vous avez désinstallé par erreur des paquets importants, réinstallez-les au plus vite avant d'avoir redémarré.

Supprimer des logiciels en sauvegardant la configuration

sudo apt-get remove <nom du programme inutilisé à supprimer>

ou

sudo aptitude remove <nom du programme inutilisé à supprimer>

Supprimer des logiciels en supprimant la configuration

(peut régler des problèmes de configuration et permet de restaurer ceux par défaut)

sudo apt-get remove <nom du programme inutilisé à supprimer> --purge 

ou

sudo aptitude purge <nom du programme inutilisé à supprimer>

OU

Graphiquement Aller dans synaptic, choisir le mode d'affichage des paquets par etat et sélectionner les paquets non installés (résidus de configuration), puis sélectionner un des paquets non installés puis faire un Ctrl+A pour les sélectionner tous et choisir l'option supprimer complètement.

Supprimer les logiciels orphelins

Il arrive qu'après suppression d'un logiciel, des modules ou des dépendances non-requises ne soient pas supprimées.

Est-ce que le paramètre autoremove de apt-get ne rempli pas les mêmes fonctions que deborphan ?

autoremove : Avec la commande autoremove, apt-get supprime les paquets installés dans le but de satisfaire les dépendances d'un paquet donné et qui ne sont plus nécessaires.

Pour les repérer, il suffit simplement d'installer "deborphan"

sudo aptitude install deborphan

La commande "deborphan" listera les logiciels que vous pourrez supprimer sans risque. Pour les enlever en une commande :

sudo apt-get remove $(deborphan) --purge 

ou

sudo aptitude purge $(deborphan)

et avec apt-get :

sudo apt-get autoremove --purge `deborphan` 
Attention. Certaines dépendances ne sont pas correctement définies au niveau du paquet lui même et deborphan peut supprimer un composant qui peut vous être utile (c'était le cas par exemple avec libavcodec-extra-52).

Après suppression, vous devrez réinstaller ce qu'il ne fallait pas enlever.

Les résidus des logiciels supprimés

Avec dpkg ( dpkg puisque apt-get ne peut pas faire ce que aptitude fait )

sudo dpkg -P `dpkg -l | grep "^rc" | tr -s ' ' | cut -d ' ' -f 2`

OU avec aptitude :

sudo aptitude purge `dpkg -l | grep "^rc" | tr -s ' ' | cut -d ' ' -f 2`
Voici enfin la commande qui supprime aussi les fichiers dans la corbeille de toutes les autres partitions lisibles sous GNU/Linux Ubuntu : C'était pas compliqué !!
Vous devez avoir un accès en lecture et en écriture, si vous n'avez pas accès en écriture sur vos partitions, cette commande ne sert à rien, passez donc cette étape !
Vérifier les corbeilles :

Sous Hardy et versions suivantes : Du home :

nautilus ~/.local/share/Trash/files

Des partitions : Sous Hardy la suppression des fichiers est définitive.

Sous Dapper : Du home :

nautilus ~/.Trash

Des partitions

nautilus `find /media -maxdepth 2 -name ".Trash*"`

Attention, ça ouvre une fenêtre d'explorateur par corbeille trouvée, c'est assez violent ;-)

Vider les corbeilles

Sous Jaunty et versions suivantes : Vider toutes les corbeilles

for v in $(find / -maxdepth 4 -name ".Trash*"); do rm --preserve-root -R "$v"; done

Sous Hardy/Intrepid Vider la corbeille du répertoire home de GNU/Linux :

rm -r -f ~/.local/share/Trash/files/* 

Sous Dapper : Vider la corbeille du répertoire home de GNU/Linux :

rm -r -f ~/.Trash/* 

Vider toutes les corbeilles :

find /media -maxdepth 2 -name ".Trash*" -delete
Vider la corbeille via le dossier Corbeille, d'après mon test sur un Gutsy ne vide pas les corbeilles des autres partitions, mais seulement des supports amovibles.
On a spécifié de rechercher uniquement dans /media, qui par défaut contient toutes les partitions et les medias amovibles. Cependant, dès qu'on monte les partitions dans un autre dossier ( /mnt sous Debian par exemple ), cette commande n'ira pas chercher dedans. Il faut donc exécuter la commande sur /mnt :
nautilus `find /mnt -maxdepth 2 -name ".Trash*"` # pour un affichage graphique
find /mnt -maxdepth 2 -name ".Trash*" -delete  # pour un effaçage direct

Lors de l'utilisation de la commande rm avec un joker (*.dat, par exemple), bash commence par créer la liste de fichiers correspondant au joker avant de la passer à la commande rm. Si cette liste est trop longue, vous obtenez un message d'erreur du type :

bash: /usr/bin/rm: Liste d'arguments trop longue

Pour contourner ce problème, il faut passer les arguments (fichiers à supprimer) 1 par 1 à la commande rm à l'aide d'un script, ou alors utiliser la commande find :

find ./ -type f -name '*.dat' -delete

Explication : la commande find permet de faire une recherche; -type f: spécifie que l'on recherche des fichiers ; -name '*.dat': spécifie le nom des fichiers à rechercher (ici tous les fichiers se terminant par l'extension .dat) ; -delete: supprime les fichiers trouvés.

Pour plus d'information, 'man find' dans le terminal vous expliquera tout pour ne pas faire de bêtises.

Sous Gnome avec Nautilus, durant la navigation dans les dossiers de photos, les icônes des fichiers sont une version plus petite de l'image. À force et bien que l'espace occupé ne soit pas astronomique, elles s'entassent dans le dossier "~/.thumbnails/normal". Son contenu peut être supprimé. La commande suivante permet de supprimer tous les thumbnails de plus de 7 jours.

find ~/.thumbnails -type f -atime +7 -delete

Extrait du site : http://packages.debian.org/stable/admin/localepurge

"Simple script qui récupère l'espace sur le disque gaspillé par des fichiers de locales et des pages de manuel localisées non nécessaires. Il sera automatiquement invoqué à chaque installation avec apt."

Veuillez noter que vous devez faire extrêmement attention pendant l'installation.

Pendant l'installation il vous sera demandé de choisir la langue à conserver ! Attention si vous ne choisissez aucune langue le script n'hésitera pas à tout supprimer ! et vous aurez des problèmes lors du prochain redémarrage.

Pour l'installer et le configurer il suffit de taper :

sudo apt-get install localepurge

Pendant l'installation choisissez (touche haut/bas pour déplacer, sélection de la langue avec la barre espace) la langue d'installation de votre système : en l'occurrence FR pour français.

Pour le lancer il faut ouvrir un terminal et valider la commande :

La commande suivante ne demande aucun paramètre, elle s'exécute directement sans confirmation et le résultat du nettoyage s'affiche
sudo localepurge
En cas de problème il faut réinstaller les locales :
sudo apt-get install --reinstall locales

OU

sudo aptitude reinstall locales

Ce sont les fichiers cachés qui se terminent par un "~". Ils servent de sauvegarde au cas où le fichier source (texte, html, php, conf, … ) serait supprimé ou modifié accidentellement. Ils s'accumulent, s'accumulent…

vous devez vérifier que cette commande ne supprime pas vos configurations sauvegardées, et vos fichiers légitimes que vous avez volontairement nommés avec un ~ à la fin
NE PAS utiliser la commande SUDO, je vous déconseille fortement de supprimer les fichiers de configuration se trouvant dans les autres répertoires de la racine (autre que /home/)

(merci à Yannick_LM) Voir les fichiers à supprimer peut prendre beaucoup de temps mais vous permet de vérifier si les fichiers sont légitimes ou pas.

find ~/ -name '*~' -print0 

Supprimer sans confirmation :

find ~/ -name '*~' -print0 | xargs -0 rm
La suppression des anciens noyaux vous permet certes de gagner de la place, mais cette manipulation est à faire avec une grande attention !

C'est lors de mises à jour importantes qu'un nouveau noyau est installé. La suppression des anciens noyaux donc des paquets linux-image-xxx linux-image-header-xxx est aussi un bon moyen de gagner de l'espace disque.

Si vous pouvez (question d'espace disque), je vous conseille fortement de ne supprimer que les noyaux anciens de plus de 2 niveaux
Cette fonctionnalité est incluse dans maintenir_systeme

D'abord voir quelles sont les versions installées

Taper en ligne de commande dans un terminal sans utiliser la commande « sudo ».

dpkg -l | grep linux | cut -f 3 -d " "

OU

aptitude search ~i^linux

Puis appuyer deux fois sur la touche Tab (au dessus du verrou pour les majuscules) pour compléter la commande pour déterminer les noyaux à désinstaller.

Voici les réponses que j'ai :

linux32                          linux-image-2.6.20-15-generic
linux-headers-2.6.20-15          linux-image-2.6.20-16-generic
linux-headers-2.6.20-15-generic  linux-image-generic
linux-headers-2.6.20-16          linux-libc-dev
linux-headers-2.6.20-16-generic  linux-sound-base
linux-headers-generic  

Déterminer les paquets d'anciennes versions (versions inférieures 2.6.20-15 et en dessous) Vous l'aurez compris la version 2.6.20-16 est la version que j'utilise et l'ancienne version est la version 2.6.20-15. Je vais donc seulement supprimer l'ancienne version. La suppression de ces anciens noyaux va aussi supprimer les lignes de démarrage du fichier de Grub sans supprimer d'autres lignes. Pas de panique donc si vous êtes en dual boot.

Supprimer les versions obsolètes

Il faut supprimer Certains paquets qui commencent par linux-headers- et le paquet commencant par linux-image- correspondant, les dépendances sont automatiquement supprimées. Ainsi, pour le noyau de version 2.6.20-15, il faut introduire la ligne de commande ci-dessous.

sudo apt-get remove linux-headers-2.6.20-15 linux-headers-2.6.20-15-generic linux-image-2.6.20-15-generic --purge

OU

sudo aptitude purge linux-headers-2.6.20-15 linux-headers-2.6.20-15-generic linux-image-2.6.20-15-generic

OU

utiliser synaptic ("suppression complète") pour supprimer les anciennes versions.

Si vous supprimez tous les paquets linux-image, Ubuntu ne pourra plus être amorcé et vous devrez réinstaller Linux depuis le live CD.
Ceci est juste une proposition, histoire d'automatiser la chose, la personnalisation du script n'est pas le sujet de cet article, mais si vous constatez des bugs ou si vous n'arrivez pas à créer votre propre script je vous conseille de lancer un fil de discussion ici :Forum Ubuntu des développeurs ou de me contacter le cas échéant

Voici un script qui permet d'accélérer ces manipulations pour les allergiques aux lignes de commande : maintenir_systeme

Si vous n'avez pas confiance en ce script je propose de créer le vôtre.

Étape 1, Choisissez vos lignes de commande :

sudo aptitude autoclean
rm -r -f ~/.Trash/*

Etape 2, Créez un fichier nettoyage.sh par exemple et remplissez-le :

nano nettoyage.sh

copiez-collez les lignes de commande :

sudo aptitude autoclean
rm -r -f ~/.Trash/*
find ~/.thumbnails -type f -atime +7 -exec rm {} \;

Etape 3, Personnalisez son exécution :

echo "script Nettoyage UBUNTU"
sudo aptitude autoclean
echo "Paquets périmés supprimés OK"
sleep 3
find ~/.thumbnails -type f -atime +7 -exec rm {} \;
echo "Supression des icones. OK"
rm -r -f ~/.Trash/*
echo "Suppression de la CORBEILLE vide. OK"
sleep 3
find ~/ -name '*~' -exec rm {} \;
echo "Suppression des fichiers temporaires du dossier HOME terminant par ~ terminé. OK"
echo "TERMINÉ"

Etape 4, Vérifiez les fichiers de la corbeille (récupération impossible)

Etape 5, Exécuter-le (après l'avoir rendu exécutable):

chmod +x nettoyage.sh
sh nettoyage.sh

DRAFT

Vous avez une idée de nettoyage ? Écrivez-la après cette note en attendant qu'un des contributeurs expérimentés la valide et l'inclue dans les parties précédentes

Vider le cache de votre navigateur internet

Epiphany :

En mode graphique : Édition → Préférences → Confidentialité → Fichiers temporaires → Effacer

Sinon vider le répertoire ~/.gnome2/epiphany/mozilla/epiphany/Cache

Firefox : Outils → Supprimer l'historique récent… → Cache

Effacer les fichiers temporaires d'Adobe Flash Player

rm -r ~/.adobe/Flash_Player;rm -r ~/.macromedia/Flash_Player

Effacer les fichiers temporaires d'Adobe Flash Player à chaque lancement du navigateur (ici Firefox)

Changer le raccourci du navigateur en:

rm -r ~/.adobe/Flash_Player;rm -r ~/.macromedia/Flash_Player;firefox %u

cherche dans les dossiers les fichiers finissant par tilde

find $HOME -name "*~" -a ! -path "$HOME/.local/share/Trash*" -ok mv "{}" ~/.local/share/Trash/files/ \;

find /var/www/ -name "*~" -a ! -ok mv {} ~/.local/share/Trash/files/ \;

Effacer les fichiers plus vieux de X jours dans un dossier

Dans le dossier courant, effacer tous les fichiers plus vieux de 15 jours :

find . -mtime +15 -print -exec rm "{}" \;

Sinon, un script qui récupère un argument (ici les fichiers plus vieux de n'importe quel nombre de jours) :

!#/bin/bash

echo "Saisissez le dossier dans lequel vous souhaitez supprimer les fichiers [chemin]."
read chemin
cd $chemin
if [$? = 1]
then
  echo "Le chemin est incorrect."
  echo "Vous vous situez dans le dossier suivant :"
  pwd
  echo "Ce script choisira le dossier dans lequel vous vous situez pas défaut. Continuer ? [o/n]
  read rep1
else
  rep1='o'
fi
if [$rep1 = 'o']
then
  echo "Supprimer les fichiers vieux de combien de temps ? [En nombre de jours]"
  read cbTemps
  find . -mtime +$cbTemps -print -exec rm "{}" \;
  if [$?=1]
  then
    echo "Une erreur est survenue. Interruption du script."
  else
    echo "Suppression des fichiers vieux de plus de $cbTemps jour(s) réussie. Interruption du script."
  fi
else
  echo "Interruption du script en cours."
fi

1)
Il y a parfois quelques incompatibilités et conflits si l'on utilise les deux. Or Synaptic étant basé sur « apt-get », tout comme « Ajouter/Enlever… », il vaut mieux n'utiliser que apt-get.
  • nettoyer_ubuntu.1325256921.txt.gz
  • Dernière modification: Le 30/12/2011, 15:55
  • par LeMouchoir