{"id":459,"date":"2015-11-10T00:57:36","date_gmt":"2015-11-09T23:57:36","guid":{"rendered":"http:\/\/crudelis.fr\/site\/sblog\/?p=459"},"modified":"2015-11-10T11:20:43","modified_gmt":"2015-11-10T10:20:43","slug":"nettoyage-automatique-des-paquets-inutiles","status":"publish","type":"post","link":"https:\/\/crudelis.fr\/site\/sblog\/2015\/11\/nettoyage-automatique-des-paquets-inutiles\/","title":{"rendered":"Nettoyage automatique des paquets inutiles"},"content":{"rendered":"<p>Actuellement sur Ubuntu et Debian, je remarque un d\u00e9faut commun aux 2 distributions, l'accumulation de paquets de d\u00e9pendances li\u00e9s \u00e0 des paquets supprim\u00e9s.<br \/>\nEn effet, lors de la suppression d'un paquet, volontairement ou suite \u00e0 une mise \u00e0 jour, les d\u00e9pendances de ce paquets ne sont pas supprim\u00e9es. M\u00eame si celles-ci ne sont plus n\u00e9cessaire.<\/p>\n<p>Lors de l'usage d'apt-get en ligne de commande, un message nous informera que des paquets inutiles peuvent \u00eatre supprim\u00e9s \u00e0 l'aide de la commande autoremove.<br \/>\nMais pour les utilisateurs exploitant uniquement les outils graphiques, aucun avertissement ne signale ces paquets. Et aucun m\u00e9canisme ne permet leur suppression automatiquement.<\/p>\n<p>Or, les anciennes version du noyau occupent en moyenne 200mo chacune, ce qui peut saturer rapidement un disque syst\u00e8me de faible capacit\u00e9.<\/p>\n<p>Afin de pallier ce manque et \u00e9viter de saturer le disque syst\u00e8me, ce tuto propose la mise en place d'un script qui se chargera une fois par mois de nettoyer ces paquets inutiles de fa\u00e7on autonome.<br \/>\n<!--more--><\/p>\n<h1>M\u00e9thode simple<\/h1>\n<p>Commen\u00e7ons par la m\u00e9thode simple, qui installera le script et l'activera.<\/p>\n<blockquote><p>Pour les initi\u00e9s, sautez cette partie et allez \u00e0 la m\u00e9thode hard directement.<\/p><\/blockquote>\n<p>Le script se pr\u00e9sente sous cette forme:<\/p>\n<pre><code>\r\n#!\/bin\/bash\r\n\r\nSCRIPT=\"\/etc\/cron.monthly\/autopurge\"\r\n\r\necho \"#!\/bin\/bash\" | sudo tee $SCRIPT > \/dev\/null\r\necho \"\" | sudo tee -a $SCRIPT > \/dev\/null\r\necho \"TEMP_AUTOPURGE1=\\\"\\$(mktemp)\\\"\" | sudo tee -a $SCRIPT > \/dev\/null\r\necho \"TEMP_AUTOPURGE2=\\\"\\$(mktemp)\\\"\" | sudo tee -a $SCRIPT > \/dev\/null\r\necho \"LOGFILE=\\\"\/var\/log\/apt\/autopurge.log\\\"\" | sudo tee -a $SCRIPT > \/dev\/null\r\necho \"\" | sudo tee -a $SCRIPT > \/dev\/null\r\necho \"echo \\\" \\\" >> \\$LOGFILE\" | sudo tee -a $SCRIPT > \/dev\/null\r\necho \"date >> \\$LOGFILE\" | sudo tee -a $SCRIPT > \/dev\/null\r\necho \"echo \\\"apt-get autoremove -s\\\" >> \\$LOGFILE\" | sudo tee -a $SCRIPT > \/dev\/null\r\necho \"apt-get autoremove -s > \\\"\\$TEMP_AUTOPURGE1\\\" 2>> \\$LOGFILE\" | sudo tee -a $SCRIPT > \/dev\/null\r\necho \"\" | sudo tee -a $SCRIPT > \/dev\/null\r\necho \"while read LIGNE\" | sudo tee -a $SCRIPT > \/dev\/null\r\necho \"do\" | sudo tee -a $SCRIPT > \/dev\/null\r\necho \"\tif [ \\$(echo \\$LIGNE | cut -f1 -d ' ') == Remv ]\t# Si la ligne commence par Remv, paquet \u00e0 supprimer.\" | sudo tee -a $SCRIPT > \/dev\/null\r\necho \"\tthen\" | sudo tee -a $SCRIPT > \/dev\/null\r\necho \"\t\techo -n \\$(echo \\$LIGNE | cut -f2 -d ' ') >> \\\"\\$TEMP_AUTOPURGE2\\\"\" | sudo tee -a $SCRIPT > \/dev\/null\r\necho \"\t\techo -n \\\" \\\" >> \\\"\\$TEMP_AUTOPURGE2\\\"\" | sudo tee -a $SCRIPT > \/dev\/null\r\necho \"\tfi\" | sudo tee -a $SCRIPT > \/dev\/null\r\necho \"done < \\\"\\$TEMP_AUTOPURGE1\\\"\" | sudo tee -a $SCRIPT > \/dev\/null\r\necho \"\" | sudo tee -a $SCRIPT > \/dev\/null\r\necho \"echo -e \\\"\\napt-get purge\\\" >> \\$LOGFILE\" | sudo tee -a $SCRIPT > \/dev\/null\r\necho \"apt-get purge -y \\$(cat \\$TEMP_AUTOPURGE2) >> \\$LOGFILE 2>&1\" | sudo tee -a $SCRIPT > \/dev\/null\r\necho \"\" | sudo tee -a $SCRIPT > \/dev\/null\r\necho \"echo -e \\\"\\napt-get autoclean\\\" >> \\$LOGFILE\" | sudo tee -a $SCRIPT > \/dev\/null\r\necho \"apt-get autoclean >> \\$LOGFILE 2>&1\" | sudo tee -a $SCRIPT > \/dev\/null\r\n\r\nsudo chmod +x $SCRIPT\r\nsudo \/bin\/bash $SCRIPT\r\n<\/code><\/pre>\n<p>Le script doit \u00eatre copi\u00e9 tel quel dans un fichier au format txt et enregistr\u00e9 (de pr\u00e9f\u00e9rence) sous le nom autopurge_build.sh<br \/>\nPuis ce fichier texte doit \u00eatre rendu ex\u00e9cutable (clic droit \/ propri\u00e9t\u00e9s)<\/p>\n<p>Ensuite les choses se corsent car il va \u00eatre n\u00e9cessaire d'ouvrir un terminal de commande \u00e0 l'endroit o\u00f9 se trouve le fichier.<\/p>\n<blockquote><p>F4 dans le navigateur de fichier de KDE<\/p><\/blockquote>\n<p>Et ex\u00e9cuter le fichier<br \/>\n<code><\/p>\n<pre>\r\n.\/autopurge_build.sh\r\n<\/code><\/pre>\n<p>Le mot de passe est demand\u00e9, puis il va sans doute travailler pendant un moment. Pour effectuer un premier nettoyage. Il est important de ne pas l'interrompre, m\u00eame si \u00e7a semble long.<br \/>\nPuisqu'on se trouve dans le terminal, on peut ais\u00e9ment suivre l'\u00e9volution de son travail \u00e0 l'aide de la commande suivante:<br \/>\n<code><\/p>\n<pre>\r\ncat \/var\/log\/apt\/autopurge.log\r\n<\/code><\/pre>\n<p>A pr\u00e9sent, le script s'ex\u00e9cutera tout seul chaque mois et supprimera les paquets devenus inutiles.<\/p>\n<p>&nbsp;<\/p>\n<h1>M\u00e9thode hard<\/h1>\n<p>Le script pr\u00e9sent\u00e9 ci-dessus va \u00e9crire le script au bon endroit pour \u00e9pargner la navigation dans le terminal.<br \/>\nSi vous pr\u00e9f\u00e9rer faire les choses vous m\u00eame, voil\u00e0 le script final:<br \/>\n<code><\/p>\n<pre>\r\n#!\/bin\/bash\r\n\r\nTEMP_AUTOPURGE1=\"$(mktemp)\"\r\nTEMP_AUTOPURGE2=\"$(mktemp)\"\r\nLOGFILE=\"\/var\/log\/apt\/autopurge.log\"\r\n\r\necho \" \" >> $LOGFILE\r\ndate >> $LOGFILE\r\necho \"apt-get autoremove -s\" >> $LOGFILE\r\nsudo apt-get autoremove -s > \"$TEMP_AUTOPURGE1\" 2>> $LOGFILE\r\n\r\nwhile read LIGNE\r\ndo\r\n\tif [ $(echo $LIGNE | cut -f1 -d ' ') == Remv ]\t# Si la ligne commence par Remv, paquet \u00e0 supprimer.\r\n\tthen\r\n\t\techo -n $(echo $LIGNE | cut -f2 -d ' ') >> \"$TEMP_AUTOPURGE2\"\r\n\t\techo -n \" \" >> \"$TEMP_AUTOPURGE2\"\r\n\tfi\r\ndone < \"$TEMP_AUTOPURGE1\"\r\n\r\necho -e \"\\napt-get purge\" >> $LOGFILE\r\nsudo apt-get purge -y $(cat $TEMP_AUTOPURGE2) >> $LOGFILE 2>&1\r\n\r\necho -e \"\\napt-get autoclean\" >> $LOGFILE\r\nsudo apt-get autoclean >> $LOGFILE 2>&1\r\n<\/code><\/pre>\n<p>On placera ce script de pr\u00e9f\u00e9rence dans \/etc\/cron.monthly\/<br \/>\nUn chmod +x suffira \u00e0 le rendre op\u00e9rationnel.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Actuellement sur Ubuntu et Debian, je remarque un d\u00e9faut commun aux 2 distributions, l'accumulation de paquets de d\u00e9pendances li\u00e9s \u00e0 des paquets supprim\u00e9s. En effet, lors de la suppression d'un paquet, volontairement ou suite \u00e0 une mise \u00e0 jour, les d\u00e9pendances de ce paquets ne sont pas supprim\u00e9es. M\u00eame si celles-ci ne sont plus n\u00e9cessaire. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_links_to":"","_links_to_target":""},"categories":[2],"tags":[],"class_list":["post-459","post","type-post","status-publish","format-standard","hentry","category-divers"],"_links":{"self":[{"href":"https:\/\/crudelis.fr\/site\/sblog\/wp-json\/wp\/v2\/posts\/459","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/crudelis.fr\/site\/sblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/crudelis.fr\/site\/sblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/crudelis.fr\/site\/sblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/crudelis.fr\/site\/sblog\/wp-json\/wp\/v2\/comments?post=459"}],"version-history":[{"count":8,"href":"https:\/\/crudelis.fr\/site\/sblog\/wp-json\/wp\/v2\/posts\/459\/revisions"}],"predecessor-version":[{"id":467,"href":"https:\/\/crudelis.fr\/site\/sblog\/wp-json\/wp\/v2\/posts\/459\/revisions\/467"}],"wp:attachment":[{"href":"https:\/\/crudelis.fr\/site\/sblog\/wp-json\/wp\/v2\/media?parent=459"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/crudelis.fr\/site\/sblog\/wp-json\/wp\/v2\/categories?post=459"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/crudelis.fr\/site\/sblog\/wp-json\/wp\/v2\/tags?post=459"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}