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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Homme Profil pro
    développeur à la maison
    Inscrit en
    Septembre 2006
    Messages
    396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : développeur à la maison

    Informations forums :
    Inscription : Septembre 2006
    Messages : 396
    Billets dans le blog
    16
    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 657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 657
    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 éclairé

    Homme Profil pro
    développeur à la maison
    Inscrit en
    Septembre 2006
    Messages
    396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : développeur à la maison

    Informations forums :
    Inscription : Septembre 2006
    Messages : 396
    Billets dans le blog
    16
    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 657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 657
    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 éclairé

    Homme Profil pro
    développeur à la maison
    Inscrit en
    Septembre 2006
    Messages
    396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : développeur à la maison

    Informations forums :
    Inscription : Septembre 2006
    Messages : 396
    Billets dans le blog
    16
    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 éclairé

    Homme Profil pro
    développeur à la maison
    Inscrit en
    Septembre 2006
    Messages
    396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : développeur à la maison

    Informations forums :
    Inscription : Septembre 2006
    Messages : 396
    Billets dans le blog
    16
    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 657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 657
    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.

+ Répondre à la discussion
Cette discussion est résolue.

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