[Debian squeeze] Tester dans un script si « apt-get update » fonctionne bi en

3 réponses
Avatar
Francois Lafont
Bonjour à tous,

Dans un script, je voudrais tester si « apt-get update » fonctionne
bien. En effet, le script, entre autres, procédera à l'installation de
quelques paquets et je souhaiterais vérifier avant que « apt-get update
» se déroule bien. Si ce n'est pas le cas, le script se terminera avec
un message d'erreur sans procéder aux installations des paquets. Du
coup, j'avais pensé faire tout simplement ceci :

#----------------------------------------
if apt-get update > /dev/null 2>&1; then
echo "OK"
else
echo "Problème"
fi
#----------------------------------------

Seulement, j'ai testé ce bout de code en prenant la peine au préalable
de changer mon fichier /etc/apt/sources.list afin d'y mettre des dépôts
complètement fictifs. Et bien il semblerait que « apt-get update »
renvoie malgré tout la valeur 0 et du coup le test ci-dessus laisse
penser que tout est OK alors que la commande n'a pas du tout fonctionné.

Plus simplement, j'ai :

apt-get update && echo "Tout est OK"

qui m'affiche bien "Tout est OK" à la fin alors que je n'ai que des
messages d'erreur m'indiquant que rien n'a pu être récupéré sur les
dépôts (étant donné qu'ils n'existent pas).

Voici ma question : comment faire pour tester dans un script si la
commande « apt-get update » a *réellement* bien fonctionné ?

Merci d'avance pour votre aide.


--
François Lafont

3 réponses

Avatar
Francois Lafont
Le 27/02/2012 15:52, Francois Lafont a écrit :

Voici ma question : comment faire pour tester dans un script si la
commande « apt-get update » a *réellement* bien fonctionné ?



Je précise que pour l'instant je ne vois pas mieux que de compter le
nombre de lignes écrites sur le flux standard des erreurs et tester si
ce nombre vaut 0. Mais je ne sais pas si c'est une bonne méthode.

#---------------------------------------------------------
if [ "$(apt-get update 2>&1 >/dev/null | wc -l)" -eq 0 ]; then
echo "OK"
else
echo "Problème"
fi
#---------------------------------------------------------


--
François Lafont
Avatar
yamo'
Salut,

Francois Lafont a tapoté, le 27/02/2012 15:52:

Voici ma question : comment faire pour tester dans un script si la
commande « apt-get update » a *réellement* bien fonctionné ?

Merci d'avance pour votre aide.





En lisant le man j'ai trouvé ça qui pourrait t'aider :

DIAGNOSTICS
apt-get renvoie zéro après une opération normale, le décimal 100 en cas d'erreur.





--
Stéphane <http://pasdenom.info/fortune/>
BOFH excuse #102:

Power company testing new voltage spike (creation) equipment
Avatar
Francois Lafont
Bonsoir,

Le 27/02/2012 22:52, yamo' a écrit :

En lisant le man j'ai trouvé ça qui pourrait t'aider :

DIAGNOSTICS
apt-get renvoie zéro après une opération normale, le décimal 100 en cas d'erreur.






Oui, en effet. Mais mon problème c'est que par exemple après un «
apt-get update » désastreux où aucun dépôt n'a été joignable, j'ai bien
0 comme valeur de retour et donc pour aux yeux de la commande apt-get
tout est normal alors qu'en vrai ça ne l'est pas.


--
François Lafont