#651 Le 21/01/2016, à 15:59
- jplemoine
Re : Nettoyage dans les noyaux (kernel)
ok. Merci. Je fais ça dans la soirée : je n'ai pas accès aux micros avant.
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Déconnecté jusqu’à nouvel ordre
Hors ligne
#652 Le 21/01/2016, à 19:05
- jplemoine
Re : Nettoyage dans les noyaux (kernel)
Bon, j'ai fais la simulation : il y a 72 paquets qui "viennent" avec gksu
Les NOUVEAUX paquets suivants seront installés :
acl at-spi2-core colord dbus-x11 dconf-gsettings-backend dconf-service
gconf-service gconf-service-backend gconf2 gconf2-common gcr gksu
gnome-keyring hicolor-icon-theme libatk-bridge2.0-0 libatk1.0-0
libatk1.0-data libatspi2.0-0 libcairo-gobject2 libcolord1 libcolorhug1
libdconf1 libexif12 libgconf-2-4 libgcr-ui-3-1 libgdk-pixbuf2.0-0
libgdk-pixbuf2.0-common libgksu2-0 libgnome-keyring-common libgnome-keyring0
libgphoto2-6 libgphoto2-l10n libgphoto2-port10 libgtk-3-0 libgtk-3-bin
libgtk-3-common libgtk2.0-0 libgtk2.0-bin libgtk2.0-common libgtop2-7
libgtop2-common libgudev-1.0-0 libgusb2 libieee1284-3 libjasper1 liblcms2-2
libp11-kit-gnome-keyring libpam-gnome-keyring libpolkit-agent-1-0
libpolkit-backend-1-0 libsane libsane-common libstartup-notification0
libv4l-0 libv4lconvert0 libwayland-client0 libwayland-cursor0 libx11-xcb1
libxcb-util0 libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxi6
libxinerama1 libxkbcommon0 libxrandr2 libxtst6 p11-kit p11-kit-modules
policykit-1 x11-common
- Je confirme que la version d'avant est installée sans problème
- Je suis incapable de savoir si on peut ou pas installer ces paquets (si ça tient ou pas beaucoup de place).
Mais je suis incapable
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Déconnecté jusqu’à nouvel ordre
Hors ligne
#653 Le 21/01/2016, à 19:08
- f.x0
Re : Nettoyage dans les noyaux (kernel)
Et que donne
sudo apt-get install --no-install-recommends -s gksu
SOPI
Hors ligne
#654 Le 21/01/2016, à 19:19
- jplemoine
Re : Nettoyage dans les noyaux (kernel)
Pour info : en version 3.6, il n'y avait pas de problème : ça s'installait tel quel.
@f.x0 : je tente et je te dis ce qu'il en est.
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Déconnecté jusqu’à nouvel ordre
Hors ligne
#655 Le 21/01/2016, à 19:25
- jplemoine
Re : Nettoyage dans les noyaux (kernel)
ça donne :
user@machine:~# sudo apt-get install --no-install-recommends -s gksu
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Vous pouvez lancer « apt-get -f install » pour corriger ces problèmes :
Les paquets suivants contiennent des dépendances non satisfaites :
gksu : Dépend: libgksu2-0 (>= 2.0.8) mais ne sera pas installé
Dépend: libgtk2.0-0 (>= 2.8.0) mais ne sera pas installé
E: Dépendances non satisfaites. Essayez « apt-get -f install » sans paquet
(ou indiquez une solution).
user@machine:~#
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Déconnecté jusqu’à nouvel ordre
Hors ligne
#656 Le 24/01/2016, à 16:23
- Hoper
Re : Nettoyage dans les noyaux (kernel)
Fais ce qu'il te demande depuis le début
sudo apt-get install -f
La version 3.6 est vielle ! Tu avais 4 versions de retard
Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org
Hors ligne
#657 Le 25/01/2016, à 10:29
- nany
Re : Nettoyage dans les noyaux (kernel)
Oui, il ne me semble pas que le .deb soit responsable de tous ces paquets graphiques qui cherchent à s’installer.
Ceci dit, afin d’éviter d’ajouter gksu (qui, de surcroît, est déprécié, mais plus simple à mettre en place que pkexec) sur un serveur, j’aurais tendance à procéder à l’installation comme ceci :
sudo wget -c -O /usr/bin/kclean http://hoper.dnsalias.net/tdc/public/kclean
(commande que l’on peut réitérer autant de fois que nécessaire si on a une connexion en carton, grâce à l’option -c), puis,
sudo chmod +x /usr/bin/kclean
Et le tour est joué : kclean est utilisable en console, le cas est même prévu si par mégarde on utilise l’option -g ou --gui.
Hors ligne
#658 Le 25/01/2016, à 11:32
- jplemoine
Re : Nettoyage dans les noyaux (kernel)
@Hoper : ok, je teste ASAP
@nany : ce n'est pas le .deb de manière directe. Le .deb demande gksu (qui, évidement, n'est pas installé dans le cadre d'un serveur) et c'est gksu qui demande des dépendances graphiques (et évidement ne sont pas installées)
Mon problème est que je ne veux pas surcharger le serveur mais que je suis incapable de savoir si les dépendances prennent beaucoup de place ou pas...
Au vu de vos réponses, je fais faire le install -f ...
nany : ta première commande permet d'installer le script "à la main" sans passer par le .deb ?
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Déconnecté jusqu’à nouvel ordre
Hors ligne
#659 Le 25/01/2016, à 12:48
- Hoper
Re : Nettoyage dans les noyaux (kernel)
jplemoine : Oui, tu peux aussi télécharger directement le script, le mettre ou tu veux et l'utiliser tel quel. Il te manquera simplement l'icone etc, mais comme tu n'a pas d'interface graphique, ce n'est pas un soucis. Donc effectivement, c'est aussi une solution. Cela dit, si tu as déjà fait le "-f", tu as du constater qu'il ne t'a pas installé cinquante mille trucs en plus...
Le script est toujours téléchargeable depuis la page officiel de kclean, ici :
https://hoper.dnsalias.net/tdc/index.php?pages/kclean
(si il te pose des questions vis à vis du certificat, tu répond oui
Je compte régler ce problème bientot...
Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org
Hors ligne
#660 Le 25/01/2016, à 13:12
- jplemoine
Re : Nettoyage dans les noyaux (kernel)
Finalement, je vais voir si la commande de nany qui dépose le script au bon endroit n'est pas la méthode la plus efficace :
ça m'évitera d'installer des dépendances graphiques.
@Hoper : je n'ai pas fait le -f : je n'étais pas là ce week-end et je n'avais pas ton go (ou de quelqu'un d'autre) : je ne sais pas si les paquets étaient gros ou pas.
J'avais pas précisé que le "serveur" en question est en fait un "vieux" PC (2003 de mémoire) que j'utilise avec une version d'Ubuntu serveur : j'essaie donc de ne pas prendre trop de disque.
Il me sert de :
- serveur DHCP
- serveur DNS
- sauvegarde de mon "home"
- dépôt local
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Déconnecté jusqu’à nouvel ordre
Hors ligne
#661 Le 25/01/2016, à 13:23
- nany
Re : Nettoyage dans les noyaux (kernel)
nany : ta première commande permet d'installer le script "à la main" sans passer par le .deb ?
Voui.
wget va chercher le script à l’adresse hoper.dnsalias.net/tdc/public/kclean et le place directement dans /usr/bin (option -O), d’où l’importance de l’exécuter en sudo.
Après, comme l’a dit Hoper, on peut le récupérer en https mais, comme il s’agit d’un certificat autosigné, wget va se mettre à gueuler à moins de lui ajouter l’option --no-check-certificate.
Ce qui donne pour le lien https :
sudo wget -c --no-check-certificate -O /usr/bin/kclean https://hoper.dnsalias.net/tdc/public/kclean
Hors ligne
#662 Le 25/01/2016, à 13:29
- nany
Re : Nettoyage dans les noyaux (kernel)
- dépôt local
C’est bien ce qui me semblait que c’était toi qui avais une connexion plutôt faiblarde et que tu as mis un dépôt local pour palier à cet inconvénient. D’où mon ajout de l’option -c pour wget qui permet de reprendre le téléchargement où il en était (au lieu de recommencer le téléchargement complet) en cas de pépin.
Hors ligne
#663 Le 25/01/2016, à 14:05
- Hoper
Re : Nettoyage dans les noyaux (kernel)
C’est bien ce qui me semblait que c’était toi qui avais une connexion plutôt faiblarde et que tu as mis un dépôt local pour palier à cet inconvénient
Pour un script de quelques octets... Mais j'aime ce soucis du détail
Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org
Hors ligne
#664 Le 25/01/2016, à 14:19
- nany
Re : Nettoyage dans les noyaux (kernel)
Pour un script de quelques octets...
Oui, l’opion -c est laaaargement superflue pour ce petit script, même pour jplemoine je pense. Ceci dit, j’ai depuis longtemps pris l’habitude de la mettre quasi-sytématiquement, au cas où. De toute façon, ça ne mange pas de pain.
Mais j'aime ce soucis du détail
Hors ligne
#665 Le 25/01/2016, à 16:39
- jplemoine
Re : Nettoyage dans les noyaux (kernel)
jplemoine a écrit :- dépôt local
C’est bien ce qui me semblait que c’était toi qui avais une connexion plutôt faiblarde et que tu as mis un dépôt local pour palier à cet inconvénient.
Le dépot local, c'est "juste" pour utiliser la connexion la nuit (vers 2h du mat) pour télécharger les mises à jour et utiliser ma connexion pour moi dans la journée.
En ce qui concerne ma connexion faiblarde, j'ai y remédier : Adieu l'ADSL et bonjour la fibre (débit mesuré : 80Mb/s en descendant et 5 mb/s en montant : c'est donné pour 100 mb/s mais de mémoire, j'ai jamais réussi à dépasser les 80).
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Déconnecté jusqu’à nouvel ordre
Hors ligne
#666 Le 25/01/2016, à 16:48
- nany
Re : Nettoyage dans les noyaux (kernel)
Ah ben j’ai l’air de quoi avec mon option -c, alors ?
Con, tout simplement.
Hors ligne
#667 Le 25/01/2016, à 21:09
- jplemoine
Re : Nettoyage dans les noyaux (kernel)
Non. je prends la commande, l'option -c et tout, et tout....
C'est pas parce que à ma maison, j'ai une connexion que ça sera toujours le cas.
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Déconnecté jusqu’à nouvel ordre
Hors ligne
#668 Le 25/01/2016, à 21:34
- nany
Re : Nettoyage dans les noyaux (kernel)
T’as raison, en ce moment c’est les soldes. Je fais -70% sur le package complet.
N’oublie pas de m’envoyer ton numéro de carte bancaire (sans oublier les trois chiffres derrière) avec ton code secret.
Hors ligne
#669 Le 25/01/2016, à 23:44
- jplemoine
Re : Nettoyage dans les noyaux (kernel)
avec ton code secret.
Si j e t'envoie le code, il ne sera plus secret... !!!
Si j'attends encore, il y aura peut-être un seconde démarque... (même à 70%, c'est trop cher) : à -110%, je prends !!!
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Déconnecté jusqu’à nouvel ordre
Hors ligne
#670 Le 03/02/2016, à 09:11
- nany
Re : Nettoyage dans les noyaux (kernel)
[HS] les lignes de commandes que tu m'as données l'autre fois pour installation dans une version serveur fonctionne à la condition sine qua non de supprimer l'ancienne version[/HS]
Ah ?
Je ne maîtrise pas suffisamment wget mais il est possible en effet qu’il détecte la présence du fichier et crée une copie plutôt que d’écraser celui-ci. Dans ce cas, peut-être que ça marcherait mieux sous cette forme :
sudo bash -c 'wget -c -O - http://hoper.dnsalias.net/tdc/public/kclean > /usr/bin/kclean'
ou, pour la version https :
sudo bash -c 'wget -c --no-check-certificate -O - https://hoper.dnsalias.net/tdc/public/kclean > /usr/bin/kclean'
EDIT : après une courte vérification, il m’apparaît que ce serait plutôt l’option -c de wget qui détecte la présence du fichier et qui fait que wget décide alors de ne pas procéder au téléchargement. Du coup, je me demande si cette option est vraiment utile dans le petit correctif que je viens de proposer.
Dernière modification par nany (Le 03/02/2016, à 09:17)
Hors ligne
#671 Le 03/02/2016, à 09:41
- moko138
Re : Nettoyage dans les noyaux (kernel)
-c est très utile pour reprendre le téléchargement interrompu d'un fichier long à télécharger.
Si le fichier téléchargé est complet, wget s'arrête.
Donc il est clair qu'il n'est pas conçu pour ce qui est évoqué ici. Ou alors il faut télécharger dans répertoire-temporaire puis déplacer dans répertoire-final.
%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel : À la découverte de dcraw
Hors ligne
#672 Le 20/03/2016, à 18:18
- KHAMSA
Re : Nettoyage dans les noyaux (kernel)
Bonjour à tous,
@Hoper #626:"Il(kclean) fait un seul truc simple, mais sans prise de tête pour l'utilisateur.
toute une philosophie,je l'ai enfin découvert hier... grand merci pour ce tuto.
Jacques.
Hors ligne
#673 Le 24/03/2016, à 09:15
- Hoper
Re : Nettoyage dans les noyaux (kernel)
toute une philosophie
Ca s'appelle KISS:
https://fr.wikipedia.org/wiki/Principe_KISS
Et c'est utilisé depuis la nuit des temps sous unix.
En résumé, une commande égale une fonction.
Chaque programme ne fait donc qu'une seule chose, mais il essaye de la faire bien. C'est pour cela que tu trouvera des milliers de commandes sous linux, plutôt que de gros "programmes usines à gaz" qui essayent de savoir tout faire.
Toute la puissance ensuite vient de la possibilité de combiner les commandes grace au shell
Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org
Hors ligne
#674 Le 24/03/2016, à 13:00
- JLK
Re : Nettoyage dans les noyaux (kernel)
toute une philosophie
Ca s'appelle KISS:
https://fr.wikipedia.org/wiki/Principe_KISS
Et c'est utilisé depuis la nuit des temps sous unix.
En résumé, une commande égale une fonction.
Chaque programme ne fait donc qu'une seule chose, mais il essaye de la faire bien. C'est pour cela que tu trouvera des milliers de commandes sous linux, plutôt que de gros "programmes usines à gaz" qui essayent de savoir tout faire.Toute la puissance ensuite vient de la possibilité de combiner les commandes grace au shell
Tout à fait, et c'est mieux ainsi.
Hors ligne
#675 Le 01/04/2016, à 09:22
- lynn
Re : Nettoyage dans les noyaux (kernel)
Bonjour Hoper,
Merci pour ton script dont je me sers régulièrement. Je me suis permise d'y apporter quelques petites corrections orthographiques pour mon utilisation personnelle.
#!/bin/bash
# Historique :
# 1.0 : Mode texte uniquement
# 2.0 : Ajout du mode graphique
# 2.1 : Légères modifications cosmétiques
# 2.2 : Support des kernel 3.X, ajout de --keep-prev
# 3.0 : Utilisation de getopts, refonte du mode terminal, ajout d'un lanceur
# 3.1 : Gestion des nouvelles options en mode graphique, mode term par défaut
# 3.2 : Prise en compte des paquets linux-image-extra* et ajout de --version
# 3.3 : Arrêt du script si un noyau > au courant est trouvé, ajout des 4.X
# 3.4 : Correction de : if [ "FORCE_YES" = "VRAI" ] (Ne provoquait qu'un bug d'affichage)
# 3.5 : Calcul de l'espace disque théoriquement libéré
# 3.6 : Correctifs (suppression non fonctionelle en mode graphique)
# 3.7 : Ajout d'un icône et de la dépendance à gnome-sudo
# 3.8 : dpkg -p devient dpkg -s
# 3.9 : Prise en compte des noyaux "signed" et "lowlatency"
# 4.0 : Voir: https://forum.ubuntu-fr.org/viewtopic.php?id=242358&p=26
CURRENT_VER=4.0
## Bugs connus
# Une fois les suppressions lancées en mode graphique,
# il n'est pas possible de les interompre
# L'option force-yes ne fonctionne qu'en mode texte
###################
# Fonctions
###################
function clean_exit
{
rm -f /tmp/clean_kernel.tmp
exit $1
}
function display_syntaxe
{
echo " "
echo " Syntaxe : $0 [options]"
echo " Options disponibles : "
echo " -t --term Lance le script en mode console (mode par défaut)"
echo " -g --gui Lance le script en mode graphique"
echo " -k --keep-prev Conserve automatiquement le noyau précédent"
echo " -s --simulate Aucune suppression reelle, simple simulation"
echo " -h --help Affichage de la syntaxe"
echo " -f --force-yes Suppression sans aucune demande de confirmation !"
echo " -v --version Informations sur les versions"
echo " "
echo " Exemple d'utilisation en ligne de commande : sudo kclean -k "
echo " "
}
function remove_kernel
{
echo " "
echo " Suppression en cours :"
echo " "
for i in `grep -v "$KERNEL" /tmp/clean_kernel.tmp`
do
if [ "$SIMULATE" = "VRAI" ]
then
echo "Suppression du paquet $i (simple simulation...) "
else
apt-get remove --yes --purge $i
fi
done
echo " "
echo " -------------- Suppression effectuée ---------------"
echo " "
clean_exit 0
}
# interpretation des parametres
TERMINAL="VRAI"
KEEP_PREV="FAUX"
SIMULATE="FAUX"
HELP="FAUX"
FORCE_YES="FAUX"
VERSION="FAUX"
while getopts ":tgksvf-:" OPT
do
# gestion des options longues avec ou sans argument
[ $OPT = "-" ] && case "${OPTARG%%=*}" in
term) OPT="t" ;;
gui) OPT="g" ;;
keep-prev) OPT="k" ;;
simulate) OPT="s" ;;
help) OPT="h" ;;
force-yes) OPT="f" ;;
version) OPT="v" ;;
*) display_syntaxe ; clean_exit 1 ;;
esac
# puis gestion des options courtes
case $OPT in
t) ;;
g) TERMINAL="FAUX" ;;
k) KEEP_PREV="VRAI" ;;
s) SIMULATE="VRAI" ;;
h) HELP="VRAI" ;;
f) FORCE_YES="VRAI" ;;
v) VERSION="VRAI" ;;
*) display_syntaxe ; clean_exit 1 ;;
esac
done
## Aide
if [ "$HELP" = "VRAI" ]
then
display_syntaxe
clean_exit 0
fi
## Version
if [ "$VERSION" = "VRAI" ]
then
echo " "
echo "kclean version $CURRENT_VER"
head -19 $0 | grep -v bash
clean_exit 0
fi
## Le script a t-il bien ete lance en tant que root ?
if [ "$USER" != "root" -a "$SIMULATE" = "FAUX" ]
then
echo " "
echo " Erreur : Vous devez avoir les droits de root pour supprimer des paquets"
echo " Avez-vous oublié sudo devant le nom du script ?"
echo " "
clean_exit 2
fi
## Traitements communs
KERNEL=`uname -r | cut -d '-' -f 1,2`
dpkg -l | grep linux | grep ubuntu | grep ii | awk '{print $2}' | grep -E '2\.6|3\.|4\.' >/tmp/clean_kernel.tmp
dpkg -l | grep linux | grep restricted | grep ii | awk '{print $2}' | grep -E '2\.6|3\.|4\.' >>/tmp/clean_kernel.tmp
dpkg -l | grep linux | grep image| grep ii | awk '{print $2}' | grep -E '2\.6|3\.|4\.' >>/tmp/clean_kernel.tmp
dpkg -l | grep linux | grep headers | grep ii | awk '{print $2}' | grep -E '2\.6|3\.|4\.' >>/tmp/clean_kernel.tmp
dpkg -l | grep linux | grep tools | grep ii | awk '{print $2}' | grep -E '2\.6|3\.|4\.' >>/tmp/clean_kernel.tmp
#On supprime immediatement de la liste le noyau courant :
sed -i -e /$KERNEL/D /tmp/clean_kernel.tmp
#On cherche le noyau precedent
NB_KERNEL=`dpkg -l | grep linux | grep image | grep ^ii | egrep -v "extra|signed|lowlatency" | awk '{print $2}' | grep -E '2\.6|3\.|4\.' | wc -l`
if [ $NB_KERNEL -eq 1 ]
then
PREVIOUS_V=""
else
PREVIOUS_V=`dpkg -l | grep linux | grep image | grep ^ii | egrep -v "extra|signed|lowlatency" | awk '{print $2}' | grep -E '2\.6|3\.|4\.' | sort -V | tail -2 | head -1 | cut -d '-' -f3,4`
fi
# On cherche le noyau le plus recent pour le comparer au noyau courant
LAST_KERNEL=`dpkg -l | grep linux | grep image | grep ^ii | egrep -v "extra|signed|lowlatency" | awk '{print $2}' | grep -E '2\.6|3\.|4\.' | sort -V | tail -1 | cut -d '-' -f 3,4`
######## Mode texte ############
if [ "$TERMINAL" = "VRAI" ]
then
echo " "
echo "Noyau actuellement en cours d'utilisation : $KERNEL"
echo "Par défaut, seul ce noyau est conservé."
echo " "
if [ "$LAST_KERNEL" != "$KERNEL" ]
then
if [ "$FORCE_YES" = "VRAI" ]
then
echo "ATTENTION : Présence de noyau(x) plus récent(s) sur le système."
echo "Ce script va néanmoins poursuivre (utilisation du -f)"
else
echo "ATTENTION : Au moins un noyau plus récent ( $LAST_KERNEL ) a été détecté."
echo "Ce phénomène peut avoir plusieurs causes mais, par securité,"
echo "ce script va s'arrêter."
echo " "
echo "Si vous comprenez exactement ce qui se passe,"
echo "et si vous souhaitez reelement supprimer tous les noyaux"
echo "y compris les plus récents, utilisez l'option -f seule."
clean_exit 4
fi
fi
if [ "$KEEP_PREV" = "VRAI" ]
then
echo "Ce script va tenter de trouver la version précédente du noyau pour la conserver."
if [ "$FORCE_YES" = "FAUX" ]
then
echo "Verifiez les informations fournies avant de valider la suppression."
fi
echo " "
if [ -z "$PREVIOUS_V" ]
then
echo "Aucune version précédente trouvée, il n'y a donc rien à supprimer."
echo "Abandon."
echo " "
clean_exit 0
fi
echo "La version précédemment installée (à conserver) est la version : $PREVIOUS_V"
sed -i -e /$PREVIOUS_V/D /tmp/clean_kernel.tmp
fi
if [ `cat /tmp/clean_kernel.tmp |wc -l` -eq 0 ]
then
echo "Aucun noyau à supprimer."
echo "Abandon."
echo " "
clean_exit 0
fi
#Calcul de l'espace libere
ESPACEKB=0
for i in `grep -v "$KERNEL" /tmp/clean_kernel.tmp`
do
ESPACEKB=$(($ESPACEKB+`dpkg -s $i | grep Installed-Size | awk '{print $2}'`))
done
ESPACEMB=$(($ESPACEKB / 1024))
echo "Les paquets suivants vont être supprimés :"
echo " "
cat /tmp/clean_kernel.tmp | sed -e "s@^@ @g"
echo " "
echo "Cela devrait libérer environ $ESPACEMB MiB d'espace disque"
echo " "
## Mode non interactif
if [ "$FORCE_YES" = "VRAI" ]
then
remove_kernel
fi
## Mode interactif
echo -n " Voulez-vous indiquer manuellement des paquets à conserver ? [o/N] :"
read REP
if [ "$REP" = "o" -o "$REP" = "O" ]
then
echo " Indiquez la liste des paquets à conserver en les séparant par un espace : "
read REP
for i in `echo "$REP"`
do
sed -i -e /$i/D /tmp/clean_kernel.tmp
done
echo " "
echo " Voila la liste des paquets qui seront donc supprimés :"
echo " "
grep -v "$KERNEL" /tmp/clean_kernel.tmp | sed -e "s@^@ @g"
echo " "
fi
echo -n " Voulez-vous supprimer l'ensemble des paquets indiqués ? [o/N] :"
read REP
if [ "$REP" = "o" -o "$REP" = "O" ]
then
remove_kernel
else
echo " "
echo " Abandon de l'opération..."
echo " "
clean_exit 0
fi
else
############### Mode graphique ##################
## On verifie que zenity est installé
which zenity > /dev/null
if [ $? -ne 0 ]
then
echo " "
echo " le mode graphique nécessite zenity pour fonctionner."
echo " Installez zenity ou utilisez uniquement le mode texte."
echo " "
clean_exit 3
fi
## On verifie qu'un display graphique est disponible
if [ -z "$DISPLAY" ]
then
echo " "
echo " Aucun serveur graphique disponible (variable DISPLAY vide)"
echo " Si vous utilisez un serveur en mode texte uniquement,"
echo " vous pouvez utiliser ce logiciel en mode console en tapant:"
echo " "
echo " $0 --term"
echo " "
clean_exit 3
fi
## As t-on bien les droits admin ?
if [ $USER != "root" ]
then
zenity --error --text="Ce programme nécessite les droits root pour fonctioner.\nRelancer-le en tapant : gksudo $0"
clean_exit 2
fi
if [ "$LAST_KERNEL" != "$KERNEL" ]
then
zenity --error --text="Vous utilisez actuellement le noyau $KERNEL\nOr, au moins un noyau plus récent ( $LAST_KERNEL ) a été détecté.\nCe phénomène peut avoir plusieurs causes mais,\npar securité, ce script va s'arrêter.\n\nSi vous souhaitez réelement supprimer ce (ou ces) noyau(x),\nlancez kclean en ligne de commande."
clean_exit 4
fi
## Faut il conserver le noyau precedent ?
if [ "$KEEP_PREV" = "FAUX" ]
then
zenity --question --text "Voulez-vous conservez le noyau précédent ?"
if [ $? -eq 0 ]
then
KEEP_PREV="VRAI"
fi
fi
## Y a t-il vraiment des paquets à supprimer ?
## Si il faut conserver le noyau precedent, on le supprime de a liste
if [ "$KEEP_PREV" = "VRAI" -a ! -z "$PREVIOUS_V" ]
then
sed -i -e /$PREVIOUS_V/D /tmp/clean_kernel.tmp
fi
TEXT="Le noyau actuellement utilisé a pour version : <b>$KERNEL</b>.\n"
if [ "$KEEP_PREV" = "VRAI" -a ! -z "$PREVIOUS_V" ]
then
TEXT="$TEXT Le noyau précédent a pour version : $PREVIOUS_V.\n"
fi
TEXT="$TEXT Aucun paquet faisant référence à un noyau plus ancien n'a été trouvé sur le système...\n\nAppuyez sur VALIDER pour quitter le programme."
if [ -z "`grep -v "$KERNEL" /tmp/clean_kernel.tmp`" ]
then
zenity --info --title "Nettoyage dans les noyaux..." \
--text="$TEXT"
clean_exit 0
fi
## Oui, il y a des paquets à supprimer...
if [ "$FORCE_YES" = "VRAI" ]
then
TEXT="ATTENTION : L'option -f (force-yes) n'est pas prise en compte en mode graphique."
zenity --warning --width=500 --height=200 --title "Nettoyage dans les noyaux..." --text="$TEXT"
fi
LISTE_PAQUET=""
## Construction de la liste des paquets a supprimer pour zenity
ESPACE_TOTAL=0
for i in `grep -v "$KERNEL" /tmp/clean_kernel.tmp`
do
ESPACEKB=`dpkg -s $i | grep Installed-Size | awk '{print $2}'`
ESPACE_TOTAL=$(($ESPACE_TOTAL+$ESPACEKB))
ESPACEMB=$(($ESPACEKB / 1024))
LISTE_PAQUET="$LISTE_PAQUET TRUE $i $ESPACEMB"
done
ESPACE_TOTAL=$(($ESPACE_TOTAL / 1024))
TEXT="Vous utilisez actuellement la version <b>$KERNEL</b> de Linux.\n"
if [ "$KEEP_PREV" = "VRAI" ]
then
TEXT="$TEXT Le noyau précédent a pour version : $PREVIOUS_V, il sera conservé.\n"
fi
TEXT="$TENT En cliquant sur <b>Valider</b> les paquets suivants seront supprimés:"
CHOIX=$(zenity \
--title "Nettoyage dans les noyaux" \
--text="$TEXT" \
--width=500 --height=400 \
--list --print-column="3" --checklist --separator=' ' \
--column="Supprimer" \
--column="Nom des paquets" \
--column="MiB" \
--print-column=2 \
$LISTE_PAQUET )
## Si on clic sur Annuler...
if [ $? -ne 0 ]
then
clean_exit 2
fi
## Sinon
NBSUP=`echo $CHOIX | wc -w`
PROGRES=0
INCREMENT=`expr 100 / $NBSUP`
(
for i in `echo $CHOIX`
do
if [ "$SIMULATE" = "FAUX" ]
then
apt-get remove --purge --yes "$i" >/dev/null 2>&1
fi
PROGRES=$(($PROGRES+$INCREMENT))
echo "$PROGRES"
echo "# Suppression de $i"
done
) |
zenity --progress --width=420 --auto-close --percentage=0 \
--text="Suppression des paquets sélectionnés..."
if [ "$SIMULATE" = "FAUX" ]
then
TEXTE_FINAL="Les paquets sélectionnés ont bien été supprimés.\nSi tout était coché, vous avez libéré $ESPACE_TOTAL MiB sur le disque."
else
TEXTE_FINAL="Mode simulation terminé, aucun paquet supprimé."
fi
zenity --info --title "Nettoyage dans les noyaux..." \
--text="$TEXTE_FINAL"
clean_exit 0
fi
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
Hors ligne