J'ai un script shell qui vérifie s'il existe une connexion Internet (en pinging google), puis appelle Comment puis-je confirmer que les packages ont été installés (ou déjà installées )? Est-ce que je fais un autre appel miam et analyser la sortie (je présume que cela devient très compliqué si le système est dans une autre langue)? P> P>
3 Réponses :
basé sur Ceci Post aléatoire , il semble que Yum renvoie un code d'erreur à la coquille. Vous pouvez le tester en exécutant une commande, puis immédiatement (comme la commande suivante) faisant: qui imprimera le code retour de la commande précédente. Le succès devrait être 0, échec d'une sorte de type non nul. Mais c'est juste une supposition depuis que je n'ai pas une boîte accessible pour moi pour le moment. :) p> p>
Cela devrait être de la façon dont cela fonctionne. Ma version de Yum sort avec succès, même sur certains échecs; Yum Installer non-existant-package && echo "Je pense que ça s'est bien passé" code>
Comme indiqué ci-dessus, il y a un certain nombre de cas où miam code> retourne 0, même si je considérerais que cela a échoué, par exemple. Vous avez spécifié un nom de package, mais ce package n'a pas pu être trouvé dans un référentiel configuré ou vous avez spécifié un nom de fichier, mais le fichier n'a pas été trouvé.
Le statut de sortie YUM code> est tout simplement utile.
by ping google.com ne garantit pas que le yum repo que vous essayez de vous connecter est disponible
la commande à vérifier si un package est déjà installé: - p>
yum list installed PACKAGE_NAME
Merci Ajreal - Je ne faisais que Ping Google de voir si DNS fonctionnait et s'il y avait une connectivité.
Bien que cela ne réponde pas directement à la question, cela répond à ma question! +1 pour vous
J'ai utilisé la méthode suivante, qui pourrait ne pas être infaillible, mais semble fonctionner: p>
En supposant que la variable Ceci ne fonctionnera que si packages code> contient la liste des packages que vous souhaitez installer, puis: p>
yum -y installer $ packages code> (Je suppose s'il s'agit d'un script, vous voulez vraiment passer
-y code> pour éviter de vous inviter). LI>
RPM --Query --Quiseryformat "" $ packages code>, qui ne produira rien pour chaque package installé avec succès et donnera la sortie
packages code> contient des noms de paquets simples que
yum code> est censé trouver dans un référentiel, non s'il contient d'autres choses que
miam Code> Accepte des URL, des noms de fichiers ou
fournit: code> noms. P>
Vous pouvez grep ou analysez /var/log/yum.log
Réglage
lc_all = C code> doit passer en anglais.