IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Script d'installation en .bash


Sujet :

Shell et commandes GNU

  1. #1
    Membre confirmé
    Homme Profil pro
    .
    Inscrit en
    Mars 2017
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Mars 2017
    Messages : 59
    Par défaut Script d'installation en .bash
    Bonjour,
    Je cherche à créer un script d'installation pour un programme perso (qui fonctionne parfaitement).
    Il s'agit d'un programme créé pour Raspberry-Pi, qui utilise différentes bibliothèques annexes (je poste ça ici car ma question ne concerne pas la Raspberry mais le script bash).

    Le but du script serait donc d'installer toutes les programmes et bibliothèques nécessaires, et de déplacer certains fichiers entre différents dossiers.

    voici le premier jet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    #!/bin/bash
     
    # MAJ
    echo "UPGRADE IN PROGRESS..."
    sudo apt-get update
    sudo apt-get dist-upgrade
    sudo apt-get upgrade
    echo "UPGRADE COMPLETED !"
     
    # Python
    sudo apt-get install gcc-4.7 g++-4.7
    sudo apt-get install python-dev
    echo "PYTHON INSTALL COMPLETED !"
     
    # Florence Virtual Keyboard
    sudo apt-get Florence
    echo "FLORENCE KEYBOARD INSTALL COMPLETED !"
     
    #SPI-Py
    cd /home/pi
    sudo git clone https://github.com/lthiery/SPI-Py.git
    cd SPI-Py
    sudo python setup.py install
    echo "SPI-Py INSTALL COMPLETED !"
     
    # MFRC522-Pi_3.0
    cd /home/pi
    sudo git clone https://github.com/r4ph0u/MFRC522-Pi_3.0.git
    echo "MFRC522 INSTALL COMPLETED !"
     
    # Copy of desktop shortcuts
    cp home/pi/MFRC522-Pi_3.0/Desktop/* home/pi/Desktop
    echo "DESKTOP SHORTCUT INSTALLED !"
     
    #Copy of desktop shortcuts scripts
    if [ ! -d "/home/pi/Scripts" ];then
    echo "Création du dosser Scripts !";
    mkdir /home/pi/Scripts
    fi
    cp home/pi/MFRC522-Pi_3.0/Scripts/* home/pi/Scripts
    echo "DESKTOP SCRIPTS INSTALLED !"
     
    #Copy of autostart shortcuts
    cp home/pi/MFRC522-Pi_3.0/autostart/* home/pi/.config/autostart
    echo "AUTOSTART SHORTCUT INSTALLED !"
     
    if [ ! -d "/home/pi/Pictures" ];then
    echo "Création du dosser Pictures !";
    mkdir /home/pi/Pictures
    fi
    cp home/pi/MFRC522-Pi_3.0/Pictures/* home/pi/Pictures
    echo "DESKTOP ICONS INSTALLED !"
     
    echo ""
    echo "INSTALL COMPLETED WITH SUCCES"
    echo ""
    echo "NOTE : Pour désactiver le démarrage automatique, supprimez les fichiers florence.desktop et app.desktop situés dans home/pi/.config/autostart"
    echo "Il est nécessaire d'activer les ports SPI dans les paramètres de la Raspberry"
    Comme je n'ai plus de Raspberry Pi, je ne peux contrôler s'il fonctionne (le programme à été fait en projet dans mon école, et on a du rendre la raspberry depuis).

    1) Voyez-vous des erreurs dans mon code ?

    2) Comment-puis-je effectuer un contrôle de chaque étape de copie, de façon a supprimer les fichiers sources si tout a bien été copié ?

    3) Comment rendre le script bash exécutable en faisant un simple double-clic

    Merci

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 636
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 636
    Par défaut
    voici des commentaires sur ton script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    #!/bin/bash
     
    #la recopie des chemins est source d'erreur, il est préférable de les mettre dans des variables.
     
    # MAJ
    echo "UPGRADE IN PROGRESS..."
    sudo apt-get update
    #sudo apt-get dist-upgrade # imprudent et inutile
    sudo apt-get upgrade # encore un sudo, alors tout le script devrait être exécutable uniquement par root en sudo éventuellement
    echo "UPGRADE COMPLETED !"
     
    # Python
    sudo apt-get install gcc-4.7 g++-4.7
    sudo apt-get install python-dev # pourquoi plusieurs lignes d'installation ?
    echo "PYTHON INSTALL COMPLETED !"
     
    # Florence Virtual Keyboard
    sudo apt-get Florence # ne manque-t-il pas un install ? il existe des paquets dont le nom comporte des majuscules ?
    echo "FLORENCE KEYBOARD INSTALL COMPLETED !"
     
    #SPI-Py
    cd /home/pi # cd est rarement indispensable
    sudo git clone https://github.com/lthiery/SPI-Py.git
    cd SPI-Py
    sudo python setup.py install
    echo "SPI-Py INSTALL COMPLETED !"
     
    # MFRC522-Pi_3.0
    cd /home/pi
    sudo git clone https://github.com/r4ph0u/MFRC522-Pi_3.0.git
    echo "MFRC522 INSTALL COMPLETED !"
     
    # Copy of desktop shortcuts
    cp home/pi/MFRC522-Pi_3.0/Desktop/* home/pi/Desktop # et on finit par ne plus savoir où on est. par exemple, ici, on est encore sous /home/pi/, il est peu probable qu'il y existe un répertoire home/pi/ !
    echo "DESKTOP SHORTCUT INSTALLED !"
     
    #Copy of desktop shortcuts scripts
    if [ ! -d "/home/pi/Scripts" ];then
        echo "Création du dosser Scripts !";
        mkdir /home/pi/Scripts
    fi
    cp home/pi/MFRC522-Pi_3.0/Scripts/* home/pi/Scripts # on gagnerait à utiliser cp -r, en même temps que Desktop et Pictures
    echo "DESKTOP SCRIPTS INSTALLED !"
     
    #Copy of autostart shortcuts
    cp home/pi/MFRC522-Pi_3.0/autostart/* home/pi/.config/autostart # et si .config n'existe pas ?
    echo "AUTOSTART SHORTCUT INSTALLED !"
     
    if [ ! -d "/home/pi/Pictures" ];then
        echo "Création du dosser Pictures !";
        mkdir /home/pi/Pictures
    fi
    cp home/pi/MFRC522-Pi_3.0/Pictures/* home/pi/Pictures
    echo "DESKTOP ICONS INSTALLED !"
     
    # quand du code se répète quasiment à l'identique il est préférable d'utiliser une fonction qui acceptera des paramètres.
     
    echo ""
    echo "INSTALL COMPLETED WITH SUCCES" # le script est arrivé jusque là, mais rien ne dit que toutes les opérations se sont bien déroulées.
    echo ""
    echo "NOTE : Pour désactiver le démarrage automatique, supprimez les fichiers florence.desktop et app.desktop situés dans home/pi/.config/autostart"
    echo "Il est nécessaire d'activer les ports SPI dans les paramètres de la Raspberry"
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre confirmé
    Homme Profil pro
    .
    Inscrit en
    Mars 2017
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Mars 2017
    Messages : 59
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    #!/bin/bash
     
    #la recopie des chemins est source d'erreur, il est préférable de les mettre dans des variables.
     
    # MAJ
    echo "UPGRADE IN PROGRESS..."
    sudo apt-get update
    #sudo apt-get dist-upgrade # imprudent et inutile
    sudo apt-get upgrade # encore un sudo, alors tout le script devrait être exécutable uniquement par root en sudo éventuellement
    echo "UPGRADE COMPLETED !"
     
    # Python
    sudo apt-get install gcc-4.7 g++-4.7 python-dev
    <s>#sudo apt-get install python-dev # pourquoi plusieurs lignes d'installation ?</s>
    echo "PYTHON INSTALL COMPLETED !"
     
    # Florence Virtual Keyboard
    sudo apt-get install florence # ne manque-t-il pas un install ? il existe des paquets dont le nom comporte des majuscules ? -> très juste
    echo "FLORENCE KEYBOARD INSTALL COMPLETED !"
     
    #SPI-Py
    cd /home/pi # cd est rarement indispensable
    sudo git clone https://github.com/lthiery/SPI-Py.git
    cd SPI-Py
    sudo python setup.py install
    echo "SPI-Py INSTALL COMPLETED !"
     
    # MFRC522-Pi_3.0
    cd /home/pi
    sudo git clone https://github.com/r4ph0u/MFRC522-Pi_3.0.git
    echo "MFRC522 INSTALL COMPLETED !"
     
    # Copy of desktop shortcuts
    cp /home/pi/MFRC522-Pi_3.0/Desktop/* /home/pi/Desktop # et on finit par ne plus savoir où on est. par exemple, ici, on est encore sous /home/pi/, il est peu probable qu'il y existe un répertoire home/pi/ !
    echo "DESKTOP SHORTCUT INSTALLED !"
     
    #Copy of desktop shortcuts scripts
    if [ ! -d "/home/pi/Scripts" ];then
        echo "Création du dosser Scripts !";
        mkdir /home/pi/Scripts
    fi
    cp /home/pi/MFRC522-Pi_3.0/Scripts/* /home/pi/Scripts # on gagnerait à utiliser cp -r, en même temps que Desktop et Pictures
    echo "DESKTOP SCRIPTS INSTALLED !"
     
    #Copy of autostart shortcuts
    cp /home/pi/MFRC522-Pi_3.0/autostart/* /home/pi/.config/autostart # et si .config n'existe pas ?
    echo "AUTOSTART SHORTCUT INSTALLED !"
     
    if [ ! -d "/home/pi/Pictures" ];then
        echo "Création du dosser Pictures !";
        mkdir /home/pi/Pictures
    fi
    cp /home/pi/MFRC522-Pi_3.0/Pictures/* /home/pi/Pictures
    echo "DESKTOP ICONS INSTALLED !"
     
    # quand du code se répète quasiment à l'identique il est préférable d'utiliser une fonction qui acceptera des paramètres.
     
    echo ""
    echo "INSTALL COMPLETED WITH SUCCES" # le script est arrivé jusque là, mais rien ne dit que toutes les opérations se sont bien déroulées.
    echo ""
    echo "NOTE : Pour désactiver le démarrage automatique, supprimez les fichiers florence.desktop et app.desktop situés dans home/pi/.config/autostart"
    echo "Il est nécessaire d'activer les ports SPI dans les paramètres de la Raspberry"
    encore un sudo, alors tout le script devrait être exécutable uniquement par root en sudo éventuellement
    Comment faire ça ?

    cd /home/pi # cd est rarement indispensable
    sudo git clone https://github.com/lthiery/SPI-Py.git
    Comment être sur de l'emplacement de copie du clone ?

    et on finit par ne plus savoir où on est. par exemple, ici, on est encore sous /home/pi/, il est peu probable qu'il y existe un répertoire home/pi/ !
    J'avais effectivement oublié le premier "/"

    on gagnerait à utiliser cp -r, en même temps que Desktop et Pictures
    Je vois pas vraiment comment dans le cas présent

    et si .config n'existe pas ?
    Il me semble qu'il existe forcement

  4. #4
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Par défaut
    Tu as envisagé Ansible ? C'est 53 fois plus adapté pour installer qu'un script maison en bash.
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  5. #5
    Membre confirmé
    Homme Profil pro
    .
    Inscrit en
    Mars 2017
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Mars 2017
    Messages : 59
    Par défaut
    Citation Envoyé par ggnore Voir le message
    Tu as envisagé Ansible ? C'est 53 fois plus adapté pour installer qu'un script maison en bash.
    Je ne connaissais pas du tout mais, de ce que je viens de voir, c'est plutôt fait pour déployer un programme sur un poste auquel on a accès en ssh. Il est également nécessaire d'installer Ansible ? Ce qui alourdi la procédure ?

  6. #6
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    Citation Envoyé par r4ph0u Voir le message
    Je ne connaissais pas du tout mais, de ce que je viens de voir, c'est plutôt fait pour déployer un programme sur un poste auquel on a accès en ssh. Il est également nécessaire d'installer Ansible ? Ce qui alourdi la procédure ?
    oui mais francherment si tu l'a pour faire du déployement ou ce genre de choses, c'est tellement pratique que tu abuses et fait tes mises à jour ou install de paquets avec aussi

    et ne serai ce que par curiosité de 'voir" comment ça marche....

Discussions similaires

  1. [W98] script d'installation
    Par rihab84 dans le forum Windows 2000/Me/98/95
    Réponses: 3
    Dernier message: 06/12/2006, 17h00
  2. [XUL] problème de script d'installation
    Par gorgonite dans le forum Autres langages pour le Web
    Réponses: 1
    Dernier message: 02/06/2006, 11h03
  3. script d'installation automatique
    Par zero7 dans le forum Windows
    Réponses: 2
    Dernier message: 23/05/2006, 14h11
  4. Modifier le script d'installation
    Par onet dans le forum Debian
    Réponses: 2
    Dernier message: 04/04/2006, 16h54
  5. [débutant] Comment tester scripts sans installer Oracle ?
    Par belokan dans le forum Installation
    Réponses: 17
    Dernier message: 25/10/2005, 10h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo