Je suis nouveau et j'ai écris un petit script d'install pour BitRock. Ce que j'ai écrit marche très bien mais j'ai un petit problème en suspens.
Je souhaite vérifier si Qt est installé et si oui comparer la version installée à celle qui se trouve dans mon paquetage.
Ma solution n'est pas très bonne car je regarde si le rép Qt existe mais cela dépend des distrib...
Pour l'instant, je vérifie sous /usr/lib/Qt et sous /usr/local/lib/Qt
Après je ne sais comment faire pour évaluer la version et la comparer à la mienne.
Je pensais prendre le nom du rep et prendre les chiffres de la fin (ex : /lib/Qt3.3.3 -> 3.3.3)
et comparer à la muienne 3.3.4.
Mais je n'arrive pas à les comparer... ...et je pense que c'est super mauvais
voici ma partie de code concernant Qt :
#test if qt is installed
if [ ! -d /usr/lib/qt* ] && [ ! -d /usr/local/lib/qt* ]
then cd lib-1.0/RasterChart2BSB/package
tar -zxf qt-x11-free-3.3.4.tar.gz
mv qt-x11-free-3.3.4 /usr/local/qt
#on écrit dans .profile les varaibles d'environnement
if [ ! exist .profile]
then touch .profile
fi
echo QTDIR=/usr/local/qt >> .profile
echo PATH=$QTDIR/bin:$PATH >> .profile
echo MANPATH=$QTDIR/doc/man:$MANPATH >> .profile
echo LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH >> .profile
echo export QTDIR ÄTH MANPATH LD_LIBRARY_PATH
#in .login
if [ ! exist .login]
then touch .login
fi
echo setenv QTDIR /usr/local/qt >> .login
echo setenv PATH $QTDIR/bin:$PATH
echo setenv MANPATH $QTDIR/doc/man:$MANPATH
echo setenv LD_LIBRARY_PATH $QTDIR/lib:$LD_LIBRARY_PATH
#build Qt
./configure
make
make install
echo "La librairie Qt est maintenant installée"
else #on vérifie la version de qt
qmake -v > version
if [ -d /usr/lib/qt* ]
then version='basename /usr/lib/qt*'
echo "/usr/lib"
else
version='basename /usr/local/lib/qt*'
echo "/usr/local/lib"
fi nb='expr version .*\(.\)'
if [ $nb -le 3 ]
then
echo "Votre version est trop ancienne"
echo "installation de Qt 3.3.3"
#on installe Qt
else
echo "bien"
fi
fi
Il se peut qu'il y ait pas mal de faute dans le else car ça me prend la tête et je sais plus coment m'en sortir...
Si vous avez une idée pour me sortir de là, ou bien de la doc, je prend tout ce qui passe