Les Carnets de Byfeel domotique , Objets connectés , DIY , Programmation, Nouvelles Technologies ….

Nodejs V6 : Plugin Jeedom , erreur sur les dépendances

Certains plugin sous jeedom , ont besoin d’installer des dépendances , et pour cela il contrôle la version de nodejs en place.

Quelques uns , comme dashbutton , homebridge ….. , s’installe que si la version 4 ou 5 est en place.
Mais selon , votre système jeedom , et les mises à jour faites il se peut que vous ayez la version 6 de nodejs en place .

Il faut donc dans un premier temps , ouvrir une connection  SSH avec votre  terminal sous jeedom et vérifier la version du nodejs en place , afin de connaitre son état.

nodejs -v
// vous obtenez si ok
v6.12.3

//ou en cas d'erreur
nodejs: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

Le message d’erreur , est present si un de vos plugin est en echec , ce dernier à tenter d’installer ses dépendances et n’a pas réussi à detecter votre version de nodejs  .

Afin que le plugin puisse fonctionner correctement , il va falloir modifier le script d’installation.

Déplacez vous dans le dossier :

/var/www/html/plugins/dashbutton/resources

Et modifier le fichier : nodejs.sh

nano nodejs.sh

Cherchez la partie suivante : [[ $actual == * »4. »* || $actual == * »5. »* ]] , qui est chargé de vérifier la version nodejs en place . Ne détectant pas la version 6 , le script essaye d’installer la version 5 et met en erreur la version 6.

// extrait script

....
sudo chown -R www-data $DIRECTORY
echo 10 > /tmp/dashbutton_dep
actual=`nodejs -v`;
echo "Version actuelle : ${actual}"

if [[ $actual == *"4."* || $actual == *"5."* ]]
then
  echo "Ok, version suffisante";
else
  echo "KO, version obsol  te    upgrader"
  echo "Suppression du Nodejs existant et installation du paquet recommand  "
  sudo apt-get -y --purge autoremove nodejs npm
 ........

Remplacer par :

echo "Version actuelle : ${actual}"

if [[ $actual == *"4."* || $actual == *"5."* || $actual == *"6."*]]
then

Enregistré. Puis  relancer installation du nodejs V6 , en ssh , par la commande sudo apt-get install nodejs .

sudo apt-get install nodejs


Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  nodejs:arm64
The following NEW packages will be installed:
  nodejs
0 upgraded, 1 newly installed, 1 to remove and 25 not upgraded.
Need to get 8790 kB of archives.
After this operation, 6109 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 https://deb.nodesource.com/node_6.x/ jessie/main nodejs armhf 6.12.3-1nodesource1 [8790 kB]
Fetched 8790 kB in 5s (1467 kB/s)   
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LANG = "fr_FR.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
(Reading database ... 44377 files and directories currently installed.)
Removing nodejs (5-1) ...
dpkg: warning: while removing nodejs, directory '/usr/local/share' not empty so not removed
dpkg: warning: while removing nodejs, directory '/usr/local/bin' not empty so not removed
dpkg: warning: while removing nodejs, directory '/usr/local/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/generator' not empty so not removed
Processing triggers for man-db (2.7.0.2-5) ...
Selecting previously unselected package nodejs.
(Reading database ... 41238 files and directories currently installed.)
Preparing to unpack .../nodejs_6.12.3-1nodesource1_armhf.deb ...
Unpacking nodejs (6.12.3-1nodesource1) ...
Processing triggers for man-db (2.7.0.2-5) ...
Setting up nodejs (6.12.3-1nodesource1) ...

On vérifie que nodejs est bien installé :

nodejs-v

Nous pouvons , enfin retourner dans le plugin jeedom , et relancer l’installation des dépendances , en erreur.

On surveille les étapes de l’installation par la fenêtre log , si tout est ok , il devrait nous signaler :

Version actuelle : v6.12.3
Ok, version suffisante

Extrait log installation des dépendances

Votre plugin est maintenant , fonctionnel .