lundi 7 juillet 2008

Nettoyage de printemps

1- Comment se débarrasser des résidus de paquets via Synaptic:

Il faut aller dans Système\Administration\Gestionnaire de paquets Synaptic, puis cliquez en bas à gauche sur "État" qui se trouve parmi la liste suivante:

Installés
Installés (locaux ou obsolète)
Non installés
Non installés (résidus de configuration)
Puis cliquez sur "Non installés (résidus de configuration)", puis cliquez avec le bouton de gauche sur chacun des paquets en choisissant l'option "Sélectionner pour suppression complète, puis faites Appliquer.


2- Comment se débarrasser des résidus de paquets via le Terminal:

sudo apt-get autoclean

3- Comment se débarrasser des données locales inutiles avec "localepurge":


Il faut tout d'abord installer le paquet "localepurge" à partir du gestionnaire de paquet synaptic, puis l'installer. Ensuite vous allez avoir une fenêtre dans laquelle vous allez devoir choisir les langues locales que vous voulez garder, en autre j'ai choisi de garder "fr" et "en".

Je vous conseille fortement de garder la langue anglaise surtout lorsque vous allez avoir de nouvelles installations, puisque localepurge se lance automatiquement et là, il pourrait y avoir de petits soucis.

4- Comment se débarrasser des paquets orphelins:

Il faut installer "deborphan" à partir du gestionnaire de paquets Synaptique, puis après installation, il faut lancer la commande suivante dans un terminal:
sudo deborphan | xargs sudo apt-get -y remove --purge
Pour éviter d'utiliser le terminal pour une prochaine fois, on peut installer un raccourci de deborphan dans le gestionnaire de paquets Synaptic: Configuration\Filtres\

Cliquez sur Nouveau, que vous pouvez nommer Orphelins par exemple, puis cliquez sur " Tout déselectionner" pour ne garder que "orphelin", puis valider.

Pour supprimer les paquets orphelins, il faut suivre la même procédure qu'au 1-

5- Maintenir son système grâce à un Script:

Je vous propose d'aller à ce lien: http://doc.ubuntu-fr.org/maintenir_systeme

J'ai installé la version 3.0.0 de la façon suivante:

Il faut tout d'abord installer le paquet zenity:
sudo apt-get install zenity
Puis copier le script suivant dans:
gedit ~/maintenance-systeme.sh
Le script v3.0.0:
#!/bin/bash
# Script créé par Jean-Lux avec l'aide de Daniel Vergeylen modifié par Yurek sous licence GPL
VERSION_SCRIPT="Version 3 stable - GNOME - APT-GET"
function _help {
zenity --info --title="Menu d'aide" --text="Maintenir son systeme à jour et propre

Usage : ./maintenance_systeme.sh [ARGUMENT]

Arguments disponibles :

-l, --lanceur Permet de rajouter une icône de lancement
dans le menu \"Applications > Outil système\"

-h, --help Affiche cette aide et quitte

-?, --about Affiche les informations sur le script

"
exit 0
}
function _about {

zenity --info --title='Informations et recommandations' --text="Ce script se charge de mettre à jour votre système et de supprimer les fichiers/paquets inutiles.\n\nMaintenance du système\n$VERSION_SCRIPT\nGnome\nJean-lux et Daniel Vergeylen modifié par Yurek\n\nNous remercions les membres du forum : http://forum.ubuntu-fr.org pour les idées et les informations nous ayant aidé à la conception de ce script.\nCe script est sous licence GLP : http://www.gnu.org/licenses/gpl-3.0.txt \n\n\nVous utilisez ce script à vos risques et périls : nous ne serons pas responsable des éventuels problèmes survenant sur votre système après usage de ce script !\nRapportez vos bogues, problèmes et suggestion sur http://forum.ubuntu-fr.org/viewtopic.php?id=117039"

exit 0
}
function initialise {
VERSION=`lsb_release -sr`

if [ "$HOME" = "root" ]; then
zenity --error --title="Probleme de lancement" --text="L'identifiant parait etre ''root'' or ce script doit etre executé en mode utilisateur.\n\nArret du script."
break
fi

if [ `echo $VERSION | sed s'/[.]//'` -ge 804 ] ;then
TRASH="$HOME/.local/share/Trash/files"
else
TRASH="$HOME/.Trash"
fi
echo $TRASH

REPEAT=0
}

function erreur {
if [ "$TRASH" = "" ] ; then
zenity --error --title="Erreur FATAL constaté" --text="Il y a une erreur critique dans le script, veuillez ne pas réutiliser cette fonction et contacter l'auteur pour qu'il corrige le probleme en urgence, rassurez vous votre systeme n'a pas eu de dommage"
exit 105
fi
}

function annuler {
if [ "$PIPESTATUS" = "0" ]; then
update_configuration $ACT
else repeat
fi
}
function repeat {
echo "repeat = $REPEAT"
if [ "$REPEAT" = "0" ]; then
zenity --question --title="Relancer le script" --text="Voulez vous relancer le script ?"
if [ "$PIPESTATUS" = "0" ]; then
REPEAT=0 ;
echo "Continue => redéfinitions des choix"
choix
else
REPEAT=1 ;
echo "Byes"
zenity --notification --window-icon="info" --text="Les opérations demandées sont terminées"
break
fi
else echo "Byee"
zenity --notification --window-icon="info" --text="Les opérations demandées sont terminées"
break
fi
}

function _lanceur
{
if ! [ -f $DOSSIER_CFG/cleaner.png ]; then
cd $DOSSIER_CFG
wget -c -q http://doc.ubuntu-fr.org/_media/cleaner.png 2>&1
cd -
fi
echo "[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Maintenance-système
GenericName=Maintenance-système
Comment=Script permettant de maintenir le systeme à jour et propre
Icon=$DOSSIER_CFG/cleaner.png
Exec=$HOME/Maintenance-système.sh
Terminal=false
StartupNotify=false
Categories=Application;System" > $HOME/Maintenance-système.desktop
mv $0 $HOME/Maintenance-système.sh
chmod a+x $HOME/Maintenance-système.sh

zenity --warning --title="Droits administrateurs nécessaires" --text="Le Script a besoin de votre mot de passe utilisateur pour créer l'entrée du menu 'Applications > Outil système'.\n\nCe mot de passe ne sera évidemment pas sauvegardé ni utilisé ultérieurement par le script."

gksudo "mv -f $HOME/Maintenance-système.desktop /usr/share/applications/"

if [ -f "/usr/share/applications/Maintenance-système.desktop" ]; then
zenity --info --title="Menu ajouté" --text="Une entrée 'Maintenance-système' a été ajouté au menu 'Applications > Outils système'"
else zenity --error --title="Echec" --text="Une entrée 'Maintenance-système' n'a été ajouté au menu 'Applications > Outils système'
Merci de bien vouloir entrer le mot de passe pour donner cet accès au script."
fi
exit 0
}
function dossier {
echo "# Creation du dossier ( $1 )";
mkdir -p "$1" ;
}

function update {
gksudo apt-get update 2>&1 | zenity --progress --title="Tâche : Mettre à jour les dépôts" --text="Je suis en train de mettre à jour vos dépôts..." --pulsate --auto-close
if [ "${PIPESTATUS[0]}" != "0" ]; then
zenity --error --title="Une erreur est survenue" --text="Une erreur est survenue lors de la mise à jour des dépots, veuillez regarder le terminal de ce script pour + d'infos"
annuler
fi
}

function upgrade {
gksudo "apt-get upgrade -y" 2>&1 | zenity --progress --title="Tâche : Mettre à jour les paquets/logiciels installés..." --text="Je suis en train de mettre à jour tout les paquets/logiciels installés..." --pulsate --auto-close
if [ "${PIPESTATUS[0]}" != "0" ]; then
zenity --error --title="Une erreur est survenue" --text="Une erreur est survenue lors de la mise à jour des paquets, veuillez regardez le terminal de ce script pour + d'infos"
annuler
fi
}

function purge_conf {
PAQUET_PURGE_CONF=`dpkg -l | grep "^rc" | tr -s ' ' | cut -d ' ' -f 2`
PAQUET_PURGE_CONF=`echo $PAQUET_PURGE_CONF`
if [ "$PAQUET_PURGE_CONF" != "" ]; then
gksudo "apt-get remove --purge -y $PAQUET_PURGE_CONF" 2>&1 | zenity --progress --title="Tâche : Supprimer les résidus des paquets désinstallé" --text="Je suis en train de supprimer les résidus des paquets désinstallé : \n\n`echo $PAQUET_PURGE_CONF`" --pulsate --auto-close
if [ "${PIPESTATUS[0]}" != "0" ]; then
zenity --error --title="Une erreur est survenue" --text="Une erreur est survenue lors de la suppression complète des paquets inutiles, veuillez regardez le terminal de ce script pour + d'infos"
annuler
fi
fi
}

function autoclean {
gksudo apt-get autoclean 2>&1 | zenity --progress --title="Tâche : Supprimer les paquets périmés du cache d'APT" --text="Je suis en train de supprimer les paquets périmés du cache d'APT" --pulsate --auto-close
if [ "${PIPESTATUS[0]}" != "0" ]; then
zenity --error --title="Une erreur est survenue" --text="Une erreur est survenue lors de la suppression les paquets périmés du cache d'APT, veuillez regardez le terminal de ce script pour + d'infos"
annuler
fi
}

function clean {
gksudo apt-get clean 2>&1 | zenity --progress --title="Tâche : Supprimer TOUS les paquets du cache d'APT" --text="Je suis en train de supprimer tous les paquets téléchargés du cache d'APT" --pulsate --auto-close
if [ "${PIPESTATUS[0]}" != "0" ]; then
zenity --error --title="Une erreur est survenue" --text="Une erreur est survenue lors de la suppression des paquets inutiles du cache d'APT, veuillez regardez le terminal de ce script pour + d'infos"
annuler
fi
}
function update-pci {
gksudo update-pciids 2>&1 | sed -u 's/.*\ \([0-9]\+%\)\ \+\([0-9.]\+\ [KMB\/s]\+\)$/\1\n# Vitesse du téléchargement = \2/' | zenity --progress --title="Mise à jour de l'index des périphériques" --text="Je suis en train de mettre à jour l'index des périphériques PCI..." --auto-close
if [ "${PIPESTATUS[0]}" != "0" ]; then
zenity --error --title="Une erreur est survenue" --text="Une erreur est survenue lors de la 1ère phase de la mise à jour de l'index des périphériques, veuillez regardez le terminal de ce script pour + d'infos"
annuler
fi
}
function update-usb {
gksudo update-usbids 2>&1 | sed -u 's/.*\ \([0-9]\+%\)\ \+\([0-9.]\+\ [KMB\/s]\+\)$/\1\n# Vitesse du téléchargement = \2/' | zenity --progress --title="Mise à jour de l'index des périphériques" --text="Je suis en train de mettre à jour l'index des périphériques USB..." --auto-close
if [ "${PIPESTATUS[0]}" != "0" ]; then
zenity --error --title="Une erreur est survenue" --text="Une erreur est survenue lors de la 2ème phase de la mise à jour de l'index des périphériques, veuillez regardez le terminal de ce script pour + d'infos"
annuler
fi
}
function orphelin {
if [ -x /usr/bin/deborphan ]; then
DEBORPHAN=`deborphan`;
if [ "$DEBORPHAN" != "" ]; then
zenity --question --title="Confirmation pour la tâche : Supprimer les paquets orphelins" --text="Les paquets suivants sont considérés comme orphelins :\n $DEBORPHAN\nVoulez-vous supprimer ces paquets ?"
if [ "${PIPESTATUS[0]}" = "0" ]; then
gksudo "apt-get remove --purge $DEBORPHAN -y" 2>&1 | zenity --progress --title="Tâche : Supprimer les paquets orphelins" --text="Je suis en train de supprimer les paquets orphelins nommés précédemment..." --pulsate --auto-close
fi
if [ "${PIPESTATUS[0]}" != "0" ]; then
zenity --error --text="Une erreur est survenue lors de la suppression des paquets orphelins, veuillez regardez le terminal de ce script pour + d'infos" --title="Erreur"
annuler
fi
fi
fi
}
function reconfigure {
gksudo dpkg --configure -a 2>&1 | zenity --progress --title="Configuration des paquets" --text="Je suis en train reconfigurer tous les paquets dépaquetés mais non configurés." --auto-close
if [ "${PIPESTATUS[0]}" != "0" ]; then
zenity --error --title="Une erreur est survenue" --text="Une erreur est survenue lors de la reconfiguration des paquets non configuré."
annuler
fi
}
function sauvegarde {
SAUVEGARDE=$(find $HOME/ -name '*~' -print)
erreur
zenity --list --width=800 --height=389 --column "Fichiers de sauvegardes :" --column "numero :" --title="Confirmation pour la tâche : Supprimer les sauvegardes inutiles" --text="Ces fichiers de sauvegarde seront supprimés :\nVoulez-vous continuer ?\nPS.: Les répertoires seront affichés, mais ne seront pas supprimés pour des raisons de sécurités" "$SAUVEGARDE"
if [ "${PIPESTATUS[0]}" = "0" ] ; then
find $HOME -name '*~' -print0 |xargs -0 -i mv {} $TRASH/
fi
}
function config {
erreur
# format pour rajouter un fichier :
#$HOME/\
REMOVE_FILE="$HOME/.dvdcss \
$HOME/.gimp/documents \
$HOME/.gnome2/epiphany/favicon_cache \
$HOME/.gnome2/epiphany/mozilla/epiphany/Cache \
$HOME/.gnome2/evince \
$HOME/.gnome2/eog \
$HOME/.gnome2/gnometris.d \
$HOME/.gnome2/accels \
$HOME/.gnome2/accelsgedit \
$HOME/.nautilus/saved* \
$HOME/.adobe \
$HOME/.macromedia \
$HOME/.googleearth/Cache/dbCache.dat* \
$HOME/.thumbnails"
# le dernier ne prend pas d'anti-slash à la fin.

for i in "$REMOVE_FILE"
do
echo "Suppression : "$i""
if [ -e $i ] ;then
mv "$i" "$TRASH"
else
echo "Ficher inéxistant : $i"
fi
done
}
function tmp {
erreur
mv /tmp/* $TRASH/ 2>&1| zenity --progress --title="Tâche : Vider le dossier tmp" --text="Déplacement des fichiers temporaires dans la corbeille..." --pulsate --auto-close
}

function corbeille_home {
erreur
echo "corbeille : $TRASH"
rm -r -f $TRASH 2>&1 | zenity --progress --title="Tâche : Vider la corbeille" --text="Je suis en train de vider votre corbeille ($TRASH/)..." --pulsate --auto-close
}

function corbeille_partition {

erreur
CORBEILLES=`find /media -maxdepth 2 -name ".trash*" -print0`

if [ "$CORBEILLES" != "" ]; then
find /media -maxdepth 2 -name ".trash*" -print0| xargs -0 -i mv {} $TRASH | zenity --progress --title="Tâche : Vider vos corbeilles" --text="Je suis en train de déplacer vos corbeiles ($CORBEILLES) vers la corbeille principale..." --pulsate --auto-close
annuler
else
zenity --info --title="Alert" --text="Aucune corbeilles dans les partitions ou disque amovible"
fi
}

function check {
cd /
gksudo touch /forcefsck
if [ "${PIPESTATUS[0]}" != "0" ]; then
zenity --error --text="Une erreur est survenue lors de la mise en place de la vérification du disque au prochain démarrage, veuillez regardez le terminal de ce script pour + d'infos" --title="Erreur"
annuler
fi
cd -
zenity --info --title="Vérification du système de fichier" --text="Vous avez planifié une vérification du système de fichier, cette vérification s'exécutera au prochain démarrage d'Ubuntu !"
}
function connectivite {
if ([ "${PIPESTATUS[0]}" != "0" ] || [ "$IP" = "" ]) ; then
zenity --error --title="Pas de connexion Internet" --text="Aucune connexion internet n'a été détectée ou vous avez cliquez sur le bouton Annuler. Veuillez vérifier vos connexions. Ce script va continuer à s'éxecuter mais certaines options ne seront pas séléctionner par défaut."
NOTTRUE_UP="FALSE"
NOTTRUE_UG="FALSE"
MESSAGE=": vous semblez ne pas être connecter à internet toutefois vous pouvez selectionner cette option"
ATTENTION="/!\ : "
else
NOTTRUE_UP="`load_configuration UP_DEP`"
NOTTRUE_UG="`load_configuration UG_DEP`"
MESSAGE=""
ATTENTION=""
break
fi
}
function c_ping {

IP=`cat /etc/resolv.conf | grep nameserver |sed s'/^nameserver //'`
if [ "$IP" != "" ]; then
for i in $IP
do
ping -c1 -w 5 -W 5 $i > /dev/null | zenity --progress --pulsate --auto-close --title="Test de la connexion internet" --text="Je suis en train de tester la connectivité de votre connexion internet..."
connectivite
done
else connectivite
fi
}
function update_configuration {
echo "$1" >"$DOSSIER_CFG/maintenance_systeme.cfg"

}

function load_configuration {
if [ "$MODE" = "0" ] ; then
if grep "$1" "$DOSSIER_CFG/maintenance_systeme.cfg" >/dev/null ; then
echo "TRUE"
else echo "FALSE"
fi
else echo "FALSE"
fi
}
function choix {
## Affichage de la liste des actions
ACT=$(zenity --list --checklist --width=700 --height=500 --hide-column="2" \
--title "Sélectionner les opérations à effectuer" \
--text="Veuillez sélectionnez les opérations à effectuer :" \
--column="Choisir" --column "Correspondance" --column="Description" \
"$NOTTRUE_UP" "UP_DEP" "$ATTENTION""Mettre à jour les dépôts""$MESSAGE" \
"$NOTTRUE_UG" "UG_DEP" "$ATTENTION""Mettre à jour les paquets/logiciels installés""$MESSAGE" \
"`load_configuration PU_CONF`" "PU_CONF" "Supprimer les résidus des paquets désinstallé" \
"`load_configuration PERIME`" "PERIME" "Supprimer les paquets de sauvegarde périmés du cache APT" \
"`load_configuration ERASE`" "ERASE" "Supprimer tous les paquets de sauvegarde du cache APT ( si vous choisissez cette option, Il est inutile de cocher la ligne 4 )" \
"FALSE" "UP_PCI" "$ATTENTION""Mise à jour de l'index des périphériques pci""$MESSAGE" \
"FALSE" "UP_USB" "$ATTENTION""Mise à jour de l'index des périphériques usb""$MESSAGE" \
"`load_configuration ORPH`" "ORPH" "Supprimer les paquets orphelins ( Attention peut désinstaller certain paquets utiles pour les 64 bits )" \
"`load_configuration CONFIG`" "CONFIG" "Reconfiguration d'éventuels paquets dépaqueté mais non configuré" \
"`load_configuration DEL_SAUV`" "DEL_SAUV" "Déplacer les sauvegardes inutiles (extension *~ ) dans la corbeille" \
"`load_configuration DEL_CONFIG`" "DEL_CONFIG" "Déplacer les fichiers de configurations, les caches et des miniatures de divers programmes dans la corbeille" \
"`load_configuration DEL_TEMP`" "DEL_TEMP" "Déplacer le contenu du dossier temporaire dans la corbeille" \
"`load_configuration V_PART`" "V_PART" "Vérifier les corbeilles des autres partitions et disque amovibles" \
"`load_configuration DEL_PART`" "DEL_PART" "Nettoyer les corbeilles des autres partitions et disque amovibles" \
"`load_configuration V_CORB`" "V_CORB" "Vérifier la corbeille $HOME" \
"FALSE" "DEL_CORB" "Vider la corbeille $HOME" \
"`load_configuration V_DISK`" "V_DISK" "Vérifier le disque dur au prochain démarrage de l'ordinateur" )
annuler

echo "act = $ACT"

}
### MAIN
## Vérification des droits d'administrateur (root)

REPEAT=0 ;

DOSSIER_CFG="$HOME/.config/maintenance"
dossier "$DOSSIER_CFG"
case $1 in
-h|--help) _help;;
-l|--lanceur) _lanceur;;
-?|--about) _about;;
esac

if [ $UID != 0 ] ; then

initialise

zenity --question --title="Choix du mode" --text="Voulez vous utiliser la configuration précédente ?"
if [ "$PIPESTATUS" = "0" ] ; then
MODE=0 # mode personnel
else
MODE=1
fi

while [ "$REPEAT" = "0" ] # si a 1 arrete
do
REPEAT=0

#verification de la connectivité
c_ping

choix
## Exécution des opérations demandées

# Mise a jour des dépôts
if echo $ACT | grep UP_DEP ; then
update
fi
# Mise à jour des logiciels
if echo $ACT | grep UG_DEP ; then
upgrade
fi
# Suppression de la configuration des paquets désinstallé
if echo $ACT | grep PU_CONF ; then
purge_conf
fi
# Suppression des paquets périmé du cache
if echo $ACT | grep PERIME ; then
autoclean
fi
# Suppression des paquets téléchargé du cache
if echo $ACT | grep ERASE ; then
clean
fi
# Mise à jour de l'index des périphériques pci
if echo $ACT | grep UP_PCI ; then
update-pci
fi
# Mise à jour de l'index des périphériques usb
if echo $ACT | grep UP_USB ; then
update-usb
fi
# Suppression des paquets considérés comme "orphelin"
if echo $ACT | grep ORPH ; then
orphelin
fi
# Reconfiguration des paquets non configuré"
if echo $ACT | grep CONFIG ; then
reconfigure
fi
# Suppression des sauvegardes inutiles (extension *~ )
if echo $ACT | grep DEL_SAUV ; then
sauvegarde
fi
# Suppression des fichiers de configurations des caches et des miniatures de divers programmes
if echo $ACT | grep DEL_CONFIG ; then
config
fi
# Suppression des fichiers temporaires
if echo $ACT | grep DEL_TEMP ; then
tmp
fi
# Vérifier la Corbeille
if echo $ACT | grep V_CORB ; then
zenity --info --title "Alert" --text "Veuillez vérifier le contenu de la corbeille. "
annuler
erreur
nautilus $TRASH
fi
# Nettoyage de la Corbeille
if echo $ACT | grep DEL_CORB ; then
corbeille_home
fi
# Vérifier les Corbeilles
if echo $ACT | grep V_PART ; then
CORBEILLES=`find /media -maxdepth 2 -name ".trash*"`
if [ "$CORBEILLES" != "" ]; then
zenity --info --title="Alert" --text="Veuillez vérifier le contenu des corbeilles des autres partitons ou disques amovibles: ( $CORBEILLES )"
find /media -maxdepth 2 -name ".trash*" -print0|xargs -0 nautilus
else
zenity --info --title="Alert" --text="Aucune corbeilles dans les partitions ou disque amovible"
fi
fi
# Nettoyage de toutes les corbeilles
if echo $ACT | grep DEL_PART ; then
corbeille_partition
fi

# Vérification du système de fichier au redémarrage
if echo $ACT | grep V_DISK ; then
check
fi
repeat
done
## FIN
exit 0 ;
else zenity --error --title="Accès refusé" --text="Les droits d'administrateur ont été octroyés pour ce script. Veuillez le relancer avec l'accès utilisateur ( sans gksudo,et sans sudo ) !"
exit 100 ;
fi
Il faut ensuite donner les droits d'accès:
chmod a+x maintenance-systeme.sh
Et pour lancer le script:
./maintenance-systeme.sh


Sources:
http://ubuntuforums.org/showthread.php?t=140920
http://doc.ubuntu-fr.org/nettoyer_ubuntu
http://www.nolifeclub.org/linux/gagner-de-lespace-disque-avec-localepurge/
http://smhteam.info/wiki/index.linux.php5?wiki=PurgeSysteme
http://forum.ubuntu-fr.org/viewtopic.php?id=117039

4 commentaires:

Anonyme a dit…

Thanx pour le lien !
Ton petit tuto je le garde sous la main ;)

MaLaGasy a dit…

ca fait plaisir de lire que mes notes peuvent aider ;)

Anonyme a dit…

a mettre a jour pour la nouvelle version qui corrige de nombreux bugs

MaLaGasy a dit…

Pour la mise-à-jour, il faut aller sur le forum ;)

Je redonne le lien, au cas ou quelqu'un ne l'aurait pas vu dans ce blog

http://doc.ubuntu-fr.org/maintenir_systeme

Et merci pour l'info