script de test de paquet installé

Le
Guy Roussin
Bonjour,

Je cherche ecrire en bash une fonction simple qui teste si un paquet
est install avec des commandes de base prsentes dans toute
debian/ubuntu.
J'ai essay avec dpkg -s "paquet" mais elle renvoie vrai mme si le
paquet n'est pas install

Merci.
--
Guy Roussin

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Xadawa
Le #9663551
#!/bin/bash

# $1 (1er arcument) est égal au nom du paquet
if [ `aptitude search $1 | tr -s " " | cut -d " " -f 1,2 | grep "^i" |
wc -l` -ne 0 ]; then echo "$1 INSTALLE"; else echo "$1 NON INSTALLE"; fi

Guy Roussin wrote:
Bonjour,

Je cherche à ecrire en bash une fonction simple qui teste si un paquet
est installé avec des commandes de base présentes dans toute
debian/ubuntu.
J'ai essayé avec dpkg -s "paquet" mais elle renvoie vrai même si le
paquet n'est pas installé ...

Merci.



--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Bruno Muller
Le #9663501
--=-7UOIAwE9vfBm/aE+iRRp
Content-Type: text/plain; charset=ISO-8859-15
Content-Transfer-Encoding: quoted-printable

Hello,

Le mardi 03 juin 2008 à 12:34 +0200, Guy Roussin a écrit :
Je cherche à ecrire en bash une fonction simple qui teste si un paquet
est installé avec des commandes de base présentes dans toute
debian/ubuntu.



Proposition :

is_installed()
{
LANG=C apt-cache policy "$1" 2> /dev/null | grep -qv "Installed:
(none)"
}

$ is_installed plop ; echo $?
1
$ is_installed libssl0.9.8 ; echo $?

0

Bruno

--
OBSÉDÉ
M : Non... je ne me vois pas faire chien d'aveugle... C'est pas un
boulot pour moi... Chien d'impuissant, ça, ça doit être un bon plan.. .

--=-7UOIAwE9vfBm/aE+iRRp
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: Ceci est une partie de message
=?ISO-8859-1?Q?numériquement?= =?ISO-8859-1?Q?_signée?
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQBIRTZ4uJD2bkb8m5sRAsGFAJ4zHnGaUQZde/2U0PSgdG6nY7bP7gCfSVRY
WQN053PxmbjkE7SKPJ5Zhp8 =1LAA
-----END PGP SIGNATURE-----

--=-7UOIAwE9vfBm/aE+iRRp--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Guy Roussin
Le #9663491
Bonjour,

Merci Bruno, mais y a encore ce petit bug que je trouve avec dpkg -s

$ aptitude search libmysqlclient
p libmysqlclient-dev - MySQL database development ...
p libmysqlclient15-dev - MySQL database development ...
i A libmysqlclient15off - MySQL database client library
p libmysqlclient16 - MySQL database client library

$ is_installed libmysqlclient15off ; echo $?

0

$ is_installed libmysqlclient15-dev ; echo $?

0

$ is_installed libmysqlclient17 ; echo $?
1


libmysqlclient15-dev qui n'est pas installé répond 0 au lieu de 1


Guy


Bruno Muller a écrit :
Hello,

Le mardi 03 juin 2008 à 12:34 +0200, Guy Roussin a écrit :
Je cherche à ecrire en bash une fonction simple qui teste si un paqu et
est installé avec des commandes de base présentes dans toute
debian/ubuntu.



Proposition :

is_installed()
{
LANG=C apt-cache policy "$1" 2> /dev/null | grep -qv "Installed:
(none)"
}

$ is_installed plop ; echo $?
1
$ is_installed libssl0.9.8 ; echo $?
0

Bruno



--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Yannick Fouquet
Le #9663481
Bonjour,

> Guy Roussin wrote:
>> Je cherche à ecrire en bash une fonction simple qui teste si 1 paquet
>> est installé avec des commandes de base présentes dans toute
>> debian/ubuntu.
>> J'ai essayé avec dpkg -s "paquet" mais elle renvoie vrai même si le
>> paquet n'est pas installé ...

Xadawa a écrit :
#!/bin/bash

# $1 (1er arcument) est égal au nom du paquet
if [ `aptitude search $1 | tr -s " " | cut -d " " -f 1,2 | grep "^i" |
wc -l` -ne 0 ]; then echo "$1 INSTALLE"; else echo "$1 NON INSTALLE"; fi



ce n'est pas plus simple de passer par dpkg -l ?

#!/bin/sh
if [ "`dpkg -l $1 2>/dev/null | grep '^ii' `" != "" ]; then echo "$1
INSTALLE"; else echo "$1 NON INSTALLE"; fi

en tous cas, ça me semble plus simple...

Et si on veut rester dans les codes : 1 pour installé, 0 sinon

[ "`dpkg -l $1 2>/dev/null | grep '^ii' `" == "" ];echo $?

Bon courage.
Yannick.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Guy Roussin
Le #9663391
Merci à tous et notamment à Yannick.

En effet, j'ai finalement retenu la solution de Yannick qui me plait bien
et qui utilise "dpkg -l " et grep. J'avais pourtant cherché ...

test_reqpkg()
{
dpkg -l "$1" 2> /dev/null | grep '^ii' &> /dev/null
}


Guy

Je cherche à ecrire en bash une fonction simple qui teste si un paque t
est installé avec des commandes de base présentes dans toute
debian/ubuntu.
J'ai essayé avec dpkg -s "paquet" mais elle renvoie vrai même si le
paquet n'est pas installé ...

Merci.



--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
mailingdebian
Le #9663341
Bonjour,

Tu peux toujours faire simple :
dpkg -l postfix || apt-get install postfix



A plus Christophe
=================



Guy Roussin a écrit :
Merci à tous et notamment à Yannick.

En effet, j'ai finalement retenu la solution de Yannick qui me plait bien
et qui utilise "dpkg -l " et grep. J'avais pourtant cherché ...

test_reqpkg()
{
dpkg -l "$1" 2> /dev/null | grep '^ii' &> /dev/null
}


Guy

Je cherche à ecrire en bash une fonction simple qui teste si un paquet
est installé avec des commandes de base présentes dans toute
debian/ubuntu.
J'ai essayé avec dpkg -s "paquet" mais elle renvoie vrai même si le
paquet n'est pas installé ...

Merci.






--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Publicité
Poster une réponse
Anonyme