IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Téléchargé 8 fois
Vote des utilisateurs
0 
0 
Détails
Licence : GPL
Mise en ligne le 13 février 2024
Plate-forme : Linux
Langue : Français
Référencé dans
Navigation

script d'installation de qcad

vous le lancez avec la commande installqcad-2.0 . On obtient qcad dans la liste des logiciels. Fonctionne avec les distributions Debian et dérivées
version avec ajout du téléchargement de git, et un message à la fin
version 2.0 pour la nouvelle version de Qt
ajout de g++
Avatar de emmesse
Membre averti https://www.developpez.com
Le 27/06/2023 à 6:54
il suffit d'aller sur a page du code source et cliquer sur "éditer"
Avatar de emmesse
Membre averti https://www.developpez.com
Le 24/06/2023 à 22:56
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 ?
Avatar de N_BaH
Modérateur https://www.developpez.com
Le 25/06/2023 à 0:40
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
((UID)) && { >&2 echo "must be root"; exit 1;}
- pourquoi passer par temporaire pour finalement le copier, puis le supprimer ?
Avatar de emmesse
Membre averti https://www.developpez.com
Le 25/06/2023 à 11:50
merci pour la réponse

- cut | sed est maladroit.
Code : Sélectionner tout
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
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
./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:
Code : Sélectionner tout
dirinstall=/tmp/qcad
quand j'éxécute ce script comme ceci:
Code : Sélectionner tout
sudo ./installqcad
ça me donne
Code : Sélectionner tout
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?
Avatar de N_BaH
Modérateur https://www.developpez.com
Le 25/06/2023 à 13:05
Code : Sélectionner tout
qmake --version | tail -1 | cut -d ' ' -f4
ou
Code : Sélectionner tout
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
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...
Avatar de emmesse
Membre averti https://www.developpez.com
Le 25/06/2023 à 14:05
Code : Sélectionner tout
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
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?
Avatar de emmesse
Membre averti https://www.developpez.com
Le 25/06/2023 à 15:18
il faut faire:
Code : Sélectionner tout
git clone https://github.com/qcad/qcad.git $dirinstall
Code : Sélectionner tout
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?
Avatar de N_BaH
Modérateur https://www.developpez.com
Le 25/06/2023 à 15:22
tu sais que qcad propose déjà un installeur ?
Avatar de emmesse
Membre averti https://www.developpez.com
Le 25/06/2023 à 15:25
oui mais pour la version trial payante
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.