Open NROLLANDGrandlyon opened 1 month ago
Bonjour @NROLLANDGrandlyon
Merci d'avoir pris le temps de remplir le ticket. @jmkerloch devrait pouvoir regarder cette semaine.
Je vais regarder ça.
@NROLLANDGrandlyon J'ai une idée du problème et j'aurais besoin de ces informations sur ton poste
Soit via powershell
$Env:PROGRAMFILES
Soit via l'invite de commande
echo %PROGRAMFILES%
@NROLLANDGrandlyon Pour l'installation sur les chemins suivants:
Program File(x86)/QGIS 3.34.5/bin
Program Files/QGIS3/bin
Tu avais défini manuellement les chemins d'installation ?
echo %PROGRAMFILES% donne C:\Program Files L'installation dans Program File(x86)/QGIS 3.34.5/bin est une erreur SCCM. Ce n'est bien sûr pas la cible mais j'avais noté que QDT ne l'avait pas trouvé. L'installation dans Program Files/QGIS3/bin est bien défini manuellement et c'est la cible pour tous les postes du Grand Lyon
@NROLLANDGrandlyon
Pour l'instant QDT ne peut trouver que les versions de QGIS installés avec les options par défaut. On va donc trouver uniquement les versions qui sont disponibles dans:
%PROGRAMFILES%
(chemin d'installation par défaut avec l'installeur QGIS)%QDT_OSGEO4W_INSTALL_DIR%
(valeur par défaut C:\\OSGeo4W
qui correspond au chemin par défaut pour l'installation OSGEO4W)Un moyen de contournement pour le Grand Lyon serait éventuellement de passer par la variable d'environnement QDT_OSGEO4W_INSTALL_DIR
qui devrait être définie sur C:/Program Files/QGIS3/
OK. Je testerai cette façon de faire. De toute façon ce job est pour l'instant "optionnel" pour nous Merci
D'ailleurs puis-je définir cette variable d'environnement QDT_OSGEO4W_INSTALL_DIR dans le scénario ? ou faut-il le faire dans le système ?
Je pense qu'on doit pouvoir la définir dans le scénario mais je t'avoue ne pas avoir encore testé complètement ce type d'option.
D'ailleurs puis-je définir cette variable d'environnement QDT_OSGEO4W_INSTALL_DIR dans le scénario ? ou faut-il le faire dans le système ?
Tu as 2 façons de le faire :
soit tu le mets dans les settings du scénario :
[...]
settings:
OSGEO4W_INSTALL_DIR: chemin
[...]
soit tu utilises le job Environment Variables manager avant le QGIS Finder :
[...]
```yml
[...]
- name: Set environment variables
uses: manage-env-vars
with:
- name: QDT_OSGEO4W_INSTALL_DIR
action: "add"
scope: "user"
value: "\\chemin"
value_type: path
[...]
Mais cela reste du contournement. Il faut voir si on ne devrait pas ajouter une option au job QGIS Finder pour pouvoir lui passer des chemins où chercher.
Oui c'est clairement un coutournement. Il faut voir plus global. La liste de chemin de recherche me parait être une bonne idée.
Il y le chemin dans :
Ordinateur\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Folders Nom: C:\Program Files\QGIS3\ Valeur: 1
Ordinateur\HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\Shell\MuiCache\ Nom : C:\Program Files\QGIS3\bin\qgis-ltr-bin.exe.FriendlyAppName Valeur : qgis-ltr-bin.exe
Dans Ordinateur\HKEY_CLASSES_ROOT\QGIS Project\Shell\open\command Nom : (par défaut) Valeur : "C:\PROGRA~1\QGIS3\bin\qgis-ltr.bat" "%1"
Je ne sais pas si c'est fiable mais généralement quand on veut une info Windows on la trouve dans le registre. Bon après, dans le scénario il y avait QGIS_EXE_PATH: windows: "%PROGRAMFILES%/QGIS3/bin/qgis-ltr-bin.exe"
Ce qui revient à ajouter un chemin de recherche ?
Il y le chemin dans :
Ordinateur\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Folders Nom: C:\Program Files\QGIS3 Valeur: 1
Ordinateur\HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\Shell\MuiCache Nom : C:\Program Files\QGIS3\bin\qgis-ltr-bin.exe.FriendlyAppName Valeur : qgis-ltr-bin.exe
Dans Ordinateur\HKEY_CLASSES_ROOT\QGIS Project\Shell\open\command Nom : (par défaut) Valeur : "C:\PROGRA~1\QGIS3\bin\qgis-ltr.bat" "%1"
Je ne sais pas si c'est fiable mais généralement quand on veut une info Windows on la trouve dans le registre. Bon après, dans le scénario il y avait QGIS_EXE_PATH: windows: "%PROGRAMFILES%/QGIS3/bin/qgis-ltr-bin.exe"
Ce qui revient à ajouter un chemin de recherche ?
Il faudrait regarder les logs mais en théorie si la valeur définie dans QDT_QGIS_EXE_PATH
est valide on s'en sert.
Ma relecture du code montre qu'on ne va pas utiliser les variables d'environnement définie dans QDT_QGIS_EXE_PATH
.
Donc on regarde dans PROGRAMFILES%/QGIS3/bin/qgis-ltr-bin.exe
au lieu d'aller dans C:\Program Files\QGIS3\bin\qgis-ltr-bin.exe
.
==> il y a donc un bug sur l'utilisation de QDT_QGIS_EXE_PATH
et le job qgis-installation-finder
Farfouiller dans la base de registre est une bonne piste à suivre. Le module est standard dans Python et on l'utilise déjà pour la gestion des variables d'environnement.
En tout cas j'ai essayé avec le job Set env variable et ça fonctionne, la version est trouvée. 2024-05-15 11:20:55||DEBUG||job_qgis_installation_finder||get_installed_qgis_path||132||Found installed QGIS : {'3.34.5': 'C:\Program Files\QGIS3\bin\qgis-ltr-bin.exe'}
Peut être que vos collègues qui "fabriquent" l'installeur pour Windows savent s'ils posent une donnée intéressante (fiable) dans la base de registre ?
J'ai documenté l'évolution ici : https://github.com/Guts/qgis-deployment-cli/issues/523
Is there an existing issue or a documentation page for this?
Which version of the app are you using?
0.34.2
Operating System
Windows 10+*
Packaging mode
Stand-alone executable (.i.e qdt.exe)
Related resources
No response
Description of the bug
J'ai essayé dans 2 cas avec 2 installations de QGIS sur le poste.
1er cas
QGIS dans
Program File(x86)/QGIS 3.34.5/bin
et une autre version 3.34 dansProgram Files/QGIS3/bin
Résultat :
2eme cas
QGIS dans
Program Files/QGIS 3.28.15/bin
et une autre version 3.34 dansProgram Files/QGIS3/bin
.Résultat :
Alors que la 3.34 est installée et que dans le job l'ordre est défini comme suit :
Steps to reproduce
No response
Relevant log output
Comment
Donc ne semble trouver que les installations "standards" durant lesquelles on n'a pas modifié le chemin proposé par défaut par l'installateur.