I'm triyng to understand why those errors appear. A node-red installation works well and fast installing and removing nodes from pallette until you install node-red-contrib-modbus. Then package installations stuck for some time on every operation.
-----------------------------------------------------------
2022-01-08T11:02:12.536Z Install : node-red-contrib-modbus 5.16.0
2022-01-08T11:02:12.128Z npm install --no-audit --no-update-notifier --no-fund --save --save-prefix=~ --production --engine-strict node-red-contrib-modbus@5.16.0
2022-01-08T11:04:45.424Z [out]
2022-01-08T11:04:45.424Z [out] > @serialport/bindings@9.2.8 install /data/home/root/.node-red/node_modules/@serialport/bindings
2022-01-08T11:04:45.424Z [out] > prebuild-install --tag-prefix @serialport/bindings@ || node-gyp rebuild
2022-01-08T11:04:45.424Z [out]
2022-01-08T11:04:49.257Z [err] prebuild-install
2022-01-08T11:04:49.258Z [err] WARN install No prebuilt binaries found (target=14.17.4 runtime=node arch=arm libc= platform=linux)
2022-01-08T11:04:57.296Z [out] make: Entering directory '/data/home/root/.node-red/node_modules/@serialport/bindings/build'
2022-01-08T11:04:57.301Z [out] CXX(target) Release/obj.target/bindings/src/serialport.o
2022-01-08T11:05:10.682Z [err] ../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE Open(Nan::NAN_METHOD_ARGS_TYPE)':
2022-01-08T11:05:10.682Z [err] ../src/serialport.cpp:78:69: 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]
2022-01-08T11:05:10.682Z [err] 78 | uv_queue_work(uv_default_loop(), req, EIO_Open, (uv_after_work_cb)EIO_AfterOpen);
2022-01-08T11:05:10.682Z [err] | ^~~~~~~~~~~~~
2022-01-08T11:05:10.743Z [err] ../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE Update(Nan::NAN_METHOD_ARGS_TYPE)':
2022-01-08T11:05:10.743Z [err] ../src/serialport.cpp:135:71: 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]
2022-01-08T11:05:10.743Z [err] 135 | uv_queue_work(uv_default_loop(), req, EIO_Update, (uv_after_work_cb)EIO_AfterUpdate);
2022-01-08T11:05:10.743Z [err] | ^~~~~~~~~~~~~~~
2022-01-08T11:05:10.763Z [err] ../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE Close(Nan::NAN_METHOD_ARGS_TYPE)':
2022-01-08T11:05:10.763Z [err] ../src/serialport.cpp:175:70: 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]
2022-01-08T11:05:10.763Z [err] 175 | uv_queue_work(uv_default_loop(), req, EIO_Close, (uv_after_work_cb)EIO_AfterClose);
2022-01-08T11:05:10.763Z [err] | ^~~~~~~~~~~~~~
2022-01-08T11:05:10.778Z [err] ../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE Flush(Nan::NAN_METHOD_ARGS_TYPE)':
2022-01-08T11:05:10.778Z [err] ../src/serialport.cpp:215:70: 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]
2022-01-08T11:05:10.778Z [err] 215 | uv_queue_work(uv_default_loop(), req, EIO_Flush, (uv_after_work_cb)EIO_AfterFlush);
2022-01-08T11:05:10.778Z [err] | ^~~~~~~~~~~~~~
2022-01-08T11:05:10.801Z [err] ../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE Set(Nan::NAN_METHOD_ARGS_TYPE)':
2022-01-08T11:05:10.801Z [err] ../src/serialport.cpp:271:68: 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]
2022-01-08T11:05:10.801Z [err] 271 | uv_queue_work(uv_default_loop(), req, EIO_Set, (uv_after_work_cb)EIO_AfterSet);
2022-01-08T11:05:10.801Z [err] | ^~~~~~~~~~~~
2022-01-08T11:05:10.817Z [err] ../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE Get(Nan::NAN_METHOD_ARGS_TYPE)':
2022-01-08T11:05:10.817Z [err] ../src/serialport.cpp:316:68: 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]
2022-01-08T11:05:10.817Z [err] 316 | uv_queue_work(uv_default_loop(), req, EIO_Get, (uv_after_work_cb)EIO_AfterGet);
2022-01-08T11:05:10.817Z [err] | ^~~~~~~~~~~~
2022-01-08T11:05:10.908Z [err] ../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE GetBaudRate(Nan::NAN_METHOD_ARGS_TYPE)':
2022-01-08T11:05:10.908Z [err] ../src/serialport.cpp:366:76: 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]
2022-01-08T11:05:10.908Z [err] 366 | uv_queue_work(uv_default_loop(), req, EIO_GetBaudRate, (uv_after_work_cb)EIO_AfterGetBaudRate);
2022-01-08T11:05:10.908Z [err] | ^~~~~~~~~~~~~~~~~~~~
2022-01-08T11:05:10.908Z [err] ../src/serialport.cpp: In function 'Nan::NAN_METHOD_RETURN_TYPE Drain(Nan::NAN_METHOD_ARGS_TYPE)':
2022-01-08T11:05:10.908Z [err] ../src/serialport.cpp:412:70: 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]
2022-01-08T11:05:10.908Z [err] 412 | uv_queue_work(uv_default_loop(), req, EIO_Drain, (uv_after_work_cb)EIO_AfterDrain);
2022-01-08T11:05:10.908Z [err] | ^~~~~~~~~~~~~~
2022-01-08T11:05:10.916Z [err] ../src/serialport.cpp: At global scope:
2022-01-08T11:05:10.916Z [err] ../src/serialport.cpp:433:28: warning: unnecessary parentheses in declaration of 'ToParityEnum' [-Wparentheses]
2022-01-08T11:05:10.916Z [err] 433 | SerialPortParity NAN_INLINE(ToParityEnum(const v8::Local<v8::String>& v8str)) {
2022-01-08T11:05:10.916Z [err] | ^
2022-01-08T11:05:10.926Z [err] ../src/serialport.cpp:452:30: warning: unnecessary parentheses in declaration of 'ToStopBitEnum' [-Wparentheses]
2022-01-08T11:05:10.926Z [err] 452 | SerialPortStopBits NAN_INLINE(ToStopBitEnum(double stopBits)) {
2022-01-08T11:05:10.926Z [err] | ^
2022-01-08T11:05:10.937Z [err] In file included from ../../../nan/nan.h:58,
2022-01-08T11:05:10.937Z [err] from ../src/./serialport.h:13,
2022-01-08T11:05:10.937Z [err] from ../src/serialport.cpp:1:
2022-01-08T11:05:10.937Z [err] /home/root/.cache/node-gyp/14.17.4/include/node/node.h:758:43: 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]
2022-01-08T11:05:10.937Z [err] 758 | (node::addon_register_func) (regfunc), \
2022-01-08T11:05:10.937Z [err] | ^
2022-01-08T11:05:10.937Z [err] /home/root/.cache/node-gyp/14.17.4/include/node/node.h:792:3: note: in expansion of macro 'NODE_MODULE_X'
2022-01-08T11:05:10.937Z [err] 792 | NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage)
2022-01-08T11:05:10.937Z [err] | ^~~~~~~~~~~~~
2022-01-08T11:05:10.937Z [err] ../src/serialport.cpp:486:1: note: in expansion of macro 'NODE_MODULE'
2022-01-08T11:05:10.937Z [err] 486 | NODE_MODULE(serialport, init);
2022-01-08T11:05:10.937Z [err] | ^~~~~~~~~~~
2022-01-08T11:05:23.520Z [out] CXX(target) Release/obj.target/bindings/src/serialport_unix.o
2022-01-08T11:05:36.746Z [err] ../src/serialport_unix.cpp: In function 'int setup(int, OpenBaton*)':
2022-01-08T11:05:36.746Z [err] ../src/serialport_unix.cpp:179:82: warning: '%s' directive output may be truncated writing up to 1023 bytes into a region of size 1005 [-Wformat-truncation=]
2022-01-08T11:05:36.746Z [err] 179 | snprintf(data->errorString, sizeof(data->errorString), "Error %s Cannot open %s", strerror(errno), data->path);
2022-01-08T11:05:36.746Z [err] | ^~
2022-01-08T11:05:36.747Z [err] ../src/serialport_unix.cpp:179:13: note: 'snprintf' output 20 or more bytes (assuming 1043) into a destination of size 1024
2022-01-08T11:05:36.747Z [err] 179 | snprintf(data->errorString, sizeof(data->errorString), "Error %s Cannot open %s", strerror(errno), data->path);
2022-01-08T11:05:36.747Z [err] | ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2022-01-08T11:05:36.958Z [err] ../src/serialport_unix.cpp: In function 'void EIO_Open(uv_work_t*)':
2022-01-08T11:05:36.958Z [err] ../src/serialport_unix.cpp:89:84: warning: '%s' directive output may be truncated writing up to 1023 bytes into a region of size 1003 [-Wformat-truncation=]
2022-01-08T11:05:36.958Z [err] 89 | snprintf(data->errorString, sizeof(data->errorString), "Error: %s, cannot open %s", strerror(errno), data->path);
2022-01-08T11:05:36.958Z [err] | ^~
2022-01-08T11:05:36.959Z [err] ../src/serialport_unix.cpp:89:13: note: 'snprintf' output 22 or more bytes (assuming 1045) into a destination of size 1024
2022-01-08T11:05:36.959Z [err] 89 | snprintf(data->errorString, sizeof(data->errorString), "Error: %s, cannot open %s", strerror(errno), data->path);
2022-01-08T11:05:36.959Z [err] | ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2022-01-08T11:05:37.657Z [out] CXX(target) Release/obj.target/bindings/src/poller.o
2022-01-08T11:05:55.205Z [out] CXX(target) Release/obj.target/bindings/src/serialport_linux.o
2022-01-08T11:05:55.945Z [out] SOLINK_MODULE(target) Release/obj.target/bindings.node
2022-01-08T11:05:56.773Z [out] COPY Release/bindings.node
2022-01-08T11:05:56.820Z [out] make: Leaving directory '/data/home/root/.node-red/node_modules/@serialport/bindings/build'
2022-01-08T11:05:58.839Z [out]
2022-01-08T11:05:58.839Z [out] > node-red-contrib-modbus@5.16.0 postinstall /data/home/root/.node-red/node_modules/node-red-contrib-modbus
2022-01-08T11:05:58.839Z [out] > node ./supporter.js
2022-01-08T11:05:58.839Z [out]
2022-01-08T11:06:00.465Z [out] e[96me[1mThank you for using our contribution!e[96me[1m
2022-01-08T11:06:00.465Z [out] e[0me[96mIf you rely on this package, please consider supporting our open source work:e[22me[39m
2022-01-08T11:06:00.465Z [out] > e[94mhttps://bianco-royal.space/supporter/e[0m
2022-01-08T11:06:00.465Z [out]
2022-01-08T11:06:00.465Z [out]
2022-01-08T11:06:05.530Z [out] + node-red-contrib-modbus@5.16.0
2022-01-08T11:06:05.530Z [out] added 302 packages from 342 contributors in 224.829s
2022-01-08T11:06:05.713Z rc=0
I'm also concerned about the modbus nodes not working completely well because of that.