NEWS
Installation-Problem auf Ubuntu 18.04 wegen node/nodejs
-
Hallo zusammen,
ich bin neu hier und möchte mich kurz vorstellen:
Ich heiße Markus und betreibe mein Smarthome seit 2016 per FHEM.
Zunächst wie oft üblich auf Raspis und schließlich auf einem Intel NUC (FHEM 5.8 |intel NUC Core i3: Ubuntu 18.04 | z-Wave: Aeon Labs USB Stick | Jeelink (v3c): LaCrosse-Sensoren | DuoFern Stick: Rademacher Gurtwickler | Philips Hue Bridge | CUNX: HomeMatic, EnOcean-Pigator)Ich spiele schon seit längerem mit dem Gedanken ergänzend über den FHEM-Adapter iobroker einzusetzen. Leider scheitere ich derzeit an einer verkorksten node/nodejs Installation.
Ich bin absolut kein Linux-Profi und habe mir diese beim Versuch den Alexa-Skill für FHEM ans Laufen zu bekommen, eingehandelt.
Das Problem: node und nodejs haben unterschiedliche Versionen:
markus@Jarvis4:~$ nodejs -v v10.19.0 markus@Jarvis4:~$ node -v v12.14.1 markus@Jarvis4:~$ npm -v 6.13.4
Und ich bekomme trotz der Anleitung hier https://www.iobroker.net/#de/documentation/install/linux.md node und npm nicht deinstalliert.
Ich vermute, dass ich es irgendwie geschafft habe, das unter meinem home/markus- Verzeichnis zu installieren, weshalb die Anleitung:
sudo apt-get --purge remove node
sudo apt-get --purge remove nodejs
sudo apt-get autoremove
sudo reboot
nicht klappt.
nach dem Reboot zeigen die -v Befehle nachwievor eine Version an.
Die eigentliche Installation von ioBroker bringt dann auch prompt merkwürdige Compilerfehler:
========================================================================== Installing ioBroker (3/4) ========================================================================== ../src/serialport.cpp: In function \u2018Nan::NAN_METHOD_RETURN_TYPE Open(Nan::NAN_METHOD_ARGS_TYPE)\u2019: ../src/serialport.cpp:41:48: error: no matching function for call to \u2018v8::Value::ToString()\u2019 v8::String::Utf8Value path(info[0]->ToString()); ^ In file included from /home/markus/.cache/node-gyp/12.14.1/include/node/node.h:63:0, from ../../nan/nan.h:54, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2572:44: note: candidate: v8::MaybeLocal<v8::String> v8::Value::ToString(v8::Local<v8::Context>) const V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString( ^~~~~~~~ /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2572:44: note: candidate expects 1 argument, 0 provided In file included from /home/markus/.cache/node-gyp/12.14.1/include/node/v8-internal.h:14:0, from /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:25, from /home/markus/.cache/node-gyp/12.14.1/include/node/node.h:63, from ../../nan/nan.h:54, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2588:31: note: candidate: v8::Local<v8::String> v8::Value::ToString(v8::Isolate*) const Local<String> ToString(Isolate* isolate) const); ^ /home/markus/.cache/node-gyp/12.14.1/include/node/v8config.h:311:3: note: in definition of macro \u2018V8_DEPRECATED\u2019 declarator __attribute__((deprecated(message))) ^~~~~~~~~~ /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2588:31: note: candidate expects 1 argument, 0 provided Local<String> ToString(Isolate* isolate) const); ^ /home/markus/.cache/node-gyp/12.14.1/include/node/v8config.h:311:3: note: in definition of macro \u2018V8_DEPRECATED\u2019 declarator __attribute__((deprecated(message))) ^~~~~~~~~~ ../src/serialport.cpp:48:53: error: no matching function for call to \u2018v8::Value::ToObject()\u2019 v8::Local<v8::Object> options = info[1]->ToObject(); ^ In file included from /home/markus/.cache/node-gyp/12.14.1/include/node/node.h:63:0, from ../../nan/nan.h:54, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2576:44: note: candidate: v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject( ^~~~~~~~ /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2576:44: note: candidate expects 1 argument, 0 provided In file included from /home/markus/.cache/node-gyp/12.14.1/include/node/v8-internal.h:14:0, from /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:25, from /home/markus/.cache/node-gyp/12.14.1/include/node/node.h:63, from ../../nan/nan.h:54, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2590:31: note: candidate: v8::Local<v8::Object> v8::Value::ToObject(v8::Isolate*) const Local<Object> ToObject(Isolate* isolate) const); ^ /home/markus/.cache/node-gyp/12.14.1/include/node/v8config.h:311:3: note: in definition of macro \u2018V8_DEPRECATED\u2019 declarator __attribute__((deprecated(message))) ^~~~~~~~~~ /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2590:31: note: candidate expects 1 argument, 0 provided Local<Object> ToObject(Isolate* isolate) const); ^ /home/markus/.cache/node-gyp/12.14.1/include/node/v8config.h:311:3: note: in definition of macro \u2018V8_DEPRECATED\u2019 declarator __attribute__((deprecated(message))) ^~~~~~~~~~ ../src/serialport.cpp: In function \u2018void EIO_AfterOpen(uv_work_t*)\u2019: ../src/serialport.cpp:95:30: warning: \u2018v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const\u2019 is deprecated [-Wdeprecated-declarations] data->callback.Call(2, argv); ^ In file included from ../src/./serialport.h:6:0, from ../src/serialport.cpp:1: ../../nan/nan.h:1740:3: note: declared here Call(int argc, v8::Local<v8::Value> argv[]) const { ^~~~ ../src/serialport.cpp: In function \u2018Nan::NAN_METHOD_RETURN_TYPE Update(Nan::NAN_METHOD_ARGS_TYPE)\u2019: ../src/serialport.cpp:113:53: error: no matching function for call to \u2018v8::Value::ToObject()\u2019 v8::Local<v8::Object> options = info[1]->ToObject(); ^ In file included from /home/markus/.cache/node-gyp/12.14.1/include/node/node.h:63:0, from ../../nan/nan.h:54, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2576:44: note: candidate: v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject( ^~~~~~~~ /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2576:44: note: candidate expects 1 argument, 0 provided In file included from /home/markus/.cache/node-gyp/12.14.1/include/node/v8-internal.h:14:0, from /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:25, from /home/markus/.cache/node-gyp/12.14.1/include/node/node.h:63, from ../../nan/nan.h:54, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2590:31: note: candidate: v8::Local<v8::Object> v8::Value::ToObject(v8::Isolate*) const Local<Object> ToObject(Isolate* isolate) const); ^ /home/markus/.cache/node-gyp/12.14.1/include/node/v8config.h:311:3: note: in definition of macro \u2018V8_DEPRECATED\u2019 declarator __attribute__((deprecated(message))) ^~~~~~~~~~ /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2590:31: note: candidate expects 1 argument, 0 provided Local<Object> ToObject(Isolate* isolate) const); ^ /home/markus/.cache/node-gyp/12.14.1/include/node/v8config.h:311:3: note: in definition of macro \u2018V8_DEPRECATED\u2019 declarator __attribute__((deprecated(message))) ^~~~~~~~~~ ../src/serialport.cpp: In function \u2018void EIO_AfterUpdate(uv_work_t*)\u2019: ../src/serialport.cpp:150:30: warning: \u2018v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const\u2019 is deprecated [-Wdeprecated-declarations] data->callback.Call(1, argv); ^ In file included from ../src/./serialport.h:6:0, from ../src/serialport.cpp:1: ../../nan/nan.h:1740:3: note: declared here Call(int argc, v8::Local<v8::Value> argv[]) const { ^~~~ ../src/serialport.cpp: In function \u2018void EIO_AfterClose(uv_work_t*)\u2019: ../src/serialport.cpp:188:30: warning: \u2018v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const\u2019 is deprecated [-Wdeprecated-declarations] data->callback.Call(1, argv); ^ In file included from ../src/./serialport.h:6:0, from ../src/serialport.cpp:1: ../../nan/nan.h:1740:3: note: declared here Call(int argc, v8::Local<v8::Value> argv[]) const { ^~~~ ../src/serialport.cpp: In function \u2018void EIO_AfterFlush(uv_work_t*)\u2019: ../src/serialport.cpp:231:30: warning: \u2018v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const\u2019 is deprecated [-Wdeprecated-declarations] data->callback.Call(1, argv); ^ In file included from ../src/./serialport.h:6:0, from ../src/serialport.cpp:1: ../../nan/nan.h:1740:3: note: declared here Call(int argc, v8::Local<v8::Value> argv[]) const { ^~~~ ../src/serialport.cpp: In function \u2018Nan::NAN_METHOD_RETURN_TYPE Set(Nan::NAN_METHOD_ARGS_TYPE)\u2019: ../src/serialport.cpp:250:53: error: no matching function for call to \u2018v8::Value::ToObject()\u2019 v8::Local<v8::Object> options = info[1]->ToObject(); ^ In file included from /home/markus/.cache/node-gyp/12.14.1/include/node/node.h:63:0, from ../../nan/nan.h:54, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2576:44: note: candidate: v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject( ^~~~~~~~ /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2576:44: note: candidate expects 1 argument, 0 provided In file included from /home/markus/.cache/node-gyp/12.14.1/include/node/v8-internal.h:14:0, from /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:25, from /home/markus/.cache/node-gyp/12.14.1/include/node/node.h:63, from ../../nan/nan.h:54, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2590:31: note: candidate: v8::Local<v8::Object> v8::Value::ToObject(v8::Isolate*) const Local<Object> ToObject(Isolate* isolate) const); ^ /home/markus/.cache/node-gyp/12.14.1/include/node/v8config.h:311:3: note: in definition of macro \u2018V8_DEPRECATED\u2019 declarator __attribute__((deprecated(message))) ^~~~~~~~~~ /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2590:31: note: candidate expects 1 argument, 0 provided Local<Object> ToObject(Isolate* isolate) const); ^ /home/markus/.cache/node-gyp/12.14.1/include/node/v8config.h:311:3: note: in definition of macro \u2018V8_DEPRECATED\u2019 declarator __attribute__((deprecated(message))) ^~~~~~~~~~ ../src/serialport.cpp: In function \u2018void EIO_AfterSet(uv_work_t*)\u2019: ../src/serialport.cpp:285:30: warning: \u2018v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const\u2019 is deprecated [-Wdeprecated-declarations] data->callback.Call(1, argv); ^ In file included from ../src/./serialport.h:6:0, from ../src/serialport.cpp:1: ../../nan/nan.h:1740:3: note: declared here Call(int argc, v8::Local<v8::Value> argv[]) const { ^~~~ ../src/serialport.cpp: In function \u2018void EIO_AfterGet(uv_work_t*)\u2019: ../src/serialport.cpp:329:96: warning: \u2018bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)\u2019 is deprecated: Use maybe version [-Wdeprecated-declarations] results->Set(Nan::New<v8::String>("cts").ToLocalChecked(), Nan::New<v8::Boolean>(data->cts)); ^ In file included from /home/markus/.cache/node-gyp/12.14.1/include/node/v8-internal.h:14:0, from /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:25, from /home/markus/.cache/node-gyp/12.14.1/include/node/node.h:63, from ../../nan/nan.h:54, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:3403:22: note: declared here bool Set(Local<Value> key, Local<Value> value)); ^ /home/markus/.cache/node-gyp/12.14.1/include/node/v8config.h:311:3: note: in definition of macro \u2018V8_DEPRECATED\u2019 declarator __attribute__((deprecated(message))) ^~~~~~~~~~ ../src/serialport.cpp:330:96: warning: \u2018bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)\u2019 is deprecated: Use maybe version [-Wdeprecated-declarations] results->Set(Nan::New<v8::String>("dsr").ToLocalChecked(), Nan::New<v8::Boolean>(data->dsr)); ^ In file included from /home/markus/.cache/node-gyp/12.14.1/include/node/v8-internal.h:14:0, from /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:25, from /home/markus/.cache/node-gyp/12.14.1/include/node/node.h:63, from ../../nan/nan.h:54, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:3403:22: note: declared here bool Set(Local<Value> key, Local<Value> value)); ^ /home/markus/.cache/node-gyp/12.14.1/include/node/v8config.h:311:3: note: in definition of macro \u2018V8_DEPRECATED\u2019 declarator __attribute__((deprecated(message))) ^~~~~~~~~~ ../src/serialport.cpp:331:96: warning: \u2018bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)\u2019 is deprecated: Use maybe version [-Wdeprecated-declarations] results->Set(Nan::New<v8::String>("dcd").ToLocalChecked(), Nan::New<v8::Boolean>(data->dcd)); ^ In file included from /home/markus/.cache/node-gyp/12.14.1/include/node/v8-internal.h:14:0, from /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:25, from /home/markus/.cache/node-gyp/12.14.1/include/node/node.h:63, from ../../nan/nan.h:54, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:3403:22: note: declared here bool Set(Local<Value> key, Local<Value> value)); ^ /home/markus/.cache/node-gyp/12.14.1/include/node/v8config.h:311:3: note: in definition of macro \u2018V8_DEPRECATED\u2019 declarator __attribute__((deprecated(message))) ^~~~~~~~~~ ../src/serialport.cpp:336:30: warning: \u2018v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const\u2019 is deprecated [-Wdeprecated-declarations] data->callback.Call(2, argv); ^ In file included from ../src/./serialport.h:6:0, from ../src/serialport.cpp:1: ../../nan/nan.h:1740:3: note: declared here Call(int argc, v8::Local<v8::Value> argv[]) const { ^~~~ ../src/serialport.cpp: In function \u2018void EIO_AfterGetBaudRate(uv_work_t*)\u2019: ../src/serialport.cpp:378:106: warning: \u2018bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)\u2019 is deprecated: Use maybe version [-Wdeprecated-declarations] results->Set(Nan::New<v8::String>("baudRate").ToLocalChecked(), Nan::New<v8::Integer>(data->baudRate)); ^ In file included from /home/markus/.cache/node-gyp/12.14.1/include/node/v8-internal.h:14:0, from /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:25, from /home/markus/.cache/node-gyp/12.14.1/include/node/node.h:63, from ../../nan/nan.h:54, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:3403:22: note: declared here bool Set(Local<Value> key, Local<Value> value)); ^ /home/markus/.cache/node-gyp/12.14.1/include/node/v8config.h:311:3: note: in definition of macro \u2018V8_DEPRECATED\u2019 declarator __attribute__((deprecated(message))) ^~~~~~~~~~ ../src/serialport.cpp:383:30: warning: \u2018v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const\u2019 is deprecated [-Wdeprecated-declarations] data->callback.Call(2, argv); ^ In file included from ../src/./serialport.h:6:0, from ../src/serialport.cpp:1: ../../nan/nan.h:1740:3: note: declared here Call(int argc, v8::Local<v8::Value> argv[]) const { ^~~~ ../src/serialport.cpp: In function \u2018void EIO_AfterDrain(uv_work_t*)\u2019: ../src/serialport.cpp:424:30: warning: \u2018v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const\u2019 is deprecated [-Wdeprecated-declarations] data->callback.Call(1, argv); ^ In file included from ../src/./serialport.h:6:0, from ../src/serialport.cpp:1: ../../nan/nan.h:1740:3: note: declared here Call(int argc, v8::Local<v8::Value> argv[]) const { ^~~~ ../src/serialport.cpp: At global scope: ../src/serialport.cpp:460:17: error: variable or field \u2018init\u2019 declared void void init(v8::Handle<v8::Object> target) { ^~~~~~ ../src/serialport.cpp:460:17: error: \u2018Handle\u2019 is not a member of \u2018v8\u2019 ../src/serialport.cpp:460:34: error: expected primary-expression before \u2018>\u2019 token void init(v8::Handle<v8::Object> target) { ^ ../src/serialport.cpp:460:36: error: \u2018target\u2019 was not declared in this scope void init(v8::Handle<v8::Object> target) { ^~~~~~ ../src/serialport.cpp:460:36: note: suggested alternative: \u2018tzset\u2019 void init(v8::Handle<v8::Object> target) { ^~~~~~ tzset In file included from ../../nan/nan.h:54:0, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: ../src/serialport.cpp:485:25: error: \u2018init\u2019 was not declared in this scope NODE_MODULE(serialport, init); ^ /home/markus/.cache/node-gyp/12.14.1/include/node/node.h:560:36: note: in definition of macro \u2018NODE_MODULE_X\u2019 (node::addon_register_func) (regfunc), \ ^~~~~~~ ../src/serialport.cpp:485:1: note: in expansion of macro \u2018NODE_MODULE\u2019 NODE_MODULE(serialport, init); ^~~~~~~~~~~ ../src/serialport.cpp:485:25: note: suggested alternative: \u2018int\u2019 NODE_MODULE(serialport, init); ^ /home/markus/.cache/node-gyp/12.14.1/include/node/node.h:560:36: note: in definition of macro \u2018NODE_MODULE_X\u2019 (node::addon_register_func) (regfunc), \ ^~~~~~~ ../src/serialport.cpp:485:1: note: in expansion of macro \u2018NODE_MODULE\u2019 NODE_MODULE(serialport, init); ^~~~~~~~~~~ make: *** [Release/obj.target/serialport/src/serialport.o] Error 1 gyp ERR! build error gyp ERR! stack Error: `make` failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/home/markus/.nvm/versions/node/v12.14.1/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23) gyp ERR! stack at ChildProcess.emit (events.js:223:5) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12) gyp ERR! System Linux 4.15.0-91-generic gyp ERR! command "/home/markus/.nvm/versions/node/v12.14.1/bin/node" "/home/markus/.nvm/versions/node/v12.14.1/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /opt/iobroker/node_modules/serialport gyp ERR! node -v v12.14.1 gyp ERR! node-gyp -v v5.0.5 gyp ERR! not ok ../src/serialport.cpp: In function \u2018Nan::NAN_METHOD_RETURN_TYPE Open(Nan::NAN_METHOD_ARGS_TYPE)\u2019: ../src/serialport.cpp:41:48: error: no matching function for call to \u2018v8::Value::ToString()\u2019 v8::String::Utf8Value path(info[0]->ToString()); ^ In file included from /home/markus/.cache/node-gyp/12.14.1/include/node/node.h:63:0, from ../../nan/nan.h:54, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2572:44: note: candidate: v8::MaybeLocal<v8::String> v8::Value::ToString(v8::Local<v8::Context>) const V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString( ^~~~~~~~ /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2572:44: note: candidate expects 1 argument, 0 provided In file included from /home/markus/.cache/node-gyp/12.14.1/include/node/v8-internal.h:14:0, from /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:25, from /home/markus/.cache/node-gyp/12.14.1/include/node/node.h:63, from ../../nan/nan.h:54, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2588:31: note: candidate: v8::Local<v8::String> v8::Value::ToString(v8::Isolate*) const Local<String> ToString(Isolate* isolate) const); ^ /home/markus/.cache/node-gyp/12.14.1/include/node/v8config.h:311:3: note: in definition of macro \u2018V8_DEPRECATED\u2019 declarator __attribute__((deprecated(message))) ^~~~~~~~~~ /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2588:31: note: candidate expects 1 argument, 0 provided Local<String> ToString(Isolate* isolate) const); ^ /home/markus/.cache/node-gyp/12.14.1/include/node/v8config.h:311:3: note: in definition of macro \u2018V8_DEPRECATED\u2019 declarator __attribute__((deprecated(message))) ^~~~~~~~~~ ../src/serialport.cpp:48:53: error: no matching function for call to \u2018v8::Value::ToObject()\u2019 v8::Local<v8::Object> options = info[1]->ToObject(); ^ In file included from /home/markus/.cache/node-gyp/12.14.1/include/node/node.h:63:0, from ../../nan/nan.h:54, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2576:44: note: candidate: v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject( ^~~~~~~~ /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2576:44: note: candidate expects 1 argument, 0 provided In file included from /home/markus/.cache/node-gyp/12.14.1/include/node/v8-internal.h:14:0, from /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:25, from /home/markus/.cache/node-gyp/12.14.1/include/node/node.h:63, from ../../nan/nan.h:54, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2590:31: note: candidate: v8::Local<v8::Object> v8::Value::ToObject(v8::Isolate*) const Local<Object> ToObject(Isolate* isolate) const); ^ /home/markus/.cache/node-gyp/12.14.1/include/node/v8config.h:311:3: note: in definition of macro \u2018V8_DEPRECATED\u2019 declarator __attribute__((deprecated(message))) ^~~~~~~~~~ /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2590:31: note: candidate expects 1 argument, 0 provided Local<Object> ToObject(Isolate* isolate) const); ^ /home/markus/.cache/node-gyp/12.14.1/include/node/v8config.h:311:3: note: in definition of macro \u2018V8_DEPRECATED\u2019 declarator __attribute__((deprecated(message))) ^~~~~~~~~~ ../src/serialport.cpp: In function \u2018void EIO_AfterOpen(uv_work_t*)\u2019: ../src/serialport.cpp:95:30: warning: \u2018v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const\u2019 is deprecated [-Wdeprecated-declarations] data->callback.Call(2, argv); ^ In file included from ../src/./serialport.h:6:0, from ../src/serialport.cpp:1: ../../nan/nan.h:1740:3: note: declared here Call(int argc, v8::Local<v8::Value> argv[]) const { ^~~~ ../src/serialport.cpp: In function \u2018Nan::NAN_METHOD_RETURN_TYPE Update(Nan::NAN_METHOD_ARGS_TYPE)\u2019: ../src/serialport.cpp:113:53: error: no matching function for call to \u2018v8::Value::ToObject()\u2019 v8::Local<v8::Object> options = info[1]->ToObject(); ^ In file included from /home/markus/.cache/node-gyp/12.14.1/include/node/node.h:63:0, from ../../nan/nan.h:54, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2576:44: note: candidate: v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject( ^~~~~~~~ /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2576:44: note: candidate expects 1 argument, 0 provided In file included from /home/markus/.cache/node-gyp/12.14.1/include/node/v8-internal.h:14:0, from /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:25, from /home/markus/.cache/node-gyp/12.14.1/include/node/node.h:63, from ../../nan/nan.h:54, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2590:31: note: candidate: v8::Local<v8::Object> v8::Value::ToObject(v8::Isolate*) const Local<Object> ToObject(Isolate* isolate) const); ^ /home/markus/.cache/node-gyp/12.14.1/include/node/v8config.h:311:3: note: in definition of macro \u2018V8_DEPRECATED\u2019 declarator __attribute__((deprecated(message))) ^~~~~~~~~~ /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2590:31: note: candidate expects 1 argument, 0 provided Local<Object> ToObject(Isolate* isolate) const); ^ /home/markus/.cache/node-gyp/12.14.1/include/node/v8config.h:311:3: note: in definition of macro \u2018V8_DEPRECATED\u2019 declarator __attribute__((deprecated(message))) ^~~~~~~~~~ ../src/serialport.cpp: In function \u2018void EIO_AfterUpdate(uv_work_t*)\u2019: ../src/serialport.cpp:150:30: warning: \u2018v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const\u2019 is deprecated [-Wdeprecated-declarations] data->callback.Call(1, argv); ^ In file included from ../src/./serialport.h:6:0, from ../src/serialport.cpp:1: ../../nan/nan.h:1740:3: note: declared here Call(int argc, v8::Local<v8::Value> argv[]) const { ^~~~ ../src/serialport.cpp: In function \u2018void EIO_AfterClose(uv_work_t*)\u2019: ../src/serialport.cpp:188:30: warning: \u2018v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const\u2019 is deprecated [-Wdeprecated-declarations] data->callback.Call(1, argv); ^ In file included from ../src/./serialport.h:6:0, from ../src/serialport.cpp:1: ../../nan/nan.h:1740:3: note: declared here Call(int argc, v8::Local<v8::Value> argv[]) const { ^~~~ ../src/serialport.cpp: In function \u2018void EIO_AfterFlush(uv_work_t*)\u2019: ../src/serialport.cpp:231:30: warning: \u2018v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const\u2019 is deprecated [-Wdeprecated-declarations] data->callback.Call(1, argv); ^ In file included from ../src/./serialport.h:6:0, from ../src/serialport.cpp:1: ../../nan/nan.h:1740:3: note: declared here Call(int argc, v8::Local<v8::Value> argv[]) const { ^~~~ ../src/serialport.cpp: In function \u2018Nan::NAN_METHOD_RETURN_TYPE Set(Nan::NAN_METHOD_ARGS_TYPE)\u2019: ../src/serialport.cpp:250:53: error: no matching function for call to \u2018v8::Value::ToObject()\u2019 v8::Local<v8::Object> options = info[1]->ToObject(); ^ In file included from /home/markus/.cache/node-gyp/12.14.1/include/node/node.h:63:0, from ../../nan/nan.h:54, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2576:44: note: candidate: v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject( ^~~~~~~~ /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2576:44: note: candidate expects 1 argument, 0 provided In file included from /home/markus/.cache/node-gyp/12.14.1/include/node/v8-internal.h:14:0, from /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:25, from /home/markus/.cache/node-gyp/12.14.1/include/node/node.h:63, from ../../nan/nan.h:54, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2590:31: note: candidate: v8::Local<v8::Object> v8::Value::ToObject(v8::Isolate*) const Local<Object> ToObject(Isolate* isolate) const); ^ /home/markus/.cache/node-gyp/12.14.1/include/node/v8config.h:311:3: note: in definition of macro \u2018V8_DEPRECATED\u2019 declarator __attribute__((deprecated(message))) ^~~~~~~~~~ /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:2590:31: note: candidate expects 1 argument, 0 provided Local<Object> ToObject(Isolate* isolate) const); ^ /home/markus/.cache/node-gyp/12.14.1/include/node/v8config.h:311:3: note: in definition of macro \u2018V8_DEPRECATED\u2019 declarator __attribute__((deprecated(message))) ^~~~~~~~~~ ../src/serialport.cpp: In function \u2018void EIO_AfterSet(uv_work_t*)\u2019: ../src/serialport.cpp:285:30: warning: \u2018v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const\u2019 is deprecated [-Wdeprecated-declarations] data->callback.Call(1, argv); ^ In file included from ../src/./serialport.h:6:0, from ../src/serialport.cpp:1: ../../nan/nan.h:1740:3: note: declared here Call(int argc, v8::Local<v8::Value> argv[]) const { ^~~~ ../src/serialport.cpp: In function \u2018void EIO_AfterGet(uv_work_t*)\u2019: ../src/serialport.cpp:329:96: warning: \u2018bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)\u2019 is deprecated: Use maybe version [-Wdeprecated-declarations] results->Set(Nan::New<v8::String>("cts").ToLocalChecked(), Nan::New<v8::Boolean>(data->cts)); ^ In file included from /home/markus/.cache/node-gyp/12.14.1/include/node/v8-internal.h:14:0, from /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:25, from /home/markus/.cache/node-gyp/12.14.1/include/node/node.h:63, from ../../nan/nan.h:54, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:3403:22: note: declared here bool Set(Local<Value> key, Local<Value> value)); ^ /home/markus/.cache/node-gyp/12.14.1/include/node/v8config.h:311:3: note: in definition of macro \u2018V8_DEPRECATED\u2019 declarator __attribute__((deprecated(message))) ^~~~~~~~~~ ../src/serialport.cpp:330:96: warning: \u2018bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)\u2019 is deprecated: Use maybe version [-Wdeprecated-declarations] results->Set(Nan::New<v8::String>("dsr").ToLocalChecked(), Nan::New<v8::Boolean>(data->dsr)); ^ In file included from /home/markus/.cache/node-gyp/12.14.1/include/node/v8-internal.h:14:0, from /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:25, from /home/markus/.cache/node-gyp/12.14.1/include/node/node.h:63, from ../../nan/nan.h:54, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:3403:22: note: declared here bool Set(Local<Value> key, Local<Value> value)); ^ /home/markus/.cache/node-gyp/12.14.1/include/node/v8config.h:311:3: note: in definition of macro \u2018V8_DEPRECATED\u2019 declarator __attribute__((deprecated(message))) ^~~~~~~~~~ ../src/serialport.cpp:331:96: warning: \u2018bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)\u2019 is deprecated: Use maybe version [-Wdeprecated-declarations] results->Set(Nan::New<v8::String>("dcd").ToLocalChecked(), Nan::New<v8::Boolean>(data->dcd)); ^ In file included from /home/markus/.cache/node-gyp/12.14.1/include/node/v8-internal.h:14:0, from /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:25, from /home/markus/.cache/node-gyp/12.14.1/include/node/node.h:63, from ../../nan/nan.h:54, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:3403:22: note: declared here bool Set(Local<Value> key, Local<Value> value)); ^ /home/markus/.cache/node-gyp/12.14.1/include/node/v8config.h:311:3: note: in definition of macro \u2018V8_DEPRECATED\u2019 declarator __attribute__((deprecated(message))) ^~~~~~~~~~ ../src/serialport.cpp:336:30: warning: \u2018v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const\u2019 is deprecated [-Wdeprecated-declarations] data->callback.Call(2, argv); ^ In file included from ../src/./serialport.h:6:0, from ../src/serialport.cpp:1: ../../nan/nan.h:1740:3: note: declared here Call(int argc, v8::Local<v8::Value> argv[]) const { ^~~~ ../src/serialport.cpp: In function \u2018void EIO_AfterGetBaudRate(uv_work_t*)\u2019: ../src/serialport.cpp:378:106: warning: \u2018bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)\u2019 is deprecated: Use maybe version [-Wdeprecated-declarations] results->Set(Nan::New<v8::String>("baudRate").ToLocalChecked(), Nan::New<v8::Integer>(data->baudRate)); ^ In file included from /home/markus/.cache/node-gyp/12.14.1/include/node/v8-internal.h:14:0, from /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:25, from /home/markus/.cache/node-gyp/12.14.1/include/node/node.h:63, from ../../nan/nan.h:54, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: /home/markus/.cache/node-gyp/12.14.1/include/node/v8.h:3403:22: note: declared here bool Set(Local<Value> key, Local<Value> value)); ^ /home/markus/.cache/node-gyp/12.14.1/include/node/v8config.h:311:3: note: in definition of macro \u2018V8_DEPRECATED\u2019 declarator __attribute__((deprecated(message))) ^~~~~~~~~~ ../src/serialport.cpp:383:30: warning: \u2018v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const\u2019 is deprecated [-Wdeprecated-declarations] data->callback.Call(2, argv); ^ In file included from ../src/./serialport.h:6:0, from ../src/serialport.cpp:1: ../../nan/nan.h:1740:3: note: declared here Call(int argc, v8::Local<v8::Value> argv[]) const { ^~~~ ../src/serialport.cpp: In function \u2018void EIO_AfterDrain(uv_work_t*)\u2019: ../src/serialport.cpp:424:30: warning: \u2018v8::Local<v8::Value> Nan::Callback::Call(int, v8::Local<v8::Value>*) const\u2019 is deprecated [-Wdeprecated-declarations] data->callback.Call(1, argv); ^ In file included from ../src/./serialport.h:6:0, from ../src/serialport.cpp:1: ../../nan/nan.h:1740:3: note: declared here Call(int argc, v8::Local<v8::Value> argv[]) const { ^~~~ ../src/serialport.cpp: At global scope: ../src/serialport.cpp:460:17: error: variable or field \u2018init\u2019 declared void void init(v8::Handle<v8::Object> target) { ^~~~~~ ../src/serialport.cpp:460:17: error: \u2018Handle\u2019 is not a member of \u2018v8\u2019 ../src/serialport.cpp:460:34: error: expected primary-expression before \u2018>\u2019 token void init(v8::Handle<v8::Object> target) { ^ ../src/serialport.cpp:460:36: error: \u2018target\u2019 was not declared in this scope void init(v8::Handle<v8::Object> target) { ^~~~~~ ../src/serialport.cpp:460:36: note: suggested alternative: \u2018tzset\u2019 void init(v8::Handle<v8::Object> target) { ^~~~~~ tzset In file included from ../../nan/nan.h:54:0, from ../src/./serialport.h:6, from ../src/serialport.cpp:1: ../src/serialport.cpp:485:25: error: \u2018init\u2019 was not declared in this scope NODE_MODULE(serialport, init); ^ /home/markus/.cache/node-gyp/12.14.1/include/node/node.h:560:36: note: in definition of macro \u2018NODE_MODULE_X\u2019 (node::addon_register_func) (regfunc), \ ^~~~~~~ ../src/serialport.cpp:485:1: note: in expansion of macro \u2018NODE_MODULE\u2019 NODE_MODULE(serialport, init); ^~~~~~~~~~~ ../src/serialport.cpp:485:25: note: suggested alternative: \u2018int\u2019 NODE_MODULE(serialport, init); ^ /home/markus/.cache/node-gyp/12.14.1/include/node/node.h:560:36: note: in definition of macro \u2018NODE_MODULE_X\u2019 (node::addon_register_func) (regfunc), \ ^~~~~~~ ../src/serialport.cpp:485:1: note: in expansion of macro \u2018NODE_MODULE\u2019 NODE_MODULE(serialport, init); ^~~~~~~~~~~ make: *** [Release/obj.target/serialport/src/serialport.o] Error 1 gyp ERR! build error gyp ERR! stack Error: `make` failed with exit code: 2 gyp ERR! stack at ChildProcess.onExit (/home/markus/.nvm/versions/node/v12.14.1/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23) gyp ERR! stack at ChildProcess.emit (events.js:223:5) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12) gyp ERR! System Linux 4.15.0-91-generic gyp ERR! command "/home/markus/.nvm/versions/node/v12.14.1/bin/node" "/home/markus/.nvm/versions/node/v12.14.1/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /opt/iobroker/node_modules/serialport gyp ERR! node -v v12.14.1 gyp ERR! node-gyp -v v5.0.5 gyp ERR! not ok ========================================================================== Finalizing installation (4/4) ========================================================================== Enabling autostart... Autostart enabled! Fixing directory permissions... ========================================================================== ioBroker was installed successfully Open http://192.168.178.74 172.17.0.1:8081 in a browser and start configuring! ========================================================================== You need to re-login before doing anything else on the console! markus@Jarvis4:~$
"ioBroker was installed successfully", lässt mich angesichts obiger Unstimmigkeiten etwas verunsichert zurück.
Auch die merkwürdige url mit den 2 IP-Adressen macht wenig Sinn:
Open http://192.168.178.74 172.17.0.1:8081 in a browser and start configuring!
Sinnvoller wäre
http://192.168.178.74:8081
Wenn ich diese URL aufrufe, komme ich tatsächlich in die initiale Konfiguration von ioBroker.
Meine Frage: habe ich nun trotz obiger Umstände ein stabiles System, mit dem es sich weiterzuarbeiten lohnt, oder sollte hier zunächst einiges gerade gezogen werden, bevor ich mit ioBroker durchstarten kann?
Gruß
Markus -
@ioMarkusBroker sagte in Installation-Problem auf Ubuntu 18.04 wegen node/nodejs:
Und ich bekomme trotz der Anleitung hier https://www.iobroker.net/#de/documentation/install/linux.md node und npm nicht deinstalliert.
bist du wirklich genau nach dieser Anleitung vorgegangen?
Hast du alle Schritte einzeln abgearbeitet und befolgt?@ioMarkusBroker sagte in Installation-Problem auf Ubuntu 18.04 wegen node/nodejs:
nach dem Reboot zeigen die -v Befehle nachwievor eine Version an.
dann waren nicht alle Vorversionen deinstalliert.
Wahrscheinlich ist eine weitere Installation über das Ubuntu-Repo aktiv und nicht nur die über das nodejs-RepoDie eigentliche Installation von ioBroker bringt dann auch prompt merkwürdige Compilerfehler:
die hätte dann gar nciht gestartet werden dürfenBitte fange noch einmal genau nach Anleitung an und mache die purge und -v Schritte einzeln und poste jeweils das Ergebnis ohne weitergemacht zu haben
-
Gelöscht...
-
@Homoran vielen Dank für deine Antwort!
Ich habe genau nach Anleitung gearbeitet (inkl. der Reboots dazwischen) und irgendwie tut es ja nun auch.
Ich zögere ein wenig, das jetzt alles kaputt zu machen, nur um hier die einzelnen Zwischenschritte noch mal posten zu können.
Ist es wirklich Pflicht, dass node und nodejs dieselbe Version haben?
Gruß
Markus -
@ioMarkusBroker sagte in Installation-Problem auf Ubuntu 18.04 wegen node/nodejs:
dass node und nodejs dieselbe Version haben?
das ist nicht das "echte" Problem sondern nur ein Hinweis darauf, dass zwei verschiedene node-Installationen existieren.
Kluge Köpfe haben gedacht es sei dann sinnvoll beide auf die gleiche Version zu bringen. Ist es aber nicht - man erkennt dann nur nicht mehr so einfach dass es zwei node.js installationen gibt, was die Suche nach der Ursache nur schwerer macht.Zwei Installationen parallel machen definitiv Probleme.
@ioMarkusBroker sagte in Installation-Problem auf Ubuntu 18.04 wegen node/nodejs:
Ich zögere ein wenig, das jetzt alles kaputt zu machen, nur um hier die einzelnen Zwischenschritte noch mal posten zu können.
Das ist deshalb die falsche Einstellung dazu
-
@meute said in Installation-Problem auf Ubuntu 18.04 wegen node/nodejs:
ich häng mich mal hier ran, weil ich das gleiche Problem habe.
Ich würde mal nicht sagen, dass das gleiche Problem ist.
Bei mir geht es primär um node/nodejs. Während die doppelte url einfach zu umgehen ist. Ich finde es daher nicht die feine Englische, hier einfach meinen thread zu hijacken.Gruß
Markus -
Gelöscht...
-
Hallo @Homoran
So jetzt noch mal die Schritte im Einzelnen:
Ausgangspunkt:
markus@Jarvis4:~$ nodejs -v v10.20.0 markus@Jarvis4:~$ npm -v 6.13.4 markus@Jarvis4:~$ node -v v12.14.1
Jetzt:
markus@Jarvis4:~$ sudo apt-get --purge remove node [sudo] Passwort für markus: Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig E: Paket node kann nicht gefunden werden.
Ergebnis:
markus@Jarvis4:~$ node -v v12.14.1
Wie bekomme ich node nun los?
Gruß
Markus -
@ioMarkusBroker sagte:
Wie bekomme ich node nun los?
Was ergibt ?
which node ls -l /usr/bin/node* ls -l /usr/local/bin/node*
-
Hallo Paul,
Danke für deine Antwort.
Hier meine Antworten:markus@Jarvis4:~$ which node /home/markus/.nvm/versions/node/v12.14.1/bin/node
markus@Jarvis4:~$ ls -l /usr/bin/node* -rwxr-xr-x 1 root root 41224832 Apr 8 12:34 /usr/bin/node lrwxrwxrwx 1 root root 24 Apr 4 12:09 /usr/bin/nodejs -> /etc/alternatives/nodejs
markus@Jarvis4:~$ ls -l /usr/local/bin/node* ls: Zugriff auf '/usr/local/bin/node*' nicht möglich: Datei oder Verzeichnis nicht gefunden
Als absoluter Linux-Laie, vermute ich mal, dass ich es irgendwie geschafft habe, nodejs im home meines users "markus" zu installieren?!
Was nun?
Gruß
Markus -
@ioMarkusBroker sagte:
nodejs im home meines users "markus" zu installieren?!
Ja, anscheinend mit nvm ?
Was ergibt ?/usr/bin/node -v nvm ls
-
@paul53 said in Installation-Problem auf Ubuntu 18.04 wegen node/nodejs:
/usr/bin/node -v
Hallo Paul,
hier das Ergebnis:
markus@Jarvis4:~$ /usr/bin/node -v v10.20.0 markus@Jarvis4:~$ nvm ls -> v12.14.1 system default -> 12.14.1 (-> v12.14.1) node -> stable (-> v12.14.1) (default) stable -> 12.14 (-> v12.14.1) (default) iojs -> N/A (default) unstable -> N/A (default) lts/* -> lts/erbium (-> v12.14.1) lts/argon -> v4.9.1 (-> N/A) lts/boron -> v6.17.1 (-> N/A) lts/carbon -> v8.17.0 (-> N/A) lts/dubnium -> v10.18.1 (-> N/A) lts/erbium -> v12.14.1
Gruß
Markus -
@ioMarkusBroker Versuch mal
nvm uninstall node
-
Hi,
[Ironie Ein]
@ioMarkusBroker sagte in Installation-Problem auf Ubuntu 18.04 wegen node/nodejs:
Ich habe genau nach Anleitung gearbeitet (inkl. der Reboots dazwischen) und irgendwie tut es ja nun auch.
Dann müssen wir uns wohl nochmal die Doku ansehen ... denn dort muss ja irgendwo was von „Node zusätzlich mit nvm installieren“ stehen
[Ironie Aus]
Sorry, musste jetzt einfach raus
Gruß,
Eric -
@eric2905 said in Installation-Problem auf Ubuntu 18.04 wegen node/nodejs:
Hi,
[Ironie Ein]
@ioMarkusBroker sagte in Installation-Problem auf Ubuntu 18.04 wegen node/nodejs:
Ich habe genau nach Anleitung gearbeitet (inkl. der Reboots dazwischen) und irgendwie tut es ja nun auch.
Dann müssen wir uns wohl nochmal die Doku ansehen ... denn dort muss ja irgendwo was von „Node zusätzlich mit nvm installieren“ stehen
[Ironie Aus]
Sorry, musste jetzt einfach raus
Gruß,
EricHallo Eric,
ganz oben im Thread habe ich geschrieben, dass ich mir die node/nodejs Installation vermutlich beim Versuch die Alexa-Anbindung für FHEM hinzubekommen, verstrubelt habe.
Die Doku zum Deinstallieren der Komponenten im Zusammenhang von ioBroker habe ich sehr wohl schrittweise befolgt.
Nur, dass da nichts von "nvm" steht.Das musste jetzt auch raus
Gruß
Markus -
@Thomas-Braun said in Installation-Problem auf Ubuntu 18.04 wegen node/nodejs:
@ioMarkusBroker Versuch mal
nvm uninstall node
Hallo Thomas,
Danke für den Tipp!
Ich habe zwischenzeitlich schon den halben ioBroker Kurs von "haus-automatisierung.com" durchgearbeitet und entsprechen schon viel im ioBroker eingerichtet.Bisher tut alles auch wunderbar.
Ich habe daher mittlerweile die Angst, wenn ich jetzt node deinstalliere, dass dann die ganze Arbeit futsch ist.
Dumm gefragt: wenn ioBroker so tut, kann ich node nicht einfach so lassen?Gruß
Markus -
@ioMarkusBroker said in Installation-Problem auf Ubuntu 18.04 wegen node/nodejs:
Dumm gefragt: wenn ioBroker so tut, kann ich node nicht einfach so lassen?
Würde ich nicht machen. Das komische Konstrukt führt früher oder später zu Problemen. Mach es sauber oder mach es neu (dann aber auch sauber).
Wenn du zuvor den ioBroker stoppst und dann nodejs richtig installierst passiert mit der ioBroker-Installation nix weiter.
-
@ioMarkusBroker sagte:
wenn ich jetzt node deinstalliere, dass dann die ganze Arbeit futsch ist.
Du hast eine passende Version.
markus@Jarvis4:~$ /usr/bin/node -v v10.20.0
Es pfuscht allerdings nvm dazwischen. Versuche mal
nvm deactivate node -v
-
@paul53 said in Installation-Problem auf Ubuntu 18.04 wegen node/nodejs:
@ioMarkusBroker sagte:
wenn ich jetzt node deinstalliere, dass dann die ganze Arbeit futsch ist.
Es pfuscht allerdings nvm dazwischen. Versuche mal
nvm deactivate node -v
Hallo Paul,
das hat tatsächlich geholfen:
markus@Jarvis4:~$ node -v v12.14.1 markus@Jarvis4:~$ nvm deactivate /home/markus/.nvm/*/bin removed from ${PATH} markus@Jarvis4:~$ node -v v10.20.0
Cool
Vielen Dank!Gruß
Markus -
Hallo Paul,
nvm deactivate
scheint nur temporär zu wirken.
Ich vermute, dass es nach einem Neustart des Systems wieder aktiv ist.Wie bekomme ich es denn endgültig los?
Gruß
Markus