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 ?
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 ?
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 :- pourquoi passer par temporaire pour finalement le copier, puis le supprimer ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part ((UID)) && { >&2 echo "must be root"; exit 1;}
merci pour la réponse
- cut | sed est maladroit.que me propose-tu pour récupérer la version de Qt?
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
oui c'est vrai- supprimer un répertoire sans demande de confirmation, c'est violent. Pourquoi ne pas le déplacer en le datant ?
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 fica marche dans un terminal, mais dans le script ça me donne:((UID)) && { >&2 echo "must be root"; exit 1;}
Code : Sélectionner tout - Visualiser dans une fenêtre à part ./installqcad: 19: UID: not foundcomment le vérifie-t-on?- ce script ne fonctionnera donc d'ailleurs que sur les distributions basées sur Debian. Il faut le vérifier avant
correction:- pourquoi installDir n'est-il pas sous /tmp, s'il n'a pas à être conservé ?
quand j'éxécute ce script comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part dirinstall=/tmp/qcad
ça me donne
Code : Sélectionner tout - Visualiser dans une fenêtre à part sudo ./installqcad
une idée?
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
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part qmake --version | tail -1 | cut -d ' ' -f4je préfère la première.
Code : Sélectionner tout - Visualiser dans une fenêtre à part qmake --version | sed -n '$s/.* \([0-9]\+\.[^ ]*\).*/\1/p'
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) :pour identifier la distribution sur laquelle tourne le script, il me semble que toutes les distributions ont un fichier /etc/os-release...
Code : Sélectionner tout - Visualiser dans une fenêtre à part if test ${UID:-$(id -u)} -gt 0; then echo "must be root"; fi
le script est maintenant:
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.
comment utiliser /etc/os-release?
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
une idée?
il faut faire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part git clone https://github.com/qcad/qcad.git $dirinstallje reviens dans 2 heures vous dire si ça a marché
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
sinon, comment utiliser /etc/os-release?
tu sais que qcad propose déjà un installeur ?
Partager