comparer 2 versions de qt - Linux et OS Alternatifs
MarshPosté le 29-04-2005 à 09:49:27
coucou,
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
Marsh Posté le 29-04-2005 à 09:49:27
coucou,
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
Have a nice day
---------------
bibax en fait un max