NEWS
Hilfe: System beim Update des js-controller zerschossen?
-
Hallo,
Heiligabend Nachmittag braucht man so was..
Aber ich bin ja selbst schuld - muss ich so grundlegende Sachen heute noch machen?
Was ist passiert:
Ich habe im admin unter Hosts gesehen, dass eine neuere Version des js-controller verfügbar ist und bin dann der Anleitung zum Update über die Konsole gefolgt:
cd /opt/iobroker
sudo iobroker stop
sudo iobroker update
Bis hierher hat's noch funktioniert.
Aber bei
sudo iobroker update self
kam folgende Bildschirmausgabe:
! ````
pi@raspberrypi:/opt/iobroker $ sudo iobroker upgrade self
npm install iobroker.js-controller --production --prefix "/opt/iobroker" (System call)
gyp WARN EACCES user "root" does not have permission to access the dev dir "/root/.node-gyp/4.6.1"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/opt/iobroker/node_modules/iobroker.js-controller/node_modules/winston-syslog/node_modules/unix -dgram/.node-gyp"
gyp WARN EACCES user "root" does not have permission to access the dev dir "/root/.node-gyp/4.6.1"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/opt/iobroker/node_modules/iobroker.js-controller/node_modules/letsencrypt/node_modules/rsa-com pat/node_modules/ursa/.node-gyp"
fs.js:549
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
^
! Error: EACCES: permission denied, open '/opt/iobroker/node_modules/iobroker.js-controller/lib/setup/../../../../killall.sh'
at Error (native)
at Object.fs.openSync (fs.js:549:18)
at Object.fs.writeFileSync (fs.js:1156:15)
at Setup.setup (/opt/iobroker/node_modules/iobroker.js-controller/lib/setup/setupSetup.js:88:24)
at /opt/iobroker/node_modules/iobroker.js-controller/lib/setup.js:554:23
at Object. <anonymous>(/opt/iobroker/node_modules/iobroker.js-controller/lib/setup.js:575:11)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
npm ERR! Linux 4.4.26-v7+
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "iobroker.js-controller" "--production" "--prefix" "/opt/iobroker"
npm ERR! node v4.6.1
npm ERR! npm v2.15.9
npm ERR! code ELIFECYCLE
! npm ERR! iobroker.js-controller@0.14.0 install:node lib/setup.js setup first
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the iobroker.js-controller@0.14.0 install script 'node lib/setup.js setup first'.
npm ERR! This is most likely a problem with the iobroker.js-controller package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node lib/setup.js setup first
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs iobroker.js-controller
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!
npm ERR! npm owner ls iobroker.js-controller
npm ERR! There is likely additional logging output above.
! npm ERR! Please include the following file with any support request:
npm ERR! /opt/iobroker/npm-debug.log
host.raspberrypi Cannot install iobroker.js-controller: 1</anonymous>Beim Kopieren des Screens habe ich dann auch noch per Rechtsklick die ganze Ausgabe nochmal in die Konsole gehauen. Ob das was zerschosseen hat, weiss ich nicht. Jedenfalls bekomme ich bei sudo iobroker start folgende Ausgabe zurück: >! ```` pi@raspberrypi:~ $ sudo iobroker start module.js:327 throw err; ^ >! Error: Cannot find module '/opt/iobroker/node_modules/iobroker.js-controller/iobroker.js' at Function.Module._resolveFilename (module.js:325:15) at Function.Module._load (module.js:276:25) at Function.Module.runMain (module.js:441:10) at startup (node.js:139:18) at node.js:974:3 >! ```` Zu allem Überfluss finde ich die im ersten Output erwähnte Datei /opt/iobroker/npm-debug.log nicht im angegebenen Verzeichnis. Ich hoffe ihr könnt mein Weihnachtsfest retten. Ich bin übrigens ein ziemlicher Linux-Laie! :-( Gruß Manfred
-
Mal sehen ob ich Weihnachten noch retten kann (zumindest für dich)
Mach mal:
sudo npm cache clean
Dann den Installationsordner für alle freigeben:
sudo chmod -r 777 /opt/iobroker
Wechseln in den Ordner
cd /opt/iobroker
sudo iobroker stop sudo npm install iobroker.js-controller sudo iobroker start
Viel Glück
Rainer
-
Hallo Rainer,
erstes Feedback negativ:
pi@raspberrypi:~ $ sudo chmod -r 777 /opt/iobroker
chmod: Zugriff auf „777“ nicht möglich: Datei oder Verzeichnis nicht gefunden
Mit WinSCP sehe ich aber, dass das Verzeichnis da ist…
Edit: Syntax war falsch angegeben, das "r" muss "R" sein.
-
Hallo Rainer,
zuerst mal: ioBroker läuft wieder. Danke!!!
Allerdings scheint beim Update des js-controller wieder was nicht geklappt zu haben:
!
pi@raspberrypi:/opt/iobroker $ sudo npm install iobroker.js-controller ! > unix-dgram@0.2.3 install /opt/iobroker/node_modules/iobroker.js-controller/node_modules/winston-syslog/node_modules/unix-dgram node-gyp rebuild ! gyp WARN EACCES user "root" does not have permission to access the dev dir "/root/.node-gyp/4.6.1" gyp WARN EACCES attempting to reinstall using temporary dev dir "/opt/iobroker/node_modules/iobroker.js-controller/node_modules/winston-syslog/node_modules/unix -dgram/.node-gyp" make: Entering directory '/opt/iobroker/node_modules/iobroker.js-controller/node_modules/winston-syslog/node_modules/unix-dgram/build' CXX(target) Release/obj.target/unix_dgram/src/unix_dgram.o SOLINK_MODULE(target) Release/obj.target/unix_dgram.node COPY Release/unix_dgram.node make: Leaving directory '/opt/iobroker/node_modules/iobroker.js-controller/node_modules/winston-syslog/node_modules/unix-dgram/build' ! > ursa@0.9.4 install /opt/iobroker/node_modules/iobroker.js-controller/node_modules/letsencrypt/node_modules/rsa-compat/node_modules/ursa node-gyp rebuild ! gyp WARN EACCES user "root" does not have permission to access the dev dir "/root/.node-gyp/4.6.1" gyp WARN EACCES attempting to reinstall using temporary dev dir "/opt/iobroker/node_modules/iobroker.js-controller/node_modules/letsencrypt/node_modules/rsa-com pat/node_modules/ursa/.node-gyp" make: Entering directory '/opt/iobroker/node_modules/iobroker.js-controller/node_modules/letsencrypt/node_modules/rsa-compat/node_modules/ursa/build' CXX(target) Release/obj.target/ursaNative/src/ursaNative.o SOLINK_MODULE(target) Release/obj.target/ursaNative.node COPY Release/ursaNative.node make: Leaving directory '/opt/iobroker/node_modules/iobroker.js-controller/node_modules/letsencrypt/node_modules/rsa-compat/node_modules/ursa/build' ! > iobroker.js-controller@0.14.0 install /opt/iobroker/node_modules/iobroker.js-controller node lib/setup.js setup first ! iobroker.js-controller@0.14.0 node_modules/iobroker.js-controller ├── safe-replace@1.0.2 ├── le-sni-auto@2.1.0 ├── le-challenge-fs@2.0.8 ├── pyconf@1.1.2 ├── semver@5.3.0 ├── mime@1.3.4 ├── winston-daily-rotate-file@1.4.0 ├── daemonize2@0.4.2 ├── ncp@2.0.0 ├── node.extend@1.1.6 (is@3.2.0) ├── redis@2.6.3 (double-ended-queue@2.1.0-0, redis-commands@1.3.0, redis-parser@2.3.0) ├── bluebird@3.4.7 ├── node-schedule@1.2.0 (long-timeout@0.0.2, cron-parser@1.1.0) ├── mkdirp@0.5.1 (minimist@0.0.8) ├── winston@2.3.0 (cycle@1.0.3, stack-trace@0.0.9, eyes@0.1.8, isstream@0.1.2, async@1.0.0, colors@1.0.3) ├── socket.io@1.7.2 (object-assign@4.1.0, socket.io-adapter@0.5.0, has-binary@0.1.7, debug@2.3.3, socket.io-parser@2.3.1, engine.io@1.8.2) ├── socket.io-client@1.7.2 (to-array@0.1.4, component-emitter@1.2.1, indexof@0.0.1, object-component@0.0.3, component-bind@1.0.0, backo2@1.0.2, has-binary@0.1.7, debug@2.3.3, socket.io-parser@2.3.1, parseuri@0.0.5, engine.io-client@1.8.2) ├── prompt@1.0.0 (revalidator@0.1.8, pkginfo@0.4.0, colors@1.1.2, read@1.0.7, winston@2.1.1, utile@0.3.0) ├── request@2.79.0 (aws-sign2@0.6.0, tunnel-agent@0.4.3, oauth-sign@0.8.2, forever-agent@0.6.1, caseless@0.11.0, is-typedarray@1.0.0, stringstream@0.0.5, aws4@1.5.0, isstream@0.1.2, json-stringify-safe@5.0.1, extend@3.0.0, uuid@3.0.1, qs@6.3.0, combined-stream@1.0.5, mime-types@2.1.13, tough-cookie@2.3.2, form-data@2.1.2, hawk@3.1.3, http-signature@1.1.1, har-validator@2.0.6) ├── winston-syslog@1.2.5 (cycle@1.0.3, glossy@0.1.7, unix-dgram@0.2.3) ├── yargs@6.5.0 (get-caller-file@1.0.2, camelcase@3.0.0, decamelize@1.2.0, y18n@3.2.1, which-module@1.0.0, set-blocking@2.0.0, window-size@0.2.0, yargs-parser@4.2.0, require-main-filename@1.0.1, require-directory@2.1.1, cliui@3.2.0, string-width@1.0.2, os-locale@1.4.0, read-pkg-up@1.0.1) ├── tar.gz@1.0.5 (commander@2.9.0, bluebird@2.11.0, tar@2.2.1, fstream@1.0.10, mout@0.11.1) ├── jszip@3.1.3 (es6-promise@3.0.2, lie@3.1.0, pako@1.0.4, readable-stream@2.0.6, core-js@2.3.0) ├── letsencrypt@2.1.8 (le-store-certbot@2.0.3, homedir@0.6.0, asn1js@1.2.12, le-acme-core@2.0.7, localhost.daplie.com-certificates@1.2.3, pkijs@1.3.33, certpem@1.0.1, le-challenge-sni@2.0.1, rsa-compat@1.2.7) └── npm@2.15.11 !
Wenn ich meine spärlichen Linux-Kenntnisse mit Logik kombiniere scheint es an den Zugriffsrechten zu /root/.node-gyp/4.6.1 zu liegen.
Könnte ich nach
sudo chmod -R 777 /root/.node-gyp/4.6.1
einen erneuten Versuch wagen?
Aber: laut WinSCP gibt es das Verzeichnis /root/.node-gyp/4.6.1 nicht???
-
Edit: Syntax war falsch angegeben, das "r" muss "R" sein. `
:oops: :oops: :oops:Aber: laut WinSCP gibt es das Verzeichnis /root/.node-gyp/4.6.1 nicht??? `
der Punkt davor bedeutet dass es ein verstecktes Verzeichnis ist.kann also sein, dass winscp das nicht sieht.
ansonsten kannst du mal versuchen, das ganze als echter root (nicht nur sudo) auszuführen, entweder als root einloggen, oder mit sudo su auf root umstellen
ioBroker läuft wieder. Danke!!! `
Na dann frohe WeihnachtenGruß
Rainer
-
Die SuFu wirkt hier manchmal Wunder. Das Problem mit dem Update hatte ich letztens auch.