dphil Posté(e) le 29 octobre 2013 Posté(e) le 29 octobre 2013 (modifié) Lors de l'exécution du fichier package_manager une erreur se produit, elle est due à la fonction get_distro_version(), cette fonction recherche le nom de la distribution et la méthode utilisée détecte la valeur Fedora dans le fichier os-release contenu dans le champ ID_LIKE. La fonction considére ma distribution Mageia 3 comme une distribution Fedora, la version 3 de Mageia étant inférieure à la version 17 de Fedora la fonction retourne 255 au lieu de 0. Pour corriger cette anomalie, j'ai réécri la fonction ainsi : get_distro_version() { DISTRO_ID=$(awk '/DISTRIB_ID=/' /etc/*-release | sed 's/DISTRIB_ID=//' | sed 's/"//g' ) DISTRO_VERSION=$(awk '/DISTRIB_RELEASE=/' /etc/*-release | sed 's/DISTRIB_RELEASE=//' | sed 's/[.]0/./') if [ -z "$DISTRO_ID" ]; then DISTRO_ID=$(awk '{print $1}' /etc/*-release) fi if [ -z "$DISTRO_VERSION" ]; then DISTRO_VERSION=$(awk '{print $3}' /etc/*-release) fi if [ "$DISTRO_ID" == "Ubuntu" ]; then DISTRO_VERSION=$(lsb_release -s -r | sed s/..*//g) if [ $? -ne 0 ]; then DISTRO_VERSION=0 return 255 fi if [ $DISTRO_VERSION -lt 10 ]; then return 255 fi return 0 elif [ "$DISTRO_ID" == "Fedora" ]; then if [ -f /etc/os-release ]; then source /etc/os-release DISTRO_VERSION=${VERSION_ID} elif [ -f /etc/fedora-release ]; then DISTRO_VERSION=$(cat /etc/fedora-release | awk '{print $3}') else DISTRO_VERSION=0 return 255 fi if [ $DISTRO_VERSION -lt 17 ]; then return 255 fi return 0 elif [ "$DISTRO_ID" == "openSUSE" ]; then if [ $DISTRO_VERSION -eq 0 ]; then return 255 fi return 0 elif [ "$DISTRO_ID" == "Mageia" ]; then if [ $DISTRO_VERSION -lt 3 ]; then return 255 fi return 0 else DISTRO_ID="Unsupport" DISTRO_VERSION=0 return 255 fi } Le code de cette fonction peut être surement encore amélioré et optimisé. Modifié le 29 octobre 2013 par dphil 0 Citer
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.