[Debian squeeze] Tester dans un script si « apt-get update » fonctionne bi en
Le
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
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
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
Francois Lafont a tapoté, le 27/02/2012 15:52:
En lisant le man j'ai trouvé ça qui pourrait t'aider :
--
Stéphane BOFH excuse #102:
Power company testing new voltage spike (creation) equipment
Le 27/02/2012 22:52, yamo' a écrit :
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