Impossible de relancer les dépendances - Debian 11

Bonjour,
je prépare la migration vers Debian 11. Mon Jeedom de prod est la version stable 4.3.17 sous Debian 10, sur une VM ESXi. Tout ça fonctionne parfaitement sur un NUC Intel i3.
J’ai créé une VM de test avec Debian 11 en netinstall, puis install Jeedom selon la doc. Aucun message d’erreurs lors de ces opérations, j’obtiens bien à la fin un Jeedom vide d’objets, mais fonctionnel.
J’avais fait une sauvegarde de mon Jeedom de prod, que je restaure sur la VM de test. Aucun problème apparent de restauration (log ci-dessous).


[START RESTORE]
***************Début de la restauration de Jeedom 2023-08-06 10:59:56***************
Envoi l'évènement de début de restauration...OK
Vérification des droits...OK
Fichier utilisé pour la restauration : /var/www/html/core/class/../../backup/backup-Jeedom_Gx_prod-4.3.17-2023-08-06-10h27.tar.gz
Backup database access configuration...OK
Disable all task
 OK
Disable all scenario.......................................................
......... OK
Décompression de la sauvegarde...
OK
Supprimer la table de la sauvegardeDésactive les contraintes...OK
Supprimer la table : cache ...OK
Supprimer la table : calendar_event ...OK
Supprimer la table : cmd ...OK
Supprimer la table : config ...OK
Supprimer la table : cron ...OK
Supprimer la table : dataStore ...OK
Supprimer la table : eqLogic ...OK
Supprimer la table : eqReal ...OK
Supprimer la table : history ...OK
Supprimer la table : historyArch ...OK
Supprimer la table : interactDef ...OK
Supprimer la table : interactQuery ...OK
Supprimer la table : listener ...OK
Supprimer la table : message ...OK
Supprimer la table : note ...OK
Supprimer la table : object ...OK
Supprimer la table : plan ...OK
Supprimer la table : plan3d ...OK
Supprimer la table : plan3dHeader ...OK
Supprimer la table : planHeader ...OK
Supprimer la table : scenario ...OK
Supprimer la table : scenarioElement ...OK
Supprimer la table : scenarioExpression ...OK
Supprimer la table : scenarioSubElement ...OK
Supprimer la table : timeline ...OK
Supprimer la table : update ...OK
Supprimer la table : user ...OK
Supprimer la table : view ...OK
Supprimer la table : viewData ...OK
Supprimer la table : viewZone ...OK
Supprimer la table : widgets ...OK
Restauration de la base de données...OK
Active les contraintes...OK
Restauration du cache...OK
Plugin restauration : calendar...OK
Check jeedom consistency...[START CONSISTENCY]
[START CHECK AND FIX DB]
[END CHECK AND FIX DB]
Check jeedom package...OK
Check jeedom database...OK
Check crons...

Check filesystem right...
OK
Flush cache widget...
Check jeedom object...OK
Check jeedom cmd...OK
Set cache hour...OK
[END CONSISTENCY]
OK
Enable scenario : OK
Enable task : OK
Envoi l'évènement de la fin de la sauvegarde...OK
Temps de la restauration : 12s
***************Fin de la restauration de Jeedom***************
[END RESTORE SUCCESS]

Après restauration, je récupère bien l’ensemble de mes équipements, scénarios, etc…, et tous les plugins installés, y compris jMQTT.
C’est là que j’ai un gros pb, lors de l’activation du plugin, les dépendances ne se lancent pas.

Voici le log d’installation des dépendances, qui semble OK:


================================================================================
== Jeedom 4.3.17 diy in Debian GNU/Linux 11 (bullseye) on x86_64/amd64/64bits
== Python 3.9.2 (default, Feb 28 2021, 17:03:44) [GCC 10.2.1 20210110]
== jMQTT v19 (2023-07-15 01:01:30) branch:stable previously:v19
======================================================================
== 10/08/2023 20:36:41 == Dependencies installation for jMQTT
======================================================================

[  0% ] : Synchronize the package index...
[ 19% ] : Synchronize the package index : [  OK  ]
[ 20% ] : Install Composer...
[ 29% ] : Install Composer : [  OK  ]
[ 30% ] : Install JsonPath-PHP library...
[ 39% ] : Install JsonPath-PHP library : [  OK  ]
[ 40% ] : Remove Composer...
[ 49% ] : Remove Composer : [  OK  ]
[ 50% ] : Install python3 venv and pip debian packages...
[ 59% ] : Install python3 venv and pip debian packages : [  OK  ]
[ 60% ] : Create a python3 Virtual Environment...
[ 69% ] : Create a python3 Virtual Environment : [  OK  ]
[ 70% ] : Install required python3 libraries in venv...
[ 99% ] : Install required python3 libraries in venv : [  OK  ]
[100% ] : Finished !

======================================================================
== OK == Installation Successful 
======================================================================ou 

et le log du plugin qui déverse un torrent d’erreurs :


[2023-08-10 20:36:16][INFO] : Début d'activation du plugin
[2023-08-10 20:36:17][INFO] : Info sur le démon : {"launchable_message":"","launchable":"nok","state":"nok","log":"nok","auto":0}
[2023-08-10 20:36:17][DEBUG] : Lancement de : /var/www/html/core/class/../../core/php/jeePlugin.php  plugin_id=jMQTT function=install callInstallFunction=1
[2023-08-10 20:36:17][DEBUG] : install.php: jMQTT_install()
[2023-08-10 20:36:17][DEBUG] : Transmission des données statistiques suivantes : {"version":1,"hardwareKey":"2a3e12bf5d6bf5dab33c1d4a10843fba4ae7dee3","lastUUID":"t9XfFDdlyNYaXcAKytM92R3ZpWeftrKIyqojMoJXBOPYvoEVSVM+pLbJOnnNJix2","UUID":"M9LpXqX0DUHFvJCoBvd5KHRXy8\/9ZygOnbOqBg4gFY32BgMaT\/G\/8nuCYM\/e9IO9","hardwareName":"diy","distrib":"debian 11","phpVersion":"7.4.33","jeedom":"4.3.17","lang":"fr_FR","source":"market","branch":"stable","configVersion":"19","reason":"install","next":1692235472}
[2023-08-10 20:36:17][DEBUG] : Données statistiques envoyées (Réponse : {"status":"success","reason":"success"})
[2023-08-10 20:36:20][ERROR] : Relancez les dépendances, au moins une bibliothèque Python requise est manquante dans le venv : <br/>WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.<br/>Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.<br/>To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
[2023-08-10 20:36:20][ERROR] : Relancez les dépendances, au moins une bibliothèque Python requise est manquante dans le venv : <br/>WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.<br/>Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.<br/>To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
[2023-08-10 20:36:23][ERROR] : Relancez les dépendances, au moins une bibliothèque Python requise est manquante dans le venv : <br/>WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.<br/>Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.<br/>To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
[2023-08-10 20:36:23][ERROR] : Relancez les dépendances, au moins une bibliothèque Python requise est manquante dans le venv : <br/>WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.<br/>Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.<br/>To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
[2023-08-10 20:36:31][ERROR] : Relancez les dépendances, au moins une bibliothèque Python requise est manquante dans le venv : <br/>WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.<br/>Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.<br/>To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
[2023-08-10 20:36:31][ERROR] : Relancez les dépendances, au moins une bibliothèque Python requise est manquante dans le venv : <br/>WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.<br/>Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.<br/>To avoid this problem you can invoke Python with '-m pip' instead of running pip directly............

Pour info, voici la config du plugin:

et la page santé :


Merci d’avance pour votre aide, je commence à m’inquiéter pour la migration vers Debian 11.
Dominique

Bonsoir @dominique60,

Merci pour tes logs, je vois globalement où le problème se situe (dans le check des dépendances).

Ce fil devrait t’intéresser :

Essaye de supprimer le répertoire venv de jMQTT en suivant cette procédure stp :

Bad

1 « J'aime »

Merci @Bad pour ta réactivité. Entre-temps, j’avais trouvé le post que tu mentionnes. ça fonctionne maintenant très bien après avoir supprimé le répertoire venv.
Problème résolu en ce qui me concerne, par contre il faudrait que ce soit géré automatiquement lorsque Debian 11 sera « officielle ».

C’est déjà le cas, la luna est sous debian 11 par exemple.

Antoine

ou là encore :wink:

1 « J'aime »

Bonsoir,
ça n’enlève rien à ma remarque !
OK, Bullseye est « officielle », j’ai installé une version stable de Jeedom et du plugin… et je dois aller bidouiller dans les fichiers pour que ça fonctionne.
Donc je pose la question: le plugin jMQTT est-il en l’état compatible Bullseye ou alors les problèmes que je rencontre sont-ils liés à ma configuration (qui n’a rien d’exotique) ?
Cette question n’est pas polémique, c’est juste que c’est important pour moi de savoir.

Bonsoir,
A l’inverse moi il s’était installé sans pb avec une facilité déconcertante. En fait je n’ai eu aucun pb y compris de gestion de mosquito installé et géré par jmqtt et utilisé par mqtt manager par ailleurs.
La chance du néophyte :grinning: ou la qualité des devs plus certainement :wine_glass:

Je n’ai pas eu de pbs avec Mosquitto, uniquement ce pb de dépendances qui a été résolu en supprimant le répertoire venv…qui est ensuite recréé automatiquement avec les bonnes librairies.
Je me demande si le souci n’est pas lié au fait que j’ai restauré un backup créé sous Buster. La restauration a du installer les anciennes libs. Dans ce cas, le pb est ponctuel et ne se reproduira pas lors des updates du plugin. Merci à @Bad de bien vouloir confirmer.

Hello,

L’analyse est presque exacte : le problème est lié à la version de python et pip dans le venv, pas les bibliothèques.
Donc ça ne se reproduira pas lors des prochaines maj.

Par contre je n’ai aucun moyen « propre » (comprendre venant d’un signal du Core) de vérifier si une lib système a été mise à jour, ni même le core, ni même une restauration à eu lieu. Je ne crois pas non plus qu’il soit possible de demander au core de ne pas sauvegarder le venv dans les backups (mais j’ai un doute).

Donc pour le moment, je dois éclaircir comment traiter la chose.

Bad

1 « J'aime »

Bonjour,

Peut-être, en utilisant l’option --copies du module venv.

Avantage :

  • indépendance vis à vis des màj système

Inconvénients :

  • place disque plus importante
  • la gestion des montées de version de python sont à gérer par le plugin

Autre solution, tester si les liens symboliques dans le répertoire env sont toujours valides (lors dune màj de python, souvent les liens symboliques des virual env se retrouvent cassés).

Dernière solution, ajouter à la doc la méthode pour supprimer le répertoire env du plugin :wink:

Édit : ou simplement supprimer le répertoire env lors du lancement des dépendances (je n’ai pas regardé si c’était le cas)

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.