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

Contribuez Discussion :

script d'install qcad


Sujet :

Contribuez

  1. #1
    Membre averti

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 313
    Points : 404
    Points
    404
    Billets dans le blog
    14
    Par défaut script d'install qcad
    Bonjour,

    Je vous propose un nouvel élément à utiliser : script d'install qcad

    vous le lancez avec la commande installqcad.

    au bout d'une heure 30 à peu près, il demandera votre mot de passe pour installer Qcad dans votre système

    Qu'en pensez-vous ?

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    Bonjour,

    - cut | sed est maladroit.
    - supprimer un répertoire sans demande de confirmation, c'est violent. Pourquoi ne pas le déplacer en le datant ?
    - tu fais un install sans faire d'update avant ?
    - ce script ne fonctionnera donc d'ailleurs que sur les distributions basées sur Debian. Il faut le vérifier avant.
    - pourquoi installDir n'est-il pas sous /tmp, s'il n'a pas à être conservé ?
    - les noms de variables tout en majuscules sont par convention réservés aux variables d'environnement système (HOME, PWD...)
    - un script d'installation doit être exécutable par root :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((UID)) && { >&2 echo "must be root"; exit 1;}
    - pourquoi passer par temporaire pour finalement le copier, puis le supprimer ?
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre averti

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 313
    Points : 404
    Points
    404
    Billets dans le blog
    14
    Par défaut
    merci pour la réponse

    - cut | sed est maladroit.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ qmake --version
    QMake version 3.1
    Using Qt version 5.15.8 in /usr/lib/x86_64-linux-gnu
    que me propose-tu pour récupérer la version de Qt?

    - supprimer un répertoire sans demande de confirmation, c'est violent. Pourquoi ne pas le déplacer en le datant ?
    oui c'est vrai
    correction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dirinstall=/tmp/qcad
    aujourdhui="$(date|cut -d\  -f2,3,4)"
    if [ -d $dirinstall ];then
       mv $dirinstall $dirinstall-"$aujourdhu"i
    fi
    ((UID)) && { >&2 echo "must be root"; exit 1;}
    ca marche dans un terminal, mais dans le script ça me donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ./installqcad: 19: UID: not found
    - ce script ne fonctionnera donc d'ailleurs que sur les distributions basées sur Debian. Il faut le vérifier avant
    comment le vérifie-t-on?
    - pourquoi installDir n'est-il pas sous /tmp, s'il n'a pas à être conservé ?
    correction:
    quand j'éxécute ce script comme ceci:
    ça me donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    git@github.com: Permission denied (publickey).
    fatal*: Impossible de lire le dépôt distant.
     
    Veuillez vérifier que vous avez les droits d'accès
    une idée?

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    qmake --version | tail -1 | cut -d ' ' -f4
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    qmake --version | sed -n '$s/.* \([0-9]\+\.[^ ]*\).*/\1/p'
    je préfère la première.

    pour l'UID, c'est une variable non connu de /bin/sh (/bin/sh n'est pas toujours un lien vers /bin/bash, mais vers un shell plus POSIX qui permet moins de souplesse) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if test ${UID:-$(id -u)} -gt 0; then echo "must be root"; fi
    pour identifier la distribution sur laquelle tourne le script, il me semble que toutes les distributions ont un fichier /etc/os-release...
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Membre averti

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 313
    Points : 404
    Points
    404
    Billets dans le blog
    14
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Clonage dans '/tmp/qcad'...
    git@github.com: Permission denied (publickey).
    fatal*: Impossible de lire le dépôt distant.
     
    Veuillez vérifier que vous avez les droits d'accès
    et que le dépôt existe.
    le script est maintenant:
    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
    #!/bin/sh
     
    #    installqcad, installeur de qcad
    #    Copyright (C) 2023  Mathieu SERPA
     
    #    This program is free software: you can redistribute it and/or modify
    #    it under the terms of the GNU General Public License as published by
    #    the Free Software Foundation, either version 3 of the License, or
    #    (at your option) any later version.
    #
    #    This program is distributed in the hope that it will be useful,
    #    but WITHOUT ANY WARRANTY; without even the implied warranty of
    #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    #    GNU General Public License for more details.
     
     #   You should have received a copy of the GNU General Public License
     #   along with this program.  If not, see <https://www.gnu.org/licenses/>.
     
    if test ${UID:-$(id -u)} -gt 0; then echo "must be root"; exit 1; fi
     
    apt update
    apt install qtbase5-dev #pour qmake
     
    version="$(qmake --version | tail -1 | cut -d ' ' -f4)"
    dirinstall=/tmp/qcad
    aujourdhui="$(date|cut -d\  -f2,3,4)"
     
    apt install gcc make libx11-dev libxext-dev libxrender-dev libglu1-mesa-dev libfreetype6-dev libfontconfig1-dev libssl-dev libdbus-1-dev libsm-dev gcc make libx11-dev libxext-dev libxrender-dev libglu1-mesa-dev libfreetype6-dev libfontconfig1-dev libssl-dev libdbus-1-dev libsm-dev qt5-qmake libqt5svg5-dev libqt5script5 libqt5help5 libqt5designer5 libqt5scripttools5 qtscript5-dev qtxmlpatterns5-dev-tools libqt5xmlpatterns5 libqt5xmlpatterns5-dev libqt5designer5 python3-pyside2.qtuitools libqscintilla2-qt5-designer libqt5designer5 qttools5-dev qt5-image-formats-plugins qtwayland5 qtwayland5-dev-tools libqt5waylandclient5 qtscript5-dev qttools5-dev libqt5xmlpatterns5-dev
     
    if [ -d $dirinstall ];then
       mv $dirinstall $dirinstall-"$aujourdhui"
    fi
    mkdir -p $dirinstall
     
    git clone git@github.com:qcad/qcad.git $dirinstall
    if [ ! -d $dirinstall/src/3rdparty/qt-labs-qtscriptgenerator-"$version" ] ;then
       mkdir -p $dirinstall/src/3rdparty/qt-labs-qtscriptgenerator-"$version"
       cd $dirinstall/src/3rdparty/qt-labs-qtscriptgenerator-"$version"
       cat > qt-labs-qtscriptgenerator-"$version".pro <<FIN
    include( ../../../shared.pri )
     
    SUBDIRS = ../qt-labs-qtscriptgenerator-5.5.0/qtbindings
    TEMPLATE = subdirs
    FIN
    fi
    cd $dirinstall
    qmake -r CONFIG+=ractivated
    make release
    cp -r $dirinstall /opt
    cat > /usr/local/bin/qcad <<FIN
    XDG_SESSION_TYPE=x11
    LD_LIBRARY_PATH=/opt/qcad/release /opt/qcad/release/qcad-bin
    FIN
    chmod 755 /usr/local/bin/qcad
    cp /opt/qcad/qcad.desktop /usr/share/applications
    if [ ! -d /usr/local/share/icons/hicolor/256x256/apps ];then
       mkdir -p /usr/local/share/icons/hicolor/256x256/apps
    fi
    cp /opt/qcad/scripts/qcad_icon.png /usr/local/share/icons/hicolor/256x256/apps
    rm -rf $dirinstall
    mv $dirinstall$-$aujourdhui $dirinstall
    comment utiliser /etc/os-release?
    une idée?

  6. #6
    Membre averti

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 313
    Points : 404
    Points
    404
    Billets dans le blog
    14
    Par défaut
    il faut faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    git clone https://github.com/qcad/qcad.git $dirinstall
    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
    #!/bin/sh
     
    #    installqcad, installeur de qcad
    #    Copyright (C) 2023  Mathieu SERPA
     
    #    This program is free software: you can redistribute it and/or modify
    #    it under the terms of the GNU General Public License as published by
    #    the Free Software Foundation, either version 3 of the License, or
    #    (at your option) any later version.
    #
    #    This program is distributed in the hope that it will be useful,
    #    but WITHOUT ANY WARRANTY; without even the implied warranty of
    #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    #    GNU General Public License for more details.
     
     #   You should have received a copy of the GNU General Public License
     #   along with this program.  If not, see <https://www.gnu.org/licenses/>.
     
    if test ${UID:-$(id -u)} -gt 0; then echo "must be root"; exit 1; fi
     
    apt update
    apt install qtbase5-dev #pour qmake
     
    version="$(qmake --version | tail -1 | cut -d ' ' -f4)"
    dirinstall=/tmp/qcad
    aujourdhui="$(date|cut -d\  -f2,3,4)"
     
    apt install gcc make libx11-dev libxext-dev libxrender-dev libglu1-mesa-dev libfreetype6-dev libfontconfig1-dev libssl-dev libdbus-1-dev libsm-dev gcc make libx11-dev libxext-dev libxrender-dev libglu1-mesa-dev libfreetype6-dev libfontconfig1-dev libssl-dev libdbus-1-dev libsm-dev qt5-qmake libqt5svg5-dev libqt5script5 libqt5help5 libqt5designer5 libqt5scripttools5 qtscript5-dev qtxmlpatterns5-dev-tools libqt5xmlpatterns5 libqt5xmlpatterns5-dev libqt5designer5 python3-pyside2.qtuitools libqscintilla2-qt5-designer libqt5designer5 qttools5-dev qt5-image-formats-plugins qtwayland5 qtwayland5-dev-tools libqt5waylandclient5 qtscript5-dev qttools5-dev libqt5xmlpatterns5-dev
     
    if [ -d $dirinstall ];then
       mv $dirinstall $dirinstall-"$aujourdhui"
    fi
    mkdir -p $dirinstall
    git clone https://github.com/qcad/qcad.git $dirinstall
    if [ ! -d $dirinstall/src/3rdparty/qt-labs-qtscriptgenerator-"$version" ] ;then
       mkdir -p $dirinstall/src/3rdparty/qt-labs-qtscriptgenerator-"$version"
       cd $dirinstall/src/3rdparty/qt-labs-qtscriptgenerator-"$version"
       cat > qt-labs-qtscriptgenerator-"$version".pro <<FIN
    include( ../../../shared.pri )
     
    SUBDIRS = ../qt-labs-qtscriptgenerator-5.5.0/qtbindings
    TEMPLATE = subdirs
    FIN
    fi
    cd $dirinstall
    qmake -r CONFIG+=ractivated
    make release
    cp -r $dirinstall /opt
    cat > /usr/local/bin/qcad <<FIN
    XDG_SESSION_TYPE=x11
    LD_LIBRARY_PATH=/opt/qcad/release /opt/qcad/release/qcad-bin
    FIN
    chmod 755 /usr/local/bin/qcad
    cp /opt/qcad/qcad.desktop /usr/share/applications
    if [ ! -d /usr/local/share/icons/hicolor/256x256/apps ];then
       mkdir -p /usr/local/share/icons/hicolor/256x256/apps
    fi
    cp /opt/qcad/scripts/qcad_icon.png /usr/local/share/icons/hicolor/256x256/apps
    rm -rf $dirinstall
    mv $dirinstall$-$aujourdhui $dirinstall
    je reviens dans 2 heures vous dire si ça a marché

    sinon, comment utiliser /etc/os-release?

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    tu sais que qcad propose déjà un installeur ?
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  8. #8
    Membre averti

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 313
    Points : 404
    Points
    404
    Billets dans le blog
    14
    Par défaut
    oui mais pour la version trial payante

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    github demande une vérification de clés, ça pourrait ne pas fonctionner dans un processus automatisé (un script)
    en passant par HTTPS (git clone https://github.com/qcad/qcad.git qcad), rien n'est demandé.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  10. #10
    Membre averti

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 313
    Points : 404
    Points
    404
    Billets dans le blog
    14
    Par défaut
    ce n'est pas ce que j'ai indiqué au post #6?

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    oops! je n'avais pas vu.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  12. #12
    Membre averti

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 313
    Points : 404
    Points
    404
    Billets dans le blog
    14
    Par défaut
    et si je rajoutais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if test "$(grep Debian /etc/os-release)" == "" && test "$(grep Ubuntu /etc/os-release)" == "" && test "$(grep Mint /etc/os-release)" == "";then echo "se scritp fonctionne avec Debian,Ubuntu ou Mint"; exit 2; fi

  13. #13
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 100
    Points : 4 445
    Points
    4 445
    Par défaut
    bof

    grep accepte les regex et, il suffit de tester si la commande est en erreur ou non (et pas la sortie)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -Ei 'NAME.*(xxx|yyy)' /etc/os-release -c
    ps: existe 3600 dérivées de debian/ubuntu, je n'aucune idée de ce que l'on peut tester ou non (puisque je ne les connais pas toutes)
    Sans doute , il est préférable de tester si la commande apt existe ???
    $moi= ( !== ) ? : ;

  14. #14
    Membre averti

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 313
    Points : 404
    Points
    404
    Billets dans le blog
    14
    Par défaut
    comme ceci?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if test "$(grep -Ei 'NAME.*(Debian|Ubuntu|Mint)' /etc/os-release -c)"==2;then echo "La distribution n'est pas Debian, Ubuntu ou Mint"; fi
    ou bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if test "$(find /usr/bin -name apt)" != "/usr/bin/apt"; then echo "La distribution n'est pas dérivée Debian";fi

  15. #15
    Membre averti

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 313
    Points : 404
    Points
    404
    Billets dans le blog
    14
    Par défaut
    voici le 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
    63
    64
    #!/bin/sh
     
    #    installqcad, installeur de qcad
    #    Copyright (C) 2023  Mathieu SERPA
     
    #    This program is free software: you can redistribute it and/or modify
    #    it under the terms of the GNU General Public License as published by
    #    the Free Software Foundation, either version 3 of the License, or
    #    (at your option) any later version.
    #
    #    This program is distributed in the hope that it will be useful,
    #    but WITHOUT ANY WARRANTY; without even the implied warranty of
    #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    #    GNU General Public License for more details.
     
     #   You should have received a copy of the GNU General Public License
     #   along with this program.  If not, see <https://www.gnu.org/licenses/>.
     
    if test "$(find /usr/bin -name apt)" != "/usr/bin/apt"; then echo "La distribution n'est pas dérivée Debian"; exit 1; fi
     
    if test ${UID:-$(id -u)} -gt 0; then echo "script exécutable en droits root uniquement"; exit 2; fi
     
    apt update
    apt install qtbase5-dev #pour qmake
     
    version="$(qmake --version | tail -1 | cut -d ' ' -f4)"
    dirinstall=/tmp/qcad
    dossierorigine=$PWD
     
     
    apt install gcc make libx11-dev libxext-dev libxrender-dev libglu1-mesa-dev libfreetype6-dev libfontconfig1-dev libssl-dev libdbus-1-dev libsm-dev gcc make libx11-dev libxext-dev libxrender-dev libglu1-mesa-dev libfreetype6-dev libfontconfig1-dev libssl-dev libdbus-1-dev libsm-dev qt5-qmake libqt5svg5-dev libqt5script5 libqt5help5 libqt5designer5 libqt5scripttools5 qtscript5-dev qtxmlpatterns5-dev-tools libqt5xmlpatterns5 libqt5xmlpatterns5-dev libqt5designer5 python3-pyside2.qtuitools libqscintilla2-qt5-designer libqt5designer5 qttools5-dev qt5-image-formats-plugins qtwayland5 qtwayland5-dev-tools libqt5waylandclient5 qtscript5-dev qttools5-dev libqt5xmlpatterns5-dev
     
    if [ -d $dirinstall ];then
       echo "le dossier /tmp/qcad existe déja"; exit 3
    fi
    mkdir -p $dirinstall
     
    git clone https://github.com/qcad/qcad.git $dirinstall
     
    if [ ! -d $dirinstall/src/3rdparty/qt-labs-qtscriptgenerator-"$version" ] ;then
       mkdir -p $dirinstall/src/3rdparty/qt-labs-qtscriptgenerator-"$version"
       cd $dirinstall/src/3rdparty/qt-labs-qtscriptgenerator-"$version"
       cat > qt-labs-qtscriptgenerator-"$version".pro <<FIN
    include( ../../../shared.pri )
     
    SUBDIRS = ../qt-labs-qtscriptgenerator-5.5.0/qtbindings
    TEMPLATE = subdirs
    FIN
    fi
    cd $dirinstall
    qmake -r CONFIG+=ractivated
    make release
    cp -r $dirinstall /opt
    cat > /usr/local/bin/qcad <<FIN
    XDG_SESSION_TYPE=x11
    LD_LIBRARY_PATH=/opt/qcad/release /opt/qcad/release/qcad-bin
    FIN
    chmod 755 /usr/local/bin/qcad
    cp /opt/qcad/qcad.desktop /usr/share/applications
    if [ ! -d /usr/local/share/icons/hicolor/256x256/apps ];then
       mkdir -p /usr/local/share/icons/hicolor/256x256/apps
    fi
    cp /opt/qcad/scripts/qcad_icon.png /usr/local/share/icons/hicolor/256x256/apps
    cd $dossierorigine
    comment fait-on pour l'uploader à la place de l'ancien?

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    je ne sais pas.
    de toute façon, c'est pas fini.

    tu dois mettre toutes les variables entre guillemets : "$dirinstall", "$dirinstal/src/.../$version"...

    tu dois indiquer le chemin absolu de "qt-labs-qtscriptgenerator-$version.pro".
    je n'utilise pas cd dans mes scripts. il faudrait vraiment que je n'ai pas le choix
    je ne fais pas beaucoup de compilation automatisée non plus, mais je vois dans le man make une option --directory...
    Change to directory dir before reading the makefiles or doing anything else.
    le cd final est très facultatif : l'environnement défini dans un script ne persiste pas dans l'environnement courant.


    à quoi sert l'option -r de qmake ?
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  17. #17
    Membre averti

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 313
    Points : 404
    Points
    404
    Billets dans le blog
    14
    Par défaut
    ça ira comme cela?:
    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/sh
     
    #    installqcad, installeur de qcad
    #    Copyright (C) 2023  Mathieu SERPA
     
    #    This program is free software: you can redistribute it and/or modify
    #    it under the terms of the GNU General Public License as published by
    #    the Free Software Foundation, either version 3 of the License, or
    #    (at your option) any later version.
    #
    #    This program is distributed in the hope that it will be useful,
    #    but WITHOUT ANY WARRANTY; without even the implied warranty of
    #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    #    GNU General Public License for more details.
     
     #   You should have received a copy of the GNU General Public License
     #   along with this program.  If not, see <https://www.gnu.org/licenses/>.
     
    if test ${UID:-$(id -u)} -gt 0; then echo "droit root requis"; exit 1; fi
     
    apt update
    apt install qtbase5-dev #pour qmake
     
    version="$(qmake --version | tail -1 | cut -d ' ' -f4)"
    dirinstall=/tmp/qcad
     
    apt install gcc make libx11-dev libxext-dev libxrender-dev libglu1-mesa-dev libfreetype6-dev libfontconfig1-dev libssl-dev libdbus-1-dev libsm-dev gcc make libx11-dev libxext-dev libxrender-dev libglu1-mesa-dev libfreetype6-dev libfontconfig1-dev libssl-dev libdbus-1-dev libsm-dev qt5-qmake libqt5svg5-dev libqt5script5 libqt5help5 libqt5designer5 libqt5scripttools5 qtscript5-dev qtxmlpatterns5-dev-tools libqt5xmlpatterns5 libqt5xmlpatterns5-dev libqt5designer5 python3-pyside2.qtuitools libqscintilla2-qt5-designer libqt5designer5 qttools5-dev qt5-image-formats-plugins qtwayland5 qtwayland5-dev-tools libqt5waylandclient5 qtscript5-dev qttools5-dev libqt5xmlpatterns5-dev
     
    if [ -d "$dirinstall" ];then
       echo "$dirinstall" existe déja
       exit 2
    fi
     
    mkdir -p "$dirinstall"
    git clone https://github.com/qcad/qcad.git "$dirinstall"
    if [ ! -d "$dirinstall"/src/3rdparty/qt-labs-qtscriptgenerator-"$version" ] ;then
       mkdir -p "$dirinstall"/src/3rdparty/qt-labs-qtscriptgenerator-"$version"
       cat > "$dirinstall"/src/3rdparty/qt-labs-qtscriptgenerator-"$version"/qt-labs-qtscriptgenerator-"$version".pro <<FIN
    include( ../../../shared.pri )
     
    SUBDIRS = ../qt-labs-qtscriptgenerator-5.5.0/qtbindings
    TEMPLATE = subdirs
    FIN
    fi
     
    "$dirinstall"/qmake -r CONFIG+=ractivated
    "$dirinstall"/make release
    cp -r "$dirinstall" /opt
    cat > /usr/local/bin/qcad <<FIN
    XDG_SESSION_TYPE=x11
    LD_LIBRARY_PATH=/opt/qcad/release /opt/qcad/release/qcad-bin
    FIN
    chmod 755 /usr/local/bin/qcad
    cp /opt/qcad/qcad.desktop /usr/share/applications
    if [ ! -d /usr/local/share/icons/hicolor/256x256/apps ];then
       mkdir -p /usr/local/share/icons/hicolor/256x256/apps
    fi
    cp /opt/qcad/scripts/qcad_icon.png /usr/local/share/icons/hicolor/256x256/apps
    pour le make et le qmake, c'est pas moi qui les ai inventés, c'est indiqué sur le site de qcad. Je préfère ne pas modifier ça.
    https://www.qcad.org/en/component/co...n-from-sources

  18. #18
    Membre averti

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 313
    Points : 404
    Points
    404
    Billets dans le blog
    14
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ./installqcad: 46: /tmp/qcad/qmake: not found
    ./installqcad: 47: /tmp/qcad/make: not found
    je crois que je suis obligé d'utiliser cd
    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/sh
     
    #    installqcad, installeur de qcad
    #    Copyright (C) 2023  Mathieu SERPA
     
    #    This program is free software: you can redistribute it and/or modify
    #    it under the terms of the GNU General Public License as published by
    #    the Free Software Foundation, either version 3 of the License, or
    #    (at your option) any later version.
    #
    #    This program is distributed in the hope that it will be useful,
    #    but WITHOUT ANY WARRANTY; without even the implied warranty of
    #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    #    GNU General Public License for more details.
     
     #   You should have received a copy of the GNU General Public License
     #   along with this program.  If not, see <https://www.gnu.org/licenses/>.
     
    if test ${UID:-$(id -u)} -gt 0; then echo "droit root requis"; exit 1; fi
     
    apt update
    apt install qtbase5-dev #pour qmake
     
    version="$(qmake --version | tail -1 | cut -d ' ' -f4)"
    dirinstall=/tmp/qcad
     
    apt install gcc make libx11-dev libxext-dev libxrender-dev libglu1-mesa-dev libfreetype6-dev libfontconfig1-dev libssl-dev libdbus-1-dev libsm-dev gcc make libx11-dev libxext-dev libxrender-dev libglu1-mesa-dev libfreetype6-dev libfontconfig1-dev libssl-dev libdbus-1-dev libsm-dev qt5-qmake libqt5svg5-dev libqt5script5 libqt5help5 libqt5designer5 libqt5scripttools5 qtscript5-dev qtxmlpatterns5-dev-tools libqt5xmlpatterns5 libqt5xmlpatterns5-dev libqt5designer5 python3-pyside2.qtuitools libqscintilla2-qt5-designer libqt5designer5 qttools5-dev qt5-image-formats-plugins qtwayland5 qtwayland5-dev-tools libqt5waylandclient5 qtscript5-dev qttools5-dev libqt5xmlpatterns5-dev
     
    if [ -d "$dirinstall" ];then
       echo "$dirinstall" existe déja
       exit 2
    fi
     
    mkdir -p "$dirinstall"
    git clone https://github.com/qcad/qcad.git "$dirinstall"
    if [ ! -d "$dirinstall"/src/3rdparty/qt-labs-qtscriptgenerator-"$version" ] ;then
       mkdir -p "$dirinstall"/src/3rdparty/qt-labs-qtscriptgenerator-"$version"
       cat > "$dirinstall"/src/3rdparty/qt-labs-qtscriptgenerator-"$version"/qt-labs-qtscriptgenerator-"$version".pro <<FIN
    include( ../../../shared.pri )
     
    SUBDIRS = ../qt-labs-qtscriptgenerator-5.5.0/qtbindings
    TEMPLATE = subdirs
    FIN
    fi
    cd "$dirinstall" 
    qmake -r CONFIG+=ractivated
    make release
    cp -r "$dirinstall" /opt
    cat > /usr/local/bin/qcad <<FIN
    XDG_SESSION_TYPE=x11
    LD_LIBRARY_PATH=/opt/qcad/release /opt/qcad/release/qcad-bin
    FIN
    chmod 755 /usr/local/bin/qcad
    cp /opt/qcad/qcad.desktop /usr/share/applications
    if [ ! -d /usr/local/share/icons/hicolor/256x256/apps ];then
       mkdir -p /usr/local/share/icons/hicolor/256x256/apps
    fi
    cp /opt/qcad/scripts/qcad_icon.png /usr/local/share/icons/hicolor/256x256/apps

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 376
    Points
    19 376
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "$dirinstall"/make release
    ça n'a pas de sens, forcément /tmp/qcad/make, ça ne va pas marcher.

    concernant maken je suggérais make --directory="$dirinstall" release, mais si on ne peut pas faire la même chose pour qmake ce n'est pas très intéressant.
    pour qmake, le --help ne m'aide pas vraiment.
    et je ne vois pas -r, c'est pour ça que je demande.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  20. #20
    Membre averti

    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 313
    Points : 404
    Points
    404
    Billets dans le blog
    14
    Par défaut
    ne suis-je donc pas obligé d'utiliser cd?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

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