Contenu | Rechercher | Menus

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.

Pré-requis

Logiciels permettant de maintenir et nettoyer son système

Depuis un terminal

En mode graphique

Supprimer les fichiers temporaires des fichiers d'installation

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

Précision: Les paquets téléchargés ne servent à rien si vous avez Internet. Il vous permettront uniquement de réinstaller des applications en mode hors ligne. Leur suppression n'engendre pas la suppression des applications déjà installés grâce à ces paquets.
Depuis un terminal en saisissant les commandes suivantes:

  • Supprimer le cache des paquets périmés :
    sudo apt-get autoclean
  • Supprimer tout le cache :
    sudo apt-get clean
  • Supprimer les paquets installés comme dépendances et devenus inutiles :
    sudo apt-get autoremove

Suppression de logiciels

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é.

Depuis un terminal en saisissant les commandes suivantes:

En sauvegardant la configuration

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

En supprimant la configuration

(Peut régler des problèmes de configuration et permet de restaurer ceux par défaut) Depuis un terminal avec la commande suivante:

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

Supprimer les logiciels orphelins

Il arrive qu'après suppression d'une application, des modules ou des dépendances non-requises ne soient pas supprimées. L'application DebOrphan permet de supprimer les paquets auxquels plus aucune application installée ne fait appel.

Les résidus des logiciels supprimés

Depuis un terminal avec la commande suivante: Avec dpkg:

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

    ou

  • sudo dpkg --purge $(COLUMNS=200 dpkg -l | grep "^rc" | tr -s ' ' | cut -d ' ' -f 2)

Supprimer toutes les corbeilles APRÈS AVOIR VÉRIFIÉ LEURS CONTENUS

La corbeille des versions et variantes actuellement soutenues par Ubuntu reprend toutes les corbeilles de toutes les partitions montées.

  • Pour vérifier le contenu, il suffit d'un petit clic sur l'icône de la barre des lanceurs ou du bureau selon la variante d'Ubuntu.
  • Pour supprimer les éléments, il suffit de les sélectionner puis de supprimer.
  • Pour tout supprimer, cliquer sur le bouton vider.

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

Supprimer un grand nombre de fichiers: "/usr/bin/rm: Liste d'arguments trop longue"

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.

Supprimer les miniatures des images

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

Supprimer les fichiers « locaux » inutiles

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

Supprimer des fichiers de sauvegarde

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. Par conséquent, il est recommandé de ne pas utiliser la commande sudo (qui pourrait altérer des fichiers ne se trouvant pas dans /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 

Afficher la liste avec un retour à la ligne :

find ~/ -name '*~'

Supprimer sans confirmation :

find ~/ -name '*~' -print0 | xargs -0 rm

Suppression des anciens noyaux

Pour supprimer des anciens noyaux, se reporter à la section Suppression des anciens noyaux de la page kernel.

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

Script personnel

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 apt-get autoclean
rm -r -f ~/.local/share/Trash/files/* 

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

nano nettoyage.sh

copiez-collez les lignes de commande :

sudo apt-get autoclean
rm -r -f ~/.local/share/Trash/files/* 
find ~/.thumbnails -type f -atime +7 -exec rm {} \;

Etape 3, Personnalisez son exécution :

echo "Script de nettoyage d'Ubuntu"
sudo apt-get autoclean
echo "Les paquets périmés ont été supprimés OK"
sleep 3
find ~/.thumbnails -type f -atime +7 -exec rm {} \;
echo "Icônes supprimés"
rm -r -f ~/.local/share/Trash/files/* 
echo "Corbeille vidée"
sleep 3
find ~/ -name '*~' -exec rm {} \;
echo "Fichiers temporaires (terminant par ~) du dossier HOME ont été suprimmés"
echo "Nettoyage 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

Quand apt-get ne fonctionne plus pour raison de manque d'espace

Je suis tombé récemment sur un problème d'espace pour l'installation d'un nouveau noyau. Après avoir répertorié tous les noyaux disponibles, j'ai commencé à les supprimer manuellement dans le répertoire /boot et dans le menu.lst de grub afin d'éviter toute erreur postérieure, je dirai que c'est un peu bourrin mais visiblement cela fonctionne. Par exemple suppression du noyau 2.6.28-19

cd /boot
find ./ -name "*2.6.28-19*"
rm ./vmlinuz-2.6.28-19-server
rm ./config-2.6.28-19-server
rm ./abi-2.6.28-19-server
rm ./System.map-2.6.28-19-server
rm ./vmcoreinfo-2.6.28-19-serve
rm ./initrd.img-2.6.28-19-server

et suppression dans le menu.lst de grub de la ligne correspondante

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 jours) réussie. Interruption du script."
  fi
else
  echo "Interruption du script en cours."
fi

Voir aussi



Le contenu de ce wiki est sous licence : CC BY-SA v3.0