PDA

Afficher la version complète : Gestion de VirtualBox(partie II)



ific
05/08/2012, 15h49
suite du script Version1.16 à copier à la suite de la partie I (cette version est obsolète, passer à la version suivante:1.20)


wget -N -nd -q $URL$KEYpath
if [ -s $HOME/tmp/$KEYname ]; then
ID=`cat $KEYname | gpg --verify-options show-notation | sed '/pub/!d' | cut -d/ -f2 | cut -d" " -f1 | tr [:upper:] [:lower:]`
if ! rpm -qa | sed -e '/gpg-pubkey/!d' | grep -q $ID; then
echo;echo " * Installation de la clé publique de VirtualBox *"
sudo rpm --quiet --import $KEYname
if [ $? = 0 ]; then
echo;echo " *** La clé VirtualBox est installée ***"
else
BIP;echo;echo " !!! Echec de l'installation de la clé publique !!!"
fi
fi
else
NOCOMM
fi
echo;echo -e " ** Téléchargement des fichiers VirtualBox \033[1;32;40m$NOUV1\033[0m **"
echo " patience..."
BARREGRAPH start
wget -N -nd -q $URL/$NOUV1/MD5SUMS
if [ -s $HOME/tmp/MD5SUMS ]; then
VERSION=`VERSION=`cat /etc/SuSE-release | sed -e '1!d' -e 's/\.//'``
CHK="";n=0;FICH=`grep _openSUSE$VERSION-1.$OS.rpm ~/tmp/MD5SUMS | sed -e 's/^.* [*, ]//'`
if [ "$FICH" = "" ]; then
echo
echo " !!!- Il n'y a pas de rpm VirtualBox correspondant exactement à ce système... -!!!"
echo
FICH=`cat $HOME/tmp/MD5SUMS | sed '/_openSUSE.*'"${OS}"'.rpm/!d' | sed '$!d' | sed -e 's/^.* [*, ]//'`
if [ "$FICH" != "" ]; then
echo -e " * Essai avec le plus récent rpm disponible: \033[1;32;40m$FICH\033[0m *"
else
BARREGRAPH stop;sleep 1
echo;echo " !!!- Il n'y a pas de version compatible avec votre système... -!!!"
echo;echo;exit 1
fi
fi
else
NOCOMM
fi
until [ "$CHK" = "1" ]; do
let "n += 1"
wget -N -nd -q $URL/$NOUV1/$FICH
if [ -s $HOME/tmp/$FICH ]; then
sed '/'$FICH'/!d' MD5SUMS | md5sum -c &>/dev/null
if [ $? = 0 ]; then
BARREGRAPH stop;CHK="1"
else
rm -f $FICH
fi
else
NOCOMM
fi
if [ $n = 2 -a "$CHK" = "" ]; then
BARREGRAPH stop;sleep 1
echo;echo " !!! téléchargement corrompu 2 fois, abandon... !!!"
echo;echo; exit 1
fi
done

PB=0
sleep 1
echo;echo;echo " ** Téléchargement des extensions ** "
echo " patience..."
echo
sed -e '/\.vbox-extpack/!d' -e 's/^.* [*, ]//' $HOME/tmp/MD5SUMS >extpack.txt
for i in `cat extpack.txt`; do
if [ "$i" != "" ]; then
F=`echo "$i" | sed 's/^.* //'`
CHK="";n=0
BARREGRAPH start
until [ "$CHK" = "1" ]; do
let "n += 1"
wget -N -nd -q $URL/$NOUV1/$F
if [ -s $HOME/tmp/$F ]; then
sed '/'${F}'/!d' MD5SUMS | md5sum -c &>/dev/null
if [ $? = 0 ]; then
BARREGRAPH stop;CHK="1"
echo $F >>extpack1.txt
else
rm -f $F
fi
else
NOCOMM
fi
if [ $n = 2 -a "$CHK" = "" ]; then
BARREGRAPH stop;sleep 1
echo;echo -e " ! Problème au téléchargement de l'extension: \033[1;32;40m$F\033[0m ??? !"
echo;let "PB += 1";break
fi
done
fi
done
sleep 1
rm -f extpack.txt
if ! [ -f $MAN/virtualbox-$NOUV1"_manual.pdf" ]; then
echo;echo " ** Téléchargement du manuel **"
echo " patience..."
CHK="";n=0
BARREGRAPH start
until [ "$CHK" = "1" ]; do
let "n += 1"
wget -N -nd -q $URL/$NOUV1/UserManual.pdf
if [ -s $HOME/tmp/$F ]; then
cat MD5SUMS | sed '/UserManual/!d' | md5sum -c &>/dev/null
if [ $? = 0 ]; then
mv -f UserManual.pdf $MAN/virtualbox-$NOUV1"_manual.pdf"
if [ $? = 0 ]; then
BARREGRAPH stop;CHK="1"
sleep 1;echo;echo -e " ** Le manuel est copié dans \033[1;32;40m$MAN\033[0m **"
echo
rm -f UserManual.pdf
fi
fi
else
NOCOMM
fi
if [ $n = 2 -a "$CHK" = "" ]; then
BARREGRAPH stop;sleep 1
echo;echo " ! Problème au téléchargement du manuel ??? !"
echo;let "PB += 1";break
fi
done
fi
sleep 1
echo " ** Téléchargements terminés. **"
if [ $PB != 0 ]; then
echo;echo -e " !!! Problème au téléchargement de \033[1;32;40m$PB\033[0m fichier(s) !!!"
fi
echo;echo " * Vérification de la signature du rpm VirtualBox *"
sudo rpm --quiet --checksig ~/tmp/$FICH
if [ $? = 0 ]; then
echo;echo " ** La signature du rpm est OK **"
echo
else
BIP;echo;echo " !!! Mauvaise signature du rpm, abandon... !!!"
echo;echo;exit 1
fi

EXT=""
if [ "$ACT" != "Aucune" ]; then
VBoxManage list extpacks | sed -e '/^Pa/!d' | cut -d: -f2 | sed 's/ *//' >extpack0.txt
if [ -s extpack0.txt ]; then
VBoxManage extpack cleanup
for i in "`cat extpack0.txt`"; do
if [ "$i" != "" ]; then
sudo VBoxManage extpack uninstall "$i"
if [ $? = 0 ]; then
echo;echo -e " *** Désinstallation de \033[1;32;40m"$i"\033[0m réussie ***"
echo
else
echo;echo -e " !!! Désinstallationde \033[1;32;40m"$i"\033[0m avortée! !!!"
echo;EXT="0"
fi
else
break
fi
done
fi
fi

if [ "$ACT" != "Aucune" ]; then
echo;echo -e " *** Désinstallation de \033[1;32;40m"$ACT"\033[0m ***"
echo " patience..."
echo
OLD=`rpm -qa | grep "VirtualBox"`
sudo zypper -q -n rm "$OLD"
if [ $? = 0 ]; then
sudo rm -Rf /var/lib/dkms/vboxhost/$ACT
echo;echo -e " *** Désinstallation de \033[1;32;40m"$ACT"\033[0m réussie ***"
echo
echo -e " *** Attention --> Pour procéder à l'installation de la nouvelle version: \033[1;32;40m$NOUV1\033[0m ***"
echo " 1) Rebooter(relancez) la machine: en console, tapez: sudo shutdown -r now"
echo " 2) Relancez vbox_install pour terminer l'installation "
echo;echo;exit 0
else
echo;echo -e " !!! Désinstallation de \033[1;32;40m"$ACT"\033[0m avortée! !!!"
echo;echo;exit 1
fi
fi

echo;echo -e " *** Installation de \033[1;32;40m$NOUV1\033[0m ***"
echo " patience..."
echo
sudo zypper -q -n install $HOME/tmp/$FICH
sleep 1
rpm -q `echo "$FICH" | sed 's/.'"${OS}"'.rpm//'` >/dev/null
if [ $? = 0 ]; then
echo;echo -e " *** Installation de \033[1;32;40m$NOUV1\033[0m réussie ***"
echo
else
echo;echo " !!! Installation avortée! !!!"
echo;echo; exit 1
fi

echo " *** Insertion des extensions ***"
echo " patience..."
echo
sudo VBoxManage extpack cleanup
EXTPACK=`cat $HOME/tmp/MD5SUMS | sed '/vbox-extpack/!d' | sed '$!d' | sed -e 's/^.* [*, ]//'`
if [ "$EXTPACK" != "" ]; then
sudo VBoxManage extpack install $HOME/tmp/"$EXTPACK"
if [ $? = 0 ]; then
echo;echo -e " *** Insertion de \033[1;32;40m$EXTPACK\033[0m réussie ***"
echo " Installation complète... "
echo " Attention: Affecter le groupe vboxuser à l'utilisateur et rebooter la machine"
echo
else
echo;echo -e " !!! L'insertion de \033[1;32;40m$EXTPACK\033[0m a échoué !!!"
echo;echo;exit 1
fi
fi
TERM

ific
07/10/2012, 18h43
Mise à jour de la partie II du script vbox_install Version actuelle:1.20
Début de la seconde partie à coller à la suite de la partie I (because les scripts sont limités en taille sur le forum).


echo -e " *** Il y a une nouvelle version sur le site: \033[1;31;40m$NOUV\033[0m ***"
echo -e " ** Version actuellement installée: \033[1;32;40m$ACT\033[0m **"
else
echo -e " ** Il n'y a pas de version plus récente que celle installée actuellement: \033[1;32;40m$ACT\033[0m **"
fi
echo -e " Version(s) précédente(s) disponibles: 1=\033[1;34;40m$NOUV5\033[0m 2=\033[1;34;40m$NOUV4\033[0m 3=\033[1;34;40m$NOUV3\033[0m 4=\033[1;34;40m$NOUV2\033[0m"
echo
if [ $N = 1 ];then
echo " Pour installer la DERNIERE version, taper: d"
fi
echo " Pour installer une PRECEDENTE version, taper le N° correspondant"
if [ "$ACT" != "Aucune" ]; then
echo " Pour REINSTALLER la version actuelle, taper: r"
echo " Pour reprendre le SETUP de l'installation actuelle, taper: s"
fi
echo " Pour quitter sans installer, taper: Entrée"
echo;read -n1 -p " Réponse: " rep
case "$rep" in
"")echo " OK, on quitte.";echo;echo;exit 0;;
d)clear;echo;echo -e " * OK, installation de VirtualBox \033[1;31;40m$NOUV\033[0m *";;
1)NOUV=$NOUV5;clear;echo;echo -e " * OK, installation de VirtualBox \033[1;34;40m$NOUV\033[0m *";;
2)NOUV=$NOUV4;clear;echo;echo -e " * OK, installation de VirtualBox \033[1;34;40m$NOUV\033[0m *";;
3)NOUV=$NOUV3;clear;echo;echo -e " * OK, installation de VirtualBox \033[1;34;40m$NOUV\033[0m *";;
4)NOUV=$NOUV2;clear;echo;echo -e " * OK, installation de VirtualBox \033[1;34;40m$NOUV\033[0m *";;
r)NOUV=$ACT;clear;echo;echo -e " * OK, re-installation de VirtualBox \033[1;32;40m$NOUV\033[0m *";;
s)SETUP;;
*)echo;echo;exit 0;;
esac
else
NOCOMM
fi

wget -N -nd -q $URL$KEYpath
if [ -s $KEYname ]; then
ID=`cat $KEYname | gpg --verify-options show-notation | sed '/pub/!d' | cut -d/ -f2 | cut -d" " -f1 | tr [:upper:] [:lower:]`
if ! rpm -qa | sed -e '/gpg-pubkey/!d' | grep -q $ID; then
echo;echo " * Installation de la clé publique de VirtualBox *"
sudo rpm --quiet --import $KEYname
if [ $? = 0 ]; then
echo;echo " *** La clé VirtualBox est installée ***"
else
BIP;echo;echo " !!! Echec de l'installation de la clé publique !!!"
fi
fi
else
NOCOMM
fi
echo;echo -e " ** Téléchargement des fichiers VirtualBox \033[1;32;40m$NOUV\033[0m **"
echo " patience..."

BARREGRAPH start
wget -N -nd -q $URL/$NOUV/MD5SUMS
if [ -s MD5SUMS ]; then
VERSION=`VERSION=`cat /etc/SuSE-release | sed -e '1!d' -e 's/\.//'``
CHK="";n=0;FICH=`grep _openSUSE$VERSION-1.$OS.rpm ~/tmp/MD5SUMS | sed -e 's/^.* [*, ]//'`
if [ "$FICH" = "" ]; then
echo
echo " !!!- Il n'y a pas de rpm VirtualBox correspondant exactement à ce système... -!!!"
echo
FICH=`cat MD5SUMS | sed '/_openSUSE.*'"${OS}"'.rpm/!d' | sed '$!d' | sed -e 's/^.* [*, ]//'`
if [ "$FICH" != "" ]; then
echo -e " * Essai avec: \033[1;32;40m$FICH\033[0m *"
else
BARREGRAPH stop;sleep 1
echo;echo " !!!- Il n'y a pas de version compatible avec votre système... -!!!"
echo;echo;exit 1
fi
fi
else
NOCOMM
fi
until [ "$CHK" = "1" ]; do
let "n += 1"
wget -N -nd -q $URL/$NOUV/$FICH
if [ -s $FICH ]; then
sed '/'$FICH'/!d' MD5SUMS | md5sum -c &>/dev/null
if [ $? = 0 ]; then
BARREGRAPH stop;CHK="1"
else
rm -f $FICH
fi
else
NOCOMM
fi
if [ $n = 2 -a "$CHK" = "" ]; then
BARREGRAPH stop;sleep 1
echo;echo " !!! téléchargement corrompu 2 fois, abandon... !!!"
echo;echo; exit 1
fi
done

PB=0
sleep 1
echo;echo;echo " ** Téléchargement des extensions ** "
echo " patience..."
echo
sed -e '/\.vbox-extpack/!d' -e 's/^.* [*, ]//' MD5SUMS >extpack.txt
for i in `cat extpack.txt`; do
if [ "$i" != "" ]; then
F=`echo "$i" | sed 's/^.* //'`
CHK="";n=0
BARREGRAPH start
until [ "$CHK" = "1" ]; do
let "n += 1"
wget -N -nd -q $URL/$NOUV/$F
if [ -s $F ]; then
sed '/'${F}'/!d' MD5SUMS | md5sum -c &>/dev/null
if [ $? = 0 ]; then
BARREGRAPH stop;CHK="1"
echo $F >>extpack1.txt
else
rm -f $F
fi
else
NOCOMM
fi
if [ $n = 2 -a "$CHK" = "" ]; then
BARREGRAPH stop;sleep 1
echo;echo -e " ! Problème au téléchargement de l'extension: \033[1;32;40m$F\033[0m ??? !"
echo;let "PB += 1";break
fi
done
fi
done
sleep 1
rm -f extpack.txt
if ! [ -f $MAN/virtualbox-$NOUV"_manual.pdf" ]; then
echo;echo " ** Téléchargement du manuel **"
echo " patience..."
CHK="";n=0
BARREGRAPH start
until [ "$CHK" = "1" ]; do
let "n += 1"
wget -N -nd -q $URL/$NOUV/UserManual.pdf
if [ -s $F ]; then
cat MD5SUMS | sed '/UserManual/!d' | md5sum -c &>/dev/null
if [ $? = 0 ]; then
mv -f UserManual.pdf $MAN/virtualbox-$NOUV"_manual.pdf"
if [ $? = 0 ]; then
BARREGRAPH stop;CHK="1"
sleep 1;echo;echo -e " ** Le manuel est copié dans \033[1;32;40m$MAN\033[0m **"
echo
rm -f UserManual.pdf
fi
fi
else
NOCOMM
fi
if [ $n = 2 -a "$CHK" = "" ]; then
BARREGRAPH stop;sleep 1
echo;echo " ! Problème au téléchargement du manuel ??? !"
echo;let "PB += 1";break
fi
done
fi
sleep 1
echo " ** Téléchargements terminés. **"
if [ $PB != 0 ]; then
echo;echo -e " !!! Problème au téléchargement de \033[1;32;40m$PB\033[0m fichier(s) !!!"
fi
echo;echo " * Vérification de la signature du rpm VirtualBox *"
sudo rpm --quiet --checksig $FICH
if [ $? = 0 ]; then
echo;echo " ** La signature du rpm est OK **"
echo
else
BIP;echo;echo " !!! Mauvaise signature du rpm, abandon... !!!"
echo;echo;exit 1
fi

EXT=""
if [ "$ACT" != "Aucune" ]; then
VBoxManage list extpacks | sed -e '/^Pa/!d' | cut -d: -f2 | sed 's/ *//' >extpack0.txt
if [ -s extpack0.txt ]; then
VBoxManage extpack cleanup
for i in "`cat extpack0.txt`"; do
if [ "$i" != "" ]; then
sudo VBoxManage extpack uninstall "$i"
if [ $? = 0 ]; then
echo;echo -e " *** Désinstallation de \033[1;32;40m"$i"\033[0m réussie ***"
echo
else
echo;echo -e " !!! Désinstallationde \033[1;32;40m"$i"\033[0m avortée! !!!"
echo;EXT="0"
fi
else
break
fi
done
fi
fi

if [ "$ACT" != "Aucune" ]; then
echo;echo -e " *** Désinstallation de \033[1;32;40m"$ACT"\033[0m ***"
echo " patience..."
echo
OLD=`rpm -qa | grep "VirtualBox"`
sudo zypper -q -n rm "$OLD"
if [ $? = 0 ]; then
sudo rm -Rf /var/lib/dkms/vboxhost
echo $FICH >vb_inst-ready.txt
echo;echo -e " *** Désinstallation de \033[1;32;40m"$ACT"\033[0m réussie ***"
echo
echo -e " *** Attention --> Pour procéder à l'installation de la nouvelle version: \033[1;32;40m$NOUV\033[0m ***"
echo " 1) Rebooter(relancez) la machine: en console, tapez: sudo shutdown -r now"
echo " 2) Relancez vbox_install pour terminer l'installation "
echo;echo;exit 0
else
echo;echo -e " !!! Désinstallation de \033[1;32;40m"$ACT"\033[0m avortée! !!!"
echo;echo;exit 1
fi
echo $FICH >vb_inst-ready.txt # on place un fichier dans /tmp avec le nom de la version à installer au second tour.
fi