NEWS
Update ioBroker klappt nicht - gelöst durch neuinstallation
-
https://forum.iobroker.net/topic/69038/iobroker-fix/5
dort scheint u.U. das selbe Problem zu sein - kann mich aber auch täuschen
-
die meldung hatte ich auch gesehen - gibt aber kein gcc-c++ paket unter debian
-
@dlaurenz enotempty und code 25 erinnert mich an https://forum.iobroker.net/topic/57337/fehler-25-217-oder-enotempty-bei-adapter-install-update
-
auch schon x-mal gemacht...
pi@io-fhem:~ $ find "/opt/iobroker/node_modules" -type d -iname ".*-????????" ! -iname ".local-chromium" -exec echo {} \; pi@io-fhem:~ $ sudo -H -u iobroker npm install iobroker.js-controller npm notice npm notice New major version of npm available! 9.8.1 -> 10.2.0 npm notice Changelog: https://github.com/npm/cli/releases/tag/v10.2.0 npm notice Run npm install -g npm@10.2.0 to update! npm notice npm ERR! code EACCES npm ERR! syscall mkdir npm ERR! path /home/pi/node_modules npm ERR! errno -13 npm ERR! Error: EACCES: permission denied, mkdir '/home/pi/node_modules' npm ERR! [Error: EACCES: permission denied, mkdir '/home/pi/node_modules'] { npm ERR! errno: -13, npm ERR! code: 'EACCES', npm ERR! syscall: 'mkdir', npm ERR! path: '/home/pi/node_modules' npm ERR! } npm ERR! npm ERR! The operation was rejected by your operating system. npm ERR! It is likely you do not have the permissions to access this file as the current user npm ERR! npm ERR! If you believe this might be a permissions issue, please double-check the npm ERR! permissions of the file and its containing directories, or try running npm ERR! the command again as root/Administrator. npm ERR! A complete log of this run can be found in: /home/iobroker/.npm/_logs/2023-10-12T10_31_49_005Z-debug-0.log pi@io-fhem:~ $ cd /opt/iobroker/ pi@io-fhem:/opt/iobroker $ sudo -H -u iobroker npm install iobroker.js-controller npm WARN deprecated dgram@1.0.1: npm is holding this package for security reasons. As it's a core Node module, we will not transfer it over to other users. You may safely remove the package from your dependencies. npm WARN deprecated har-validator@5.1.5: this library is no longer supported npm WARN deprecated debug@4.1.1: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797) npm WARN deprecated debug@4.1.1: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797) npm WARN deprecated debug@4.1.1: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797) npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142 npm WARN cleanup Failed to remove some directories [ npm WARN cleanup [ npm WARN cleanup '/opt/iobroker/node_modules/@abandonware/bluetooth-hci-socket', npm WARN cleanup [Error: ENOTEMPTY: directory not empty, rmdir '/opt/iobroker/node_modules/@abandonware/bluetooth-hci-socket/lib'] { npm WARN cleanup errno: -39, npm WARN cleanup code: 'ENOTEMPTY', npm WARN cleanup syscall: 'rmdir', npm WARN cleanup path: '/opt/iobroker/node_modules/@abandonware/bluetooth-hci-socket/lib' npm WARN cleanup } npm WARN cleanup ], npm WARN cleanup [ npm WARN cleanup '/opt/iobroker/node_modules/@abandonware/bluetooth-hci-socket', npm WARN cleanup [Error: ENOTEMPTY: directory not empty, rmdir '/opt/iobroker/node_modules/@abandonware/bluetooth-hci-socket/lib'] { npm WARN cleanup errno: -39, npm WARN cleanup code: 'ENOTEMPTY', npm WARN cleanup syscall: 'rmdir', npm WARN cleanup path: '/opt/iobroker/node_modules/@abandonware/bluetooth-hci-socket/lib' npm WARN cleanup } npm WARN cleanup ] npm WARN cleanup ] npm ERR! code 1 npm ERR! path /opt/iobroker/node_modules/@serialport/bindings npm ERR! command failed npm ERR! command sh -c prebuild-install --tag-prefix @serialport/bindings@ || node-gyp rebuild npm ERR! make: Verzeichnis „/opt/iobroker/node_modules/@serialport/bindings/build“ wird betreten npm ERR! CXX(target) Release/obj.target/bindings/src/serialport.o npm ERR! make: Verzeichnis „/opt/iobroker/node_modules/@serialport/bindings/build“ wird verlassen npm ERR! gyp info it worked if it ends with ok npm ERR! gyp info using node-gyp@9.4.0 npm ERR! gyp info using node@18.18.1 | linux | arm npm ERR! gyp info find Python using Python version 3.9.2 found at "/usr/bin/python3" npm ERR! gyp info spawn /usr/bin/python3 npm ERR! gyp info spawn args [ npm ERR! gyp info spawn args '/usr/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py', npm ERR! gyp info spawn args 'binding.gyp', npm ERR! gyp info spawn args '-f', npm ERR! gyp info spawn args 'make', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args '/opt/iobroker/node_modules/@serialport/bindings/build/config.gypi', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args '/usr/lib/node_modules/npm/node_modules/node-gyp/addon.gypi', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args '/home/iobroker/.cache/node-gyp/18.18.1/include/node/common.gypi', npm ERR! gyp info spawn args '-Dlibrary=shared_library', npm ERR! gyp info spawn args '-Dvisibility=default', npm ERR! gyp info spawn args '-Dnode_root_dir=/home/iobroker/.cache/node-gyp/18.18.1', npm ERR! gyp info spawn args '-Dnode_gyp_dir=/usr/lib/node_modules/npm/node_modules/node-gyp', npm ERR! gyp info spawn args '-Dnode_lib_file=/home/iobroker/.cache/node-gyp/18.18.1/<(target_arch)/node.lib', npm ERR! gyp info spawn args '-Dmodule_root_dir=/opt/iobroker/node_modules/@serialport/bindings', npm ERR! gyp info spawn args '-Dnode_engine=v8', npm ERR! gyp info spawn args '--depth=.', npm ERR! gyp info spawn args '--no-parallel', npm ERR! gyp info spawn args '--generator-output', npm ERR! gyp info spawn args 'build', npm ERR! gyp info spawn args '-Goutput_dir=.' npm ERR! gyp info spawn args ] npm ERR! gyp info spawn make npm ERR! gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ] npm ERR! ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Open(Nan::NAN_METHOD_ARGS_TYPE)’: npm ERR! ../src/serialport.cpp:78:51: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] npm ERR! 78 | uv_queue_work(uv_default_loop(), req, EIO_Open, (uv_after_work_cb)EIO_AfterOpen); npm ERR! | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm ERR! ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Update(Nan::NAN_METHOD_ARGS_TYPE)’: npm ERR! ../src/serialport.cpp:135:53: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] npm ERR! 135 | uv_queue_work(uv_default_loop(), req, EIO_Update, (uv_after_work_cb)EIO_AfterUpdate); npm ERR! | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm ERR! ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Close(Nan::NAN_METHOD_ARGS_TYPE)’: npm ERR! ../src/serialport.cpp:175:52: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] npm ERR! 175 | uv_queue_work(uv_default_loop(), req, EIO_Close, (uv_after_work_cb)EIO_AfterClose); npm ERR! | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm ERR! ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Flush(Nan::NAN_METHOD_ARGS_TYPE)’: npm ERR! ../src/serialport.cpp:215:52: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] npm ERR! 215 | uv_queue_work(uv_default_loop(), req, EIO_Flush, (uv_after_work_cb)EIO_AfterFlush); npm ERR! | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm ERR! ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Set(Nan::NAN_METHOD_ARGS_TYPE)’: npm ERR! ../src/serialport.cpp:270:50: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] npm ERR! 270 | uv_queue_work(uv_default_loop(), req, EIO_Set, (uv_after_work_cb)EIO_AfterSet); npm ERR! | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm ERR! ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Get(Nan::NAN_METHOD_ARGS_TYPE)’: npm ERR! ../src/serialport.cpp:314:50: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] npm ERR! 314 | uv_queue_work(uv_default_loop(), req, EIO_Get, (uv_after_work_cb)EIO_AfterGet); npm ERR! | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm ERR! ../src/serialport.cpp: In function ‘void EIO_AfterGet(uv_work_t*)’: npm ERR! ../src/serialport.cpp:329:96: error: no matching function for call to ‘v8::Object::Set(v8::Local<v8::String>, Nan::imp::FactoryBase<v8::Boolean>::return_t)’ npm ERR! 329 | results->Set(Nan::New<v8::String>("cts").ToLocalChecked(), Nan::New<v8::Boolean>(data->cts)); npm ERR! | ^ npm ERR! In file included from /home/iobroker/.cache/node-gyp/18.18.1/include/node/v8-array-buffer.h:13, npm ERR! from /home/iobroker/.cache/node-gyp/18.18.1/include/node/v8.h:24, npm ERR! from /home/iobroker/.cache/node-gyp/18.18.1/include/node/node.h:73, npm ERR! from ../../../nan/nan.h:62, npm ERR! from ../src/./serialport.h:6, npm ERR! from ../src/serialport.cpp:1: npm ERR! /home/iobroker/.cache/node-gyp/18.18.1/include/node/v8-object.h:244:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’ npm ERR! 244 | V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, npm ERR! | ^~~ npm ERR! /home/iobroker/.cache/node-gyp/18.18.1/include/node/v8-object.h:244:37: note: candidate expects 3 arguments, 2 provided npm ERR! /home/iobroker/.cache/node-gyp/18.18.1/include/node/v8-object.h:247:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)’ npm ERR! 247 | V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index, npm ERR! | ^~~ npm ERR! /home/iobroker/.cache/node-gyp/18.18.1/include/node/v8-object.h:247:37: note: candidate expects 3 arguments, 2 provided npm ERR! ../src/serialport.cpp:330:96: error: no matching function for call to ‘v8::Object::Set(v8::Local<v8::String>, Nan::imp::FactoryBase<v8::Boolean>::return_t)’ npm ERR! 330 | results->Set(Nan::New<v8::String>("dsr").ToLocalChecked(), Nan::New<v8::Boolean>(data->dsr)); npm ERR! | ^ npm ERR! In file included from /home/iobroker/.cache/node-gyp/18.18.1/include/node/v8-array-buffer.h:13, npm ERR! from /home/iobroker/.cache/node-gyp/18.18.1/include/node/v8.h:24, npm ERR! from /home/iobroker/.cache/node-gyp/18.18.1/include/node/node.h:73, npm ERR! from ../../../nan/nan.h:62, npm ERR! from ../src/./serialport.h:6, npm ERR! from ../src/serialport.cpp:1: npm ERR! /home/iobroker/.cache/node-gyp/18.18.1/include/node/v8-object.h:244:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’ npm ERR! 244 | V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, npm ERR! | ^~~ npm ERR! /home/iobroker/.cache/node-gyp/18.18.1/include/node/v8-object.h:244:37: note: candidate expects 3 arguments, 2 provided npm ERR! /home/iobroker/.cache/node-gyp/18.18.1/include/node/v8-object.h:247:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)’ npm ERR! 247 | V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index, npm ERR! | ^~~ npm ERR! /home/iobroker/.cache/node-gyp/18.18.1/include/node/v8-object.h:247:37: note: candidate expects 3 arguments, 2 provided npm ERR! ../src/serialport.cpp:331:96: error: no matching function for call to ‘v8::Object::Set(v8::Local<v8::String>, Nan::imp::FactoryBase<v8::Boolean>::return_t)’ npm ERR! 331 | results->Set(Nan::New<v8::String>("dcd").ToLocalChecked(), Nan::New<v8::Boolean>(data->dcd)); npm ERR! | ^ npm ERR! In file included from /home/iobroker/.cache/node-gyp/18.18.1/include/node/v8-array-buffer.h:13, npm ERR! from /home/iobroker/.cache/node-gyp/18.18.1/include/node/v8.h:24, npm ERR! from /home/iobroker/.cache/node-gyp/18.18.1/include/node/node.h:73, npm ERR! from ../../../nan/nan.h:62, npm ERR! from ../src/./serialport.h:6, npm ERR! from ../src/serialport.cpp:1: npm ERR! /home/iobroker/.cache/node-gyp/18.18.1/include/node/v8-object.h:244:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’ npm ERR! 244 | V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, npm ERR! | ^~~ npm ERR! /home/iobroker/.cache/node-gyp/18.18.1/include/node/v8-object.h:244:37: note: candidate expects 3 arguments, 2 provided npm ERR! /home/iobroker/.cache/node-gyp/18.18.1/include/node/v8-object.h:247:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)’ npm ERR! 247 | V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index, npm ERR! | ^~~ npm ERR! /home/iobroker/.cache/node-gyp/18.18.1/include/node/v8-object.h:247:37: note: candidate expects 3 arguments, 2 provided npm ERR! ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE GetBaudRate(Nan::NAN_METHOD_ARGS_TYPE)’: npm ERR! ../src/serialport.cpp:363:58: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] npm ERR! 363 | uv_queue_work(uv_default_loop(), req, EIO_GetBaudRate, (uv_after_work_cb)EIO_AfterGetBaudRate); npm ERR! | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm ERR! ../src/serialport.cpp: In function ‘void EIO_AfterGetBaudRate(uv_work_t*)’: npm ERR! ../src/serialport.cpp:378:106: error: no matching function for call to ‘v8::Object::Set(v8::Local<v8::String>, Nan::imp::IntegerFactory<v8::Integer>::return_t)’ npm ERR! 378 | results->Set(Nan::New<v8::String>("baudRate").ToLocalChecked(), Nan::New<v8::Integer>(data->baudRate)); npm ERR! | ^ npm ERR! In file included from /home/iobroker/.cache/node-gyp/18.18.1/include/node/v8-array-buffer.h:13, npm ERR! from /home/iobroker/.cache/node-gyp/18.18.1/include/node/v8.h:24, npm ERR! from /home/iobroker/.cache/node-gyp/18.18.1/include/node/node.h:73, npm ERR! from ../../../nan/nan.h:62, npm ERR! from ../src/./serialport.h:6, npm ERR! from ../src/serialport.cpp:1: npm ERR! /home/iobroker/.cache/node-gyp/18.18.1/include/node/v8-object.h:244:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, v8::Local<v8::Value>, v8::Local<v8::Value>)’ npm ERR! 244 | V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, npm ERR! | ^~~ npm ERR! /home/iobroker/.cache/node-gyp/18.18.1/include/node/v8-object.h:244:37: note: candidate expects 3 arguments, 2 provided npm ERR! /home/iobroker/.cache/node-gyp/18.18.1/include/node/v8-object.h:247:37: note: candidate: ‘v8::Maybe<bool> v8::Object::Set(v8::Local<v8::Context>, uint32_t, v8::Local<v8::Value>)’ npm ERR! 247 | V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index, npm ERR! | ^~~ npm ERR! /home/iobroker/.cache/node-gyp/18.18.1/include/node/v8-object.h:247:37: note: candidate expects 3 arguments, 2 provided npm ERR! ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Drain(Nan::NAN_METHOD_ARGS_TYPE)’: npm ERR! ../src/serialport.cpp:409:52: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] npm ERR! 409 | uv_queue_work(uv_default_loop(), req, EIO_Drain, (uv_after_work_cb)EIO_AfterDrain); npm ERR! | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm ERR! ../src/serialport.cpp: At global scope: npm ERR! ../src/serialport.cpp:430:28: warning: unnecessary parentheses in declaration of ‘ToParityEnum’ [-Wparentheses] npm ERR! 430 | SerialPortParity NAN_INLINE(ToParityEnum(const v8::Local<v8::String>& v8str)) { npm ERR! | ^ npm ERR! ../src/serialport.cpp:449:30: warning: unnecessary parentheses in declaration of ‘ToStopBitEnum’ [-Wparentheses] npm ERR! 449 | SerialPortStopBits NAN_INLINE(ToStopBitEnum(double stopBits)) { npm ERR! | ^ npm ERR! In file included from ../../../nan/nan.h:62, npm ERR! from ../src/./serialport.h:6, npm ERR! from ../src/serialport.cpp:1: npm ERR! /home/iobroker/.cache/node-gyp/18.18.1/include/node/node.h:1014:7: warning: cast between incompatible function types from ‘void (*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void (*)(v8::Local<v8::Object>)’} to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type] npm ERR! 1014 | (node::addon_register_func) (regfunc), \ npm ERR! | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ npm ERR! /home/iobroker/.cache/node-gyp/18.18.1/include/node/node.h:1048:3: note: in expansion of macro ‘NODE_MODULE_X’ npm ERR! 1048 | NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage) npm ERR! | ^~~~~~~~~~~~~ npm ERR! ../src/serialport.cpp:483:1: note: in expansion of macro ‘NODE_MODULE’ npm ERR! 483 | NODE_MODULE(serialport, init); npm ERR! | ^~~~~~~~~~~ npm ERR! make: *** [bindings.target.mk:114: Release/obj.target/bindings/src/serialport.o] Fehler 1 npm ERR! gyp ERR! build error npm ERR! gyp ERR! stack Error: `make` failed with exit code: 2 npm ERR! gyp ERR! stack at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:203:23) npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:517:28) npm ERR! gyp ERR! stack at ChildProcess._handle.onexit (node:internal/child_process:292:12) npm ERR! gyp ERR! System Linux 5.10.103-v7+ npm ERR! gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" npm ERR! gyp ERR! cwd /opt/iobroker/node_modules/@serialport/bindings npm ERR! gyp ERR! node -v v18.18.1 npm ERR! gyp ERR! node-gyp -v v9.4.0 npm ERR! gyp ERR! not ok npm ERR! A complete log of this run can be found in: /home/iobroker/.npm/_logs/2023-10-12T10_33_16_805Z-debug-0.log
-
@dlaurenz sagte in Update ioBroker klappt nicht:
Error: EACCES: permission denied, mkdir '/home/pi/node_modules'
Moin,
welche rechte haben den die angetackerten Dateien und Verzeichnisse?
VG
Bernd -
Du stehst im falschen Verzeichnis...
pi@io-fhem:~ $ sudo -H -u iobroker npm install iobroker.js-controller npm notice
-
@dlaurenz sagte in Update ioBroker klappt nicht:
npm ERR! code EACCES
doch noch verbogene Rechte durch root?
-
@homoran sagte in Update ioBroker klappt nicht:
doch noch verbogene Rechte durch root?
Nee, der user 'iobroker' darf dem user 'pi' aber keine Eier in's Nest legen.
Hier greifen die User-Rechte von Unix/Linux richtig ein.
Als root wäre das aber durchgescheppert. Weswegen man auch nicht als root herumhampelt. Aber das Thema hatten wir ja schon. -
@thomas-braun sagte in Update ioBroker klappt nicht:
Nee, der user 'iobroker' darf dem user 'pi' aber keine Eier in's Nest legen.
recht du hast! Hab falschrum gedacht, da pi in der Gruppe iobroker ist
-
@thomas-braun sagte in Update ioBroker klappt nicht:
Du stehst im falschen Verzeichnis...
ja, er stand erst im falschen Verzeichnis, ab Zeile 28 dann aber im richtigen Verzeichnis.