Problèmes espeasy depuis mise à jour

Bonjour @lunarok ,

depuis les dernières mises à jour (lancées hier soir), j’ai un soucis sur le plugin espeasy :
Les dépendances se réinstallent toutes les 5 min sans succès avec le message suivant :

Début de l'installation
--2020-01-23 10:05:02--  https://raw.githubusercontent.com/lunarok/jeedom_nodejs/master/nodejs.sh
Résolution de raw.githubusercontent.com (raw.githubusercontent.com)… 151.101.0.133, 151.101.64.133, 151.101.128.133, ...
Connexion à raw.githubusercontent.com (raw.githubusercontent.com)|151.101.0.133|:443… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 1491 (1,5K) [text/plain]
Sauvegarde en : « dependencies.sh »
0K .                                                     100% 3,10M=0s
2020-01-23 10:05:03 (3,10 MB/s) — « dependencies.sh » sauvegardé [1491/1491]
dependencies.sh: 3: [: espeasy: unexpected operator
Version actuelle : 4
Ign:1 http://download.videolan.org/pub/debian/stable  InRelease
Atteint:2 http://download.videolan.org/pub/debian/stable  Release
Ign:3 http://deb.debian.org/debian stretch InRelease
Atteint:4 http://deb.debian.org/debian-security stretch/updates InRelease
Atteint:5 http://deb.debian.org/debian stretch-updates InRelease
Atteint:6 https://deb.nodesource.com/node_12.x stretch InRelease
Atteint:7 http://deb.debian.org/debian stretch Release
Lecture des listes de paquets…
Lecture des listes de paquets…
Construction de l'arbre des dépendances…
Lecture des informations d'état…
lsb-release is already the newest version (9.20161125).
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
KO, version obsolète à upgrader
Suppression du Nodejs existant et installation du paquet recommandé
Lecture des listes de paquets…
Construction de l'arbre des dépendances…
Lecture des informations d'état…
E: Impossible de trouver le paquet npm
dependencies.sh: 37: [: i686: unexpected operator
Utilisation du dépot officiel
## Installing the NodeSource Node.js 12.x repo...
## Populating apt-get cache...
+ apt-get update
Ign:1 http://download.videolan.org/pub/debian/stable  InRelease
Ign:2 http://deb.debian.org/debian stretch InRelease
Atteint:3 http://download.videolan.org/pub/debian/stable  Release
Atteint:4 http://deb.debian.org/debian-security stretch/updates InRelease
Atteint:5 http://deb.debian.org/debian stretch-updates InRelease
Atteint:6 http://deb.debian.org/debian stretch Release
Atteint:8 https://deb.nodesource.com/node_12.x stretch InRelease
Lecture des listes de paquets…
## Confirming "stretch" is supported...
+ curl -sLf -o /dev/null 'https://deb.nodesource.com/node_12.x/dists/stretch/Release'
## Adding the NodeSource signing key to your keyring...
+ curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
Warning: apt-key output should not be parsed (stdout is not a terminal)
OK
## Creating apt sources list file for the NodeSource Node.js 12.x repo...
+ echo 'deb https://deb.nodesource.com/node_12.x stretch main' > /etc/apt/sources.list.d/nodesource.list
+ echo 'deb-src https://deb.nodesource.com/node_12.x stretch main' >> /etc/apt/sources.list.d/nodesource.list
## Running `apt-get update` for you...
+ apt-get update
Ign:1 http://deb.debian.org/debian stretch InRelease
Ign:2 http://download.videolan.org/pub/debian/stable  InRelease
Atteint:3 http://deb.debian.org/debian-security stretch/updates InRelease
Atteint:4 http://download.videolan.org/pub/debian/stable  Release
Atteint:5 http://deb.debian.org/debian stretch-updates InRelease
Atteint:6 http://deb.debian.org/debian stretch Release
Atteint:7 https://deb.nodesource.com/node_12.x stretch InRelease
Lecture des listes de paquets…
## Run `sudo apt-get install -y nodejs` to install Node.js 12.x and npm
## You may also need development tools to build native addons:
sudo apt-get install gcc g++ make
## To install the Yarn package manager, run:
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install yarn
Lecture des listes de paquets…
Construction de l'arbre des dépendances…
Lecture des informations d'état…
nodejs is already the newest version (4.8.2~dfsg-1).
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
Version actuelle : v4.8.2
dependencies.sh: 59: dependencies.sh: npm: not found
chown: impossible d'accéder à 'node_modules': Aucun fichier ou dossier de ce type
Fin de l'installation

J’ai tenté un lancement des commandes d’install en manuel sur mon serveur, mais ça ne change rien. Et surtout il me dit que la version nodejs est dans la dernière version.

Bizarrement j’ai l’impression que les commandes de mes modules fonctionnent quand même.

Saurais-tu d’où peut venir le problème ?

Pour info, j’ai également eu de gros pb avec le plugin Ikealight sur cette vague de MAJ(le demon tombait sans arrêt). Mais après plusieurs relances des dépendances, c’est retombé en marche ^^ (Peut-être en lien avec ce pb ??)

Merci pour ton aide.

PS : Je suis en V4.0.38 avec une version du plugin au 2020-01-18 01:22:24

Je constate ne pas être le seul à avoir ce problème depuis la mise à jour.

@lunarok : es-tu sur le sujet ?
Merci

Hello,

Je suis un peu novice sur la partie espeasy, je commence à l’utiliser de plus en plus et j’ai eu récemment le problème de restart du démon et je l’ai solutionné en modifiant le fichier espeasy.js.

L’erreur de plantage n’est pas à cause du plugins mais dû à une erreur de ma part avec un copier-coller classique en mode “J’ai suivi un Tuto” !!

A voir si @lunarok valide ma modif… je suis loin d’avoir son niveau :+1:

--- /var/www/html/plugins/espeasy/resources/espeasy.js	2020-01-25 18:13:24.598882455 +0100
+++ /tmp/espeasy.js	2020-01-28 16:56:56.872817100 +0100
@@ -10,18 +10,7 @@
 function answer(req, res) {
     var ipString = req.connection.remoteAddress;
     console.log("We have got request  " + req.url);

-	try {
-		  var decodeUrl = decodeURIComponent(req.url).replace(/[/]/g,"");
-	} catch (e) {
-		  console.log(e.message);             // "malformed URI sequence"
-	}
+    var decodeUrl = decodeURIComponent(req.url).replace(/[/]/g,"");
     console.log("We have got a request for " + decodeUrl + " from " + ipString);
     urlj = urlJeedom + "&" + decodeUrl+ "&ip=" + ipString;
     if (debug == 1) {console.log("Calling Jeedom " + urlj);}

A+

Mais tu as modifié quoi dans ce fichier ?

Je me suis gouré en faisant mon diff…
les lignes " - " montrent ce que j’ai ajouté et donc les " + " ce que j’ai supprimé, logique non :wink:

Sinon pour ton prob d’install, quand tu lances uniquement les commandes suivantes tu as quoi ?

   curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
    sudo apt-get install -y nodejs

Voici ce que j’obtiens :

nodejs is already the newest version (4.8.2~dfsg-1).

la 1ere ligne de commande n’affiche rien ?

Si bien sûr. Désolé je croyais que tu ne voulais que le résultat

## Installing the NodeSource Node.js 12.x repo...


## Populating apt-get cache...

+ apt-get update
Ign:1 http://download.videolan.org/pub/debian/stable  InRelease
Atteint:2 http://download.videolan.org/pub/debian/stable  Release
Ign:3 http://deb.debian.org/debian stretch InRelease
Atteint:4 http://deb.debian.org/debian-security stretch/updates InRelease
Atteint:5 http://deb.debian.org/debian stretch-updates InRelease
Atteint:6 http://deb.debian.org/debian stretch Release
Atteint:8 https://deb.nodesource.com/node_12.x stretch InRelease
Lecture des listes de paquets... Fait

## Confirming "stretch" is supported...

+ curl -sLf -o /dev/null 'https://deb.nodesource.com/node_12.x/dists/stretch/Release'

## Adding the NodeSource signing key to your keyring...

+ curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
OK

## Creating apt sources list file for the NodeSource Node.js 12.x repo...

+ echo 'deb https://deb.nodesource.com/node_12.x stretch main' > /etc/apt/sources.list.d/nodesource.list
+ echo 'deb-src https://deb.nodesource.com/node_12.x stretch main' >> /etc/apt/sources.list.d/nodesource.list

## Running `apt-get update` for you...

+ apt-get update
Ign:1 http://download.videolan.org/pub/debian/stable  InRelease
Atteint:2 http://download.videolan.org/pub/debian/stable  Release
Ign:3 http://deb.debian.org/debian stretch InRelease
Atteint:4 http://deb.debian.org/debian-security stretch/updates InRelease
Atteint:5 http://deb.debian.org/debian stretch-updates InRelease
Atteint:6 https://deb.nodesource.com/node_12.x stretch InRelease
Atteint:7 http://deb.debian.org/debian stretch Release
Lecture des listes de paquets... Fait

## Run `sudo apt-get install -y nodejs` to install Node.js 12.x and npm
## You may also need development tools to build native addons:
     sudo apt-get install gcc g++ make
## To install the Yarn package manager, run:
     curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
     echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
     sudo apt-get update && sudo apt-get install yarn

que donne cette commande:
apt-cache show npm

N: Impossible de trouver le paquet npm
E: Aucun paquet n’a été trouvé
:interrobang:

d’après ce que je comprends le paquetage npm n’est dispo qu’en backports du coup tu ne le vois pas…

Il faudrait ajouter les backports stretch dans ton fichier apt/sources.list
deb Index of /debian stretch-backports main

!!attention!! Comme c’est un canal avec des versions plus récentes de paquets je te conseille de faire un backup avant le apt-get upgrade…Sinon il voudra mettre à jour plein de choses à mon avis

Avant de me lancer dans ce type de manip (avec risques :wink: ) et comme je n’y comprends pas grand chose, peux tu stp m’expliquer ?
backports ?
npm ?
Comment ais-je pu perdre ça avec une simple mise à jour ?
Si c’est indispensable au fonctionnement de ce plugin, pourquoi ça ne s’installe pas avec les dépendances ?

Désolé de poser toutes ces questions, mais mon jeedom n’est pas sur une VM, donc si je casse tout, je n’ai plus de domotique :scream:
Ce plugin ne mérite pas que je casse tout, si tu vois ce que je veux dire :sweat_smile:

Les backports permettent d’obtenir des packages « récents » ou de la version supérieure de Debian. Une version Stable ne change plus une fois qu’elle est officialisée (sauf bug/sécurité)

J’avoue cependant ne pas trop comprendre pourquoi ce paquet est sorti des dépôts…

quelques explications pour une autre version de Debian: (ne s’applique pas à ta version mais juste pour comprendre l’histoire du backport)

Ce que je ferai:

  • mettre le fichier /etc/apt/sources.list avec la ligne backport à la fin.
  • apt-get update
  • apt-get install npm → Répondre N/n juste histoire de voir ce qu’il veut installer pour l’appli npm.
  • ensuite tu supprimes/commentes la ligne backport du sources.list pour éviter les erreurs ou mise à jour auto.

En fonction de la liste qu’il annonce lors du apt-get install alors tu pourras juger de le faire ou pas. Une fois installé tu ne mets plus à jour le plugins et supprime la ligne backport.

Tu as aussi la solution de préparer une nouvelle distrib toute fraiche et remettre jeedom dessus…dans tous les cas un jour il faudra le faire.

Ok, je te remercie.
Je vais étudier tout ça. Mais je t’avoue que pour l’instant, je ne suis pas prêt à tout refaire. :wink:

Salut @jplp,

Tu as cette ligne qui revient tout le temps dans tes logs pour installer nodeJs12 et npm « à la main »:

Run sudo apt-get install -y nodejs to install Node.js 12.x and npm

Oui effectivement, j’avais vu et lancé la commande manuellement.
L’installation se lançait, et aucune erreur n’apparaissait. D’où l’incompréhension.

Et les dépendances continuent de s’installer en boucle avec les mêmes logs ?

J’ai été voir le git du plugin:

Sauf erreur, les dernières modifications d’il y a 19 jours ne concernent que des modifications esthétiques (principalement des icônes et le menu de gauche je crois) d’où le « silence » de l’auteur selon moi.

Absolument.

Mais je ne suis pas suffisamment calé pour affirmer ou non que le pb vient de la mise à jour.
Je constate simplement que le pb n’existait pas avant.

J’ai rebondis sur les autres topics car je n’étais pas le seul a avoir des pb de dépendances suite à cette mise à jour. Mais comme me l’a dit qui tu sais : Pas les mêmes logs = pas le même problème. (je ne suis pas forcement d’accord avec ça, mais bon…)

J’ai donc finis par me résoudre à désinstaller le plugin et passer par script pour contrôler mes sonoff.

En tout cas je te remercie pour ton aide.

OK j’ai continue de creuser (avec mes petites connaissances) tu restes bloqué sur une vieille version de nodeJs (4.8 au lieu de 12).

La solution est sur ce thread:

The solution:

As root: # nano /etc/apt/preferences.d/nodejs

Set the priority:

Package: * 
Pin: origin deb.nodesource.com
Pin-Priority: 1002

Check if it worked: apt-cache policy nodejs

9.5.0-1nodesource1 1002
1002 https://deb.nodesource.com/node_9.x stretch/main amd64 Packages
4.8.2~dfsg-1 1000
1000 http://ftp.br.debian.org/debian stretch/main amd64 Packages

Allez je chambre un peu au passage (je me permets j’y ai passé du temps :grin: ) c’est le 1er résultat d’une recherche google avec "nodejs is already the newest version (4.8.2~dfsg-1)".

Edit: si jamais ça ne solutionnait pas (le thread à 2 ans quand même) il faut creuser dans ce sens en cherchant comment installer nodejs12 sur debian stretch.

Edit2: Faut voir ce qu’il y a comme retour de apt-cache policy nodejs (mentionne nodejs12 ?) sinon: Debian stretch impossible d'installer la dernière version de nodejs et npm - NodeJS