[RTEX] installation dépendances plugin-zigbee Raspberry Pi OS 32-bit armhf – Rust Cryptography

Dans ton log il y a un « killed » pendant l’installation de rust :

info: downloading installer
info: profile set to 'default'
info: default host triple is armv7-unknown-linux-gnueabihf
info: syncing channel updates for 'stable-armv7-unknown-linux-gnueabihf'
info: latest update on 2022-11-03, rust version 1.65.0 (897e37553 2022-11-02)
info: downloading component 'cargo'
info: downloading component 'clippy'
info: downloading component 'rust-docs'
info: downloading component 'rust-std'
info: downloading component 'rustc'
info: downloading component 'rustfmt'
info: installing component 'cargo'
info: installing component 'clippy'
info: installing component 'rust-docs'
info: installing component 'rust-std'
Killed
+ echo 3

et
error: rustup could not choose a version of rustc to run, because one wasn't specified explicitly, and no default is configured.

manifestement le processus d’installation de rust a été interrompu (lié peut être à ta remarque « je n’ai plus accès à mon jeedom ».)
je t’invite à relancer l’installation des dépendances.

akenad :slight_smile:

Je viens de refaire deux essais d’installation avec le nouveau protocole (modification du pre et du post install).
Lors de l’essai d’hier je n’avais ajouté qu’une seule ligne à post_install (sudo rm -rf /root/.rustup).
Toujours NOK
zigbee_packages.txt (167,4 Ko)

Donc même comportement que précédemment, à savoir un « Killed » dans la log durant l’installation de rust via l’installation des dépendances du plugin.
Tu dois avoir quelque chose de particulier sur ton RPi qui le provoque.
Si tu as un peu de temps je te propose d’installer rust en manuel en suivant la fin de mon premier post.
Cela permettra de visualiser des informations supplémentaire dans la console SSH, que l’on ne voit pas forcement dans le log du plugin, à savoir lors du lancement de :
# ./rustup.sh

akenad :slight_smile:

Ok j’essaye ça ce soir (il faut que je sois en local). A suivre ! (et merci encore)

Essai réalisé : en ssh presque tout a fonctionné mais il y a un « killed » à la fin sur rust :

info: profile set to 'default'
info: default host triple is armv7-unknown-linux-gnueabihf
info: syncing channel updates for 'stable-armv7-unknown-linux-gnueabihf'
info: latest update on 2022-11-03, rust version 1.65.0 (897e37553 2022-11-02)
info: downloading component 'cargo'
info: downloading component 'clippy'
info: downloading component 'rust-docs'
info: downloading component 'rust-std'
 27.3 MiB /  27.3 MiB (100 %)  10.0 MiB/s in  3s ETA:  0s
info: downloading component 'rustc'
 79.0 MiB /  79.0 MiB (100 %)  16.1 MiB/s in  6s ETA:  0s
info: downloading component 'rustfmt'
info: installing component 'cargo'
  6.1 MiB /   6.1 MiB (100 %)   3.3 MiB/s in  2s ETA:  0s
info: installing component 'clippy'
info: installing component 'rust-docs'
 18.8 MiB /  18.8 MiB (100 %)   1.2 MiB/s in 29s ETA:  0s    
info: installing component 'rust-std'
 27.3 MiB /  27.3 MiB (100 %)   2.7 MiB/s in 10s ETA:  0s
info: installing component 'rustc'
 72.0 MiB /  79.0 MiB ( 91 %)   2.7 MiB/s in 27s ETA:  2sKilled

J’ai quand même essayé l’installation des dépendances mais sans succès :
zigbee_packages.txt (164,9 Ko)

Donc reste à comprendre pourquoi sur ton rpi l’installation de rustc s’arrête avant la fin ou bien de repartir sur une nouvelle image et restaurer jeedom

akenad :slight_smile:

Je pense qu’on est au bout des investigations, il y a parfois des mystères qui ne trouvent pas de solutions !
En tout cas, merci pour ton aide, tu y auras passé du temps. Compliqué pour mon niveau de restaurer Jeedom avec une nouvelle image, je ne pense pas avoir le niveau pour ne pas y perdre de plumes ! (vu ce que j’ai galéré par exemple pour le plugin Nest pour récupérer mon thermostat sur jeedom !)
Le plus simple pour moi sera de tenter comme évoqué dans l’autre post l’utilisation d’un plugin non officiel jeedom ou encore d’abandonner le zigbee (j’ai majoritairement du zwave, du hue, du shelly et du enocean).
Merci encore Akenad !

1 « J'aime »

Une solution a-t-elle été trouvée ? Comment arriver à installer le plugin Zigbee quand il y a des erreurs de Rust ???

Cela dépend de l’erreur.
Pas de solution identifiée à ce stade si on voit un « Killed » dans le log complet d’installation des dépendances zigbee_packages, si ce n’est de reflasher une image.
Voir le premier post pour les autres cas d’erreur.

akenad :slight_smile:

Bonjour à tous,

@tribaldam Est ce que le Killed n’est pas dû à un manque de mémoire lors de l’installation?
Tu dois pouvoir retrouver ça dans /var/log/syslog avec un message du type « Out of memory : Kill process XXXXXX ».

Si c’est le cas, essai d’arrêter un maximum de processus avant de lancer l’installation.

De mon coté j’ai un problème avec rustc, installé de manière autonome avec la procédure donnée par @akenad (merci pour ton travail au passage), et comme indiqué ici, mais cela reviens au même.

J’ai systématiquement un problème avec rustc qui me retourne:

root@raspberrypi:~# rustc
error: command failed: 'rustc': No such file or directory (os error 2)

Message visible aussi lors d’un pip install --upgrade cryptography
Et ça sur 2 installations différentes de Jeedom sur des Rpi3 bullseye 64Bits.

Merci à vous si vous avez plus d’idée que moi sur le sujet :slight_smile:

J’ai un début de réponse pour mon cas.
Rust ne semble pas compatible avec RPI 64bits : cargo and rustc are not found/executable in aarch64 Raspberry Pi OS · Issue #2498 · rust-lang/rustup · GitHub

J’ai forcé l’utilisation de la toolchain stable-armv7-unknown-linux-gnueabihf à la place de stable-aarch64-unknown-linux-gnu et tout semble OK.

Je relance l’installation des dépendances pour voir et je vous tien au courant.

Je viens de me rendre compte que le thread été dédié au Rpi 32bits, désolé, mais maintenant que j’ai réussi à installer les dépendances pour le 64bits je vais quand même mettre ce que j’ai fait.

Tout se passe en SSH, commencer par lancer l’installation de rust en mode manuel:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Lors du choix pour l’installation, prendre Customize installation (2)
Ne pas prendre le choix par défaut à la première question, mais mettre « armv7-unknown-linux-gnueabihf », puis garder les choix par défaut ensuite.

Sélectionner « Proceed with installation »

Une fois l’installation terminer tapper la commande qu’ils donnent:

source "$HOME/.cargo/env"

Et normalement tout est bon.

Attention, comme l’a fait remarquer @akenad, l’installation des dépendances va supprimer tout ça à la fin, il faudra refaire la manip à chaque installation des dépendances.

Bonjour,
Je n’ai pas bien compris si ces deux lignes à rentrer permettaient de faire fonctionner les dependances pour Xiaomi sur un PI3B+ donc en 32 bits

J’ai essayé la manip puisque plus rien à perdre mais ça n’a pas fonctionné pour moi

############################
# Package would be ignored #
############################
Python recognizes 'cryptography.hazmat.bindings._rust' as an importable package,
but it is not listed in the `packages` configuration of setuptools.
'cryptography.hazmat.bindings._rust' has been automatically added to the distribution only
because it may contain data files, but this behavior is likely to change
in future versions of setuptools (and therefore is considered deprecated).
Please make sure that 'cryptography.hazmat.bindings._rust' is included as a package by using
the `packages` configuration field or the proper discovery methods
(for example by using `find_namespace_packages(...)`/`find_namespace:`
instead of `find_packages(...)`/`find:`).
You can read more about "package discovery" and "data files" on setuptools
documentation page.
!!
check.warn(importable)
=============================DEBUG ASSISTANCE=============================
If you are seeing a compilation error please try the following steps to
successfully install cryptography:
1) Upgrade to the latest pip and try again. This will fix errors for most
users. See: https://pip.pypa.io/en/stable/installing/#upgrading-pip
2) Read https://cryptography.io/en/latest/installation/ for specific
instructions for your platform.
3) Check our frequently asked questions for more information:
https://cryptography.io/en/latest/faq/
4) Ensure you have a recent Rust toolchain installed:
https://cryptography.io/en/latest/installation/#rust
Python: 3.7.3
platform: Linux-5.10.103-v7+-armv7l-with-debian-10.13
pip: n/a
setuptools: 65.6.3
setuptools_rust: 1.5.2
rustc: n/a
=============================DEBUG ASSISTANCE=============================
error: can't find Rust compiler
If you are using an outdated pip version, it is possible a prebuilt wheel is available for this package but pip is not able to install from it. Installing from the wheel would avoid the need for a Rust compiler.
To update pip, run:
pip install --upgrade pip
and then retry package installation.
If you did intend to build this package from source, try installing a Rust compiler from your system package manager and ensure it is on the PATH during installation. Alternatively, rustup (available at https://rustup.rs) is the recommended way to download and update the Rust compiler toolchain.
This package requires Rust >=1.48.0.
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for cryptography
Failed to build cryptography
ERROR: Could not build wheels for cryptography, which is required to install pyproject.toml-based projects
+ echo 6
+ php /var/www/html/core/class/../php/jeecli.php plugin dependancy_end xiaomihome
+ rm /tmp/jeedom_install_in_progress_xiaomihome
+ echo '*******************End of package installation******************'
*******************End of package installation******************

Bonjour, dépendances impossibles à installer, j’ai suivi tous les différents conseils et cette excellente explication sans résultat, les dépendances se bloquent vers les 13 %. Je mets les log en PJ si l’un de vous peut m’aider. Je vous remercie
zigbee_packages (2).txt (35,1 Ko)

Bonjour

Il y a ce message dans les logs demandant de faire cette commande:

pip install --force-reinstall --no-deps idna==3.3

A faire peut-être avec un sudo devant.

Antoine

BOnjour Antoine,

J’ai déjà effectué cette commande qui se termine correctement
Defaulting to user installation because normal site-packages is not writeable
Looking in indexes: Simple index, piwheels - Simple index
Collecting idna==3.3
Using cached https://www.piwheels.org/simple/idna/idna-3.3-py3-none-any.whl (64 kB)
WARNING: No metadata found in /usr/local/lib/python3.7/dist-packages
Installing collected packages: idna
Successfully installed idna-3.3

mais quand je vais dans les vérifications des packages

et que je fais mise à jour cela se termine systématiquement par
WARNING: No metadata found in /usr/local/lib/python3.7/dist-packages
Found existing installation: idna 3.3
ERROR: Cannot uninstall idna 3.3, RECORD file not found. You might be able to recover from this via: ‹ pip install --force-reinstall --no-deps idna==3.3 ›
J’ai essayé de desinstaller idna 3.3 et de relancer la mise à jour mais rien n’y fait

Merci de votre aide
packages.txt (8,5 Ko)

Bonjour,

Pour identifier toutes les erreurs lors de l’installation des dépendances
il est nécessaire que le log de l’installation des dépendances (zigbee_packages) soit complet.
Avec un paramètrage par défaut du log, le fichier zigbee_packages est tronqué.
Pour avoir un log complet il faut modifier le paramétrage.
La modification du paramétrage est expliquée dans le premier post.

par ailleurs le plugin zigbee utilise des dépendances python3.
Si OS Debian Buster (et pas Bullseye) la commande pip installe du python2.
Utiliser la commande pip3 au lieu de pip pour installer des dépendances python3.

Et enfin les versions des paquets python3 évoluants au cours du temps,
lorsqu’on relance l’installation des dépendances du plugin, il peut être identifié un conflit de version entre les paquets python3 installés par la commande apt et les paquets python3 installés par la commande pip3.
Dans le cas du plugin zigbee par exemple actuellement les paquets requests et pyudev sont potentiellement installés par apt puis par pip3 (voir fichier /plugins/zigbee/plugin_info/packages.json) ce qui peut provoquer un conflit en fonction des versions de apt et de pip3.
pour illustrer ce propos, un extrait du log fourni dans le post précédent :

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed.
This behaviour is the source of the following dependency conflicts.
requests 2.28.1 requires idna<4,>=2.5, which is not installed.
requests 2.28.1 requires urllib3<1.27,>=1.21.1, but you have urllib3 2.0.2 which is incompatible.

Une mise à jour de l’OS dans une version plus récente pourrait peut-être régler le problème en apportant une version du paquet python3 requests plus récente. Mais le mieux serait que le plugin zigbee utilise python3 venv (Virtual environnement) pour éviter les conflits avec d’autres plugins.

Et souvenez vous ce n’est pas parce que dans un log il vous est proposé de lancer une commande que ça s’applique à votre contexte. (pour avoir une chance de résoudre un problème il est fondamental de préciser a minima la version de debian utilisée et le matériel).
Au contraire le lancement d’une commande inadaptée peut empirer la situation.

En fonction du contexte (version de debian, version de jeedom, plugins installés …), soit il s’agit d’un problème d’installation du paquet python3 cryptography, soit il s’agit d’un problème de conflit/incompatibilité de versions entre des paquets python3 nécessaires pour le plugin zigbee et ces mêmes paquets pour d’autres plugins.
En résolvant le problème de conflit pour le plugin zigbee cela risque de provoquer un problème sur les autres plugins.
Les paquets python3 qui peuvent être concernés sont requests, idna, pyudev, urllib3, charset-normalizer et yarl.

akenad :slight_smile:

2 « J'aime »

Bonjour,

pip3 install --force-reinstall --no-deps idna==3.3 effectué mais pas mieux sur le résultat dans le fichier de log que j’ai rajouté

Merci de vos lumières

Si tu n’as plus rien à perdre, pour essayer de résoudre le problème de conflit de versions pour le plugin zigbee, tu peux tenter :

sudo pip3 install pyudev==0.24.1
sudo pip3 install idna==3.4
sudo pip3 install urllib3==2.0.2
sudo pip3 install charset-normalizer==2.0.12
sudo pip3 install requests==2.31.0
sudo pip3 install yarl==1.4.2

Dans Réglages > Système > Configuration > OS/DB > Administration Système > Ouvrir
taper la commande :

pip3 list

Fournir le résultat.

puis relancer l’installation des dépendances.

akenad :slight_smile:

1 « J'aime »