- Accueil
- » Forum
- » Autres environnements et personnalisations d'Ubuntu
- » Liste des mises à jour dans pipemenu d'openbox : help!
Pages : 1
Discussion fermée
#1 Le 28/12/2008, à 10:17
- thuban
Liste des mises à jour dans pipemenu d'openbox : help!
bonjour à tous!
Eh bien comme vousle voyez, je continue à customizer mon menu d'openbox, et à me battre avec des scripts et pipemenus!
Ce coup-ci, j'aimerais afficher les paquets disponibles à être mis à jour , et en cliquant dessus, lancer update-manager.
Je voulais m'inspirer de ce script :
#!/bin/bash
# Conky script for displaying available updates
# in Debian. This script assumes you are in the
# sudo group and require no password for root
# access. Add something as such to your conkyrc:
#${color}APT: ${color D7D3C5}${execi 28800 ~/bin/debupdates.sh}
sudo apt-get -qy update > /dev/null
NUMOFUPDATES=$(aptitude search "~U" | wc -l)
echo $NUMOFUPDATES Mises à jour disponibles
en le bidouillant j'arrive à ça :
#!/bin/bash
sudo apt-get -qy update > /dev/null
NUMOFUPDATES=$(aptitude search "~U" | wc -l )
cat << EOFMENU
<openbox_pipe_menu>
<item label="$NUMOFUPDATES">
<action name="Execute">
<execute>
gksu update-manager
</execute>
</action>
</item>
</openbox_pipe_menu>
EOFMENU
Bon, j'ai plus ou moins le nombre de mises à jour.
Maintenant, ce que je voudrais, c'est la liste des paquets pouvants être upgradés... Il devient clair qu'il me faut lister le nombre de paquets upgradables , assigner à chaque paquet un numéro entre 1 et n, et faire un affichage de 1 à n paquets, avec le nom du paquet en question.
Il me faudra en fait afficher n fois <item label="paquet n° x"> .
Que pensez vous de mon raisonnement?
Bon, tout ça c'est bien beau, mais.... je ne sais pas faire.....
Pourriez vous me donner des pistes svp?
suckless.org
websérie d'un copain
Profil libre.fm
Debian Sid avec dwm
Hors ligne
#2 Le 20/05/2009, à 21:58
- Mopinou
Re : Liste des mises à jour dans pipemenu d'openbox : help!
salut, ce post date un peu,
je vais mettre ce que j'ai en ce moment. Ca pourra peut etre en aider / inspirer d'autres.
Mon pipemenu affiche le nombre de nouvelles mise à jour puis si on clic dessus il lance une console pour installer ces mises à jour, mais mon menu ne permet pas de choisir les mises a jour à installer, il les installer toutes ou aucune.
Il y a plusieurs étapes necessaires, toutes trouvée dans le forum, je remercie tous les auteurs des différentes parties m'ayant servies pour ce pipemenu ^^
Dans un premier temps il faut inserer le pipemenu dans le menu.xml d'openbox, il faut rajouter cette ligne de code :
<menu id="MaJ" label="MaJ" execute="~/.script/openbox/recherche_upgrade.sh"/>
le script lancé est :
#! /bin/sh
sudo /usr/bin/apt-get update >/dev/null 2>&1
NB=$(sudo /usr/bin/apt-get --simulate upgrade | grep jour, | awk '{print $1}')
echo "<openbox_pipe_menu>\n";
if [ "$NB" = "0" ]; then
{ echo "<separator label=\"Aucune mise à jour\" />";}
elif [ "$NB" = "1" ]; then
{ echo "<item label=\"$NB mise à jour\"><action name=\"Execute\"><execute>gnome-terminal -x ~/.script/openbox/lancer_maj.sh</execute></action></item>";}
else
{ echo "<item label=\"$NB mises à jour\"><action name=\"Execute\"><execute>gnome-terminal -x ~/.script/openbox/lancer_maj.sh</execute></action></item>";}
fi
echo "</openbox_pipe_menu>";
exit 0
dans ce script on peut remarque 2 points importants
1) il faudrai rentrer des mots de passe pour les 2 opérations /usr/bin/apt-get update (mise a jour des dépots) et /usr/bin/apt-get -- simulate upgrade (simulation de mise à jour mais sans rien installer)
Pour ne pas être embêté avec ca, on faut autoriser l'utilisateur a ne pas avoir besoin de mot de passe pour ces 2 actions, qui sont sans danger vu que rien n'est fait à part la mise à jour des dépots.
Il faut donc modifier le fichier /etc/sudoers (Danger modifier ce fichier peut faire planter votre système)
pour ne pas faire de bétise, lancez :
sudo visudoers
cette commande permet d'éditer le fichier tout en vérifiant la synthaxe avant de l'enregistré
rajouter à la fin de ce fichier les lignes suivantes:
mopy ALL = (root) NOPASSWD: /usr/bin/apt-get --simulate upgrade
mopy ALL = (root) NOPASSWD: /usr/bin/apt-get update
Ce code permet à l'utilisateur de ne pas avoir besoin de mot de passe pour les 2 actions /usr/bin/apt-get update et /usr/bin/apt-get --simulate upgrade. N'oubliez pas de changer "mopy" par votre pseudo.
voila, pour le mot de passe c'est réglé
2) en cliquant sur l'item du pipemenu il se lance un autre script si il y a des mise à jour possibles
Ce script est le suivant :
#!/bin/bash
echo "les paquets vont être mis à jour"
echo "si l'action n'est pas désirée : Ctrl+C)"
sudo -k
sudo apt-get upgrade
exit 0
Ce script permet lancer l'upgrade en effacant le mot de passe de sudo auparavant (par sécurité)
voila. bon ok j'ai pas pu le tester, mon systeme était déjà a jour, mais tous les scripts fonctionnent en console
Il peut y avoir des point à améliorer ou des synthaxes plus propres, je ne suis pas sous linux depuis très longtemps.
N'hésitez pas à laisser vos impression, merci
Dernière modification par Mopinou (Le 20/05/2009, à 22:01)
Hors ligne
Pages : 1
Discussion fermée