[gelöst] installation von nodejs fehlerhaft

Begonnen von gestein, 07 September 2017, 10:50:28

Vorheriges Thema - Nächstes Thema

gestein

Hallo,

ich wollte mir gestern die Siri-Integration für meinen fhem installieren, scheitere aber leider schon am nodejs.
Mein fhem läuft auf einem raspberry mit Jessy.

Das "sudo apt-get install npm" läuft sauber durch, das "sudo apt-get install nodejs" ergab folgendes:
Reading package lists... Done
Building dependency tree
Reading state information... Done
nodejs is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.


Die Abfrage der Versionen ergibt:
npm -v = 5.4.0
node -v = v4.2.1 (sollte das nicht v4.2.6 sein?)
npm config get registry = https://registry.npmjs.org/

Wenn ich nun aber "sudo npm install -g --unsafe-perm homebridge" eingeben, kommt folgender Fehler:
npm ERR! Buffer.alloc is not a function

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2017-09-06T23_22_00_394Z-debug.log


Die Datei "/root/.npm/_logs/2017-09-06T23_22_00_394Z-debug.log" gibt es aber nicht.
Auch ein "sudo npm update -g npm" liefert den gleichen Fehler.

Kann mir vielleicht jemand dabei helfen?

Im Netz gibt es dazu nicht viele Hinweise.
Muss ich vielleicht die Version von nodejs wechseln?
Ich habe da den Hinweise gefunden folgendes zu probieren:
curl -sL https://deb.nodesource.com/setup_6.x -o nodesource_setup.sh
sudo apt-get install nodejs


Ist das vielleicht die Lösung? Oder soll ich gleich auf version 8 gehen?

Vielen Dank im Voraus
liebe Grüße
Gerhard

Wernieman

Leider hast Du nicht geschrieben, was für eine Distri in welcher Version Du fährst ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

gestein

Ich habe eine Raspbian-"Jessie" wie hier benutzt:
http://www.meintechblog.de/2016/05/fhem-server-auf-dem-raspberry-pi-in-weniger-als-einer-stunde-einrichten/

Damals basierte das noch auf Debian Jessie.

habe aber alle "sudo apt-get update" "sudo apt-get upgrade" gemacht.

lg, Gerhard

Wernieman

Ich befürchte, Du musst updaten.  Ein kurzes google ergab, das Du mindestens node 4.5 braucht. Kann Dir aber nicht sagen, ob Du bei der nächsten Debian-Version aktuell genug bist ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

gestein

Hallo,

danke.
Muss ich wirklich meinen raspberry komplett neu aufsetzen oder kann ich sonst irgendwie upgraden?
Oder würde ein "curl -sL https://deb.nodesource.com/setup_6.x -o nodesource_setup.sh" reichen?
Oder gleich ein "curl -sL https://deb.nodesource.com/setup_8.x -o nodesource_setup.sh"?

Neu aufsetzen ist mir derzeit einfach ein zu großer Aufwand :-(

Danke im Voraus
Liebe Grüße
Gerhard

mahowi

Hallo Gerhard,

natürlich musst Du nicht den Pi neu aufsetzen. Du kannst eines der Setup-Skripte laufen lassen, damit werden die Paketquellen von nodejs 6.x bzw. 8.x Deiner Installation hinzugefügt. Danach wird die jeweils aktuellste Version installiert, da ja nodejs aus den neuen Quellen aktueller ist als aus dem Raspbian-Repo.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

gestein

Hallo,

leider hat das automatische Updaten nicht funktioniert.
Mit dem Befehl "curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -" kommt folgende Fehlermeldung:
## Installing the NodeSource Node.js v8.x repo...


## You appear to be running on ARMv6 hardware. Unfortunately this is not currently supported by the NodeSource Linux distributions. Please use the 'linux-armv6l' binary tarballs available directly from nodejs.org for Node.js v4 and later.


Also musste ich das ganze manuell installieren.
Gott sei Dank gibt es im Netz ein paar passende Anleitungen dazu.
Ich habe es nach dieser installiert:
https://stackoverflow.com/questions/23082242/how-to-install-nodejs-0-10-26-from-binaries-in-ubuntu/23084499#23084499

Konkret habe ich folgendes gemacht:
curl -LO http://nodejs.org/dist/latest-v8.x/node-v8.4.0-linux-armv6l.tar.gz

# uncompress
tar xzf node-v8.4.0-linux-armv6l.tar.gz

# selective copy
cp -R ./node-v8.4.0-linux-armv6l/bin/* /usr/local/bin
cp -R ./node-v8.4.0-linux-armv6l/lib/* /usr/local/lib
cp -R ./node-v8.4.0-linux-armv6l/include/* /usr/local/include
cp -R ./node-v8.4.0-linux-armv6l/share/* /usr/local/share


Vielleicht hilft es jemanden.

lg, Gerhard

Holzportz

Besten Dank "gestein"

leider kann ich ich die homebridge immer noch nicht installieren.
Bekomme weiterhin noch die Meldung:

npm ERR! Buffer.alloc is not a function

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2017-09-11T14_33_37_479Z-debug.log


Hat es bei dir funktioniert?
Wo ist eigentlich das genaue Problem?
Danke für die Hilfe bin ratlos.

gestein

Hallo,

ja, bei mir geht's.

Welche Versionen hast Du denn nun installiert?

Bei mir:
node -v
v8.4.0

nodejs -v
v0.10.29

npm -v
5.3.0

lg, Gerhard

Holzportz

Hallo Gerhard,
danke für deine Antwort.

Leider bekomme ich es nicht zum laufen.
Meine Versionen:
node -v:
v4.2.1

nodejs -v:
v8.4.0

npm -v:
5.4.1



Bei der Eingabe: sudo npm update -g npm && sudo npm update -g
bekomme ich weiterhin folgende Fehlermeldung:
npm ERR! Buffer.alloc is not a function

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2017-09-12T13_43_08_321Z-debug.log



Bei der Eingabe: homebridge
/usr/local/lib/node_modules/homebridge/node_modules/mdns/lib/dns_sd.js:35
    throw ex;
    ^

Error: Module version mismatch. Expected 46, got 48.
    at Error (native)
    at Object.Module._extensions..node (module.js:460:18)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)
    at Object.<anonymous> (/usr/local/lib/node_modules/homebridge/node_modules/mdns/lib/dns_sd.js:24:20)
    at Module._compile (module.js:435:26)
    at Object.Module._extensions..js (module.js:442:10)
    at Module.load (module.js:356:32)



Meine Hardwaer ist ein "Raspberry B"


Danke und LG
Peter

gestein

Hallo,

ich leider auch nicht der Profi auf dem Gebiet.
Aber node hat die Version 4.2.1

Du solltest nodejs upgraden, so wie ich es unten beschrieben habe.
Funktioniert das folgende bei Dir nicht?
onkret habe ich folgendes gemacht:
curl -LO http://nodejs.org/dist/latest-v8.x/node-v8.4.0-linux-armv6l.tar.gz

# uncompress
tar xzf node-v8.4.0-linux-armv6l.tar.gz

# selective copy
cp -R ./node-v8.4.0-linux-armv6l/bin/* /usr/local/bin
cp -R ./node-v8.4.0-linux-armv6l/lib/* /usr/local/lib
cp -R ./node-v8.4.0-linux-armv6l/include/* /usr/local/include
cp -R ./node-v8.4.0-linux-armv6l/share/* /usr/local/share


Bricht er mit einem Fehler ab?

lg, Gerhard

Holzportz

Hej,

habe es geschafft.

Es lag an der zu "neuen" nodejs Version.
Habe später die Fehlermeldung bekommen:

pi@raspberrypi ~ $ npm -v
ERROR: npm is known not to run on Node.js v4.2.1
Node.js 4 is supported but the specific version you're running has
a bug known to break npm. Please update to at least ${rel.min} to use this
version of npm. You can find the latest release of Node.js at https://nodejs.org/



Mit der Einstellung läuft es:
node -v: v6.11.0
nodejs -v: v0.10.29
npm -v: 3.10.10

Hab besten Dank für den Support.
DANKE