homebridge / homebridge-config-ui-x

The Homebridge UI. Monitor, configure and backup Homebridge from a browser.
https://homebridge.io
MIT License
2.61k stars 376 forks source link

After upgrade the nodejs to 12.8.2, the update doesn't work #780

Closed Tamas92 closed 4 years ago

Tamas92 commented 4 years ago

Describe Your Problem: I updated the nodejs to the newest version and after that I couldn't upgrade the plugins from the UI-X. I tried to upgrade the plugin from the CLI. It was completed successfully, but the config-ui-x doesn't recognise it. Neither the npm upgrade. The GUI (config-ui-x) shows me 6.14.5, the CLI is 6.14.6.

Then I checked this: pi@octopi:~ $ sudo npm list -g --depth=0 /usr/local/lib ├── homebridge-camera-ffmpeg@2.2.2 ├── homebridge-hue@0.11.73 ├── homebridge-mqttthing@1.1.17 ├── homebridge-xiaomi-roborock-vacuum@0.12.2 └── npm@6.14.6

I upgraded these packages now manually from CLI as from the ui-x it didn't work.

The path shows /usr/local/lib.

Then I tried to figure it out where is my node_modules: (my modules which are installed by the config-ui-x are under /usr/lib/node_modules/)

pi@octopi:~ $ sudo find / -type d -name "node_modules" /usr/local/lib/node_modules ... /usr/local/lib/node_modules/homebridge-camera-ffmpeg/node_modules /usr/local/lib/node_modules/homebridge-camera-ffmpeg/node_modules/pumpify/node_modules /usr/local/lib/node_modules/homebridge-camera-ffmpeg/node_modules/split2/node_modules /usr/local/lib/node_modules/homebridge-camera-ffmpeg/node_modules/es6-set/node_modules /usr/local/lib/node_modules/homebridge-camera-ffmpeg/node_modules/ext/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/pumpify/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/cliui/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/are-we-there-yet/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/wide-align/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/concat-stream/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/pacote/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/gauge/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/sorted-union-stream/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/from2/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/stream-iterate/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/tar/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/libnpmconfig/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/duplexify/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/yargs/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/minizlib/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/parallel-transform/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/string_decoder/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/execa/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/fs-minipass/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/os-locale/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/got/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/fs-write-stream-atomic/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/mkdirp/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/move-concurrently/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/npm-registry-fetch/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/gentle-fs/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/copy-concurrently/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/through2/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/mem/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/is-ci/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/debug/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/promise-retry/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/rc/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/socks-proxy-agent/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/string-width/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/flush-write-stream/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/run-queue/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/cross-spawn/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/normalize-package-data/node_modules /usr/local/n/versions/node/12.18.2/lib/node_modules/npm/node_modules/wrap-ansi/node_modules /usr/lib/node_modules /usr/lib/node_modules/hap-nodejs/node_modules /usr/lib/node_modules/homebridge-xiaomi-roborock-vacuum/node_modules /usr/lib/node_modules/homebridge-xiaomi-roborock-vacuum/node_modules/deep-equal/node_modules /usr/lib/node_modules/homebridge-xiaomi-roborock-vacuum/node_modules/abstract-things/node_modules /usr/lib/node_modules/homebridge-xiaomi-roborock-vacuum/node_modules/ansi-styles/node_modules /usr/lib/node_modules/homebridge-xiaomi-roborock-vacuum/node_modules/dwaal/node_modules /usr/lib/node_modules/homebridge-xiaomi-roborock-vacuum/node_modules/es-get-iterator/node_modules /usr/lib/node_modules/homebridge-xiaomi-roborock-vacuum/node_modules/tinkerhub-discovery/node_modules /usr/lib/node_modules/homebridge/node_modules /usr/lib/node_modules/homebridge-pihole/node_modules /usr/lib/node_modules/homebridge-milight/node_modules /usr/lib/node_modules/homebridge-daikin-local/node_modules /usr/lib/node_modules/homebridge-broadlink-rm/node_modules /usr/lib/node_modules/homebridge-broadlink-rm/node_modules/pumpify/node_modules /usr/lib/node_modules/homebridge-broadlink-rm/node_modules/readable-stream/node_modules /usr/lib/node_modules/homebridge-broadlink-rm/node_modules/split2/node_modules /usr/lib/node_modules/homebridge-broadlink-rm/node_modules/string_decoder/node_modules /usr/lib/node_modules/homebridge-broadlink-rm/node_modules/es6-set/node_modules /usr/lib/node_modules/homebridge-broadlink-rm/node_modules/ws/node_modules /usr/lib/node_modules/homebridge-broadlink-rm/node_modules/homebridge-platform-helper/node_modules /usr/lib/node_modules/homebridge-broadlink-rm/node_modules/ext/node_modules /usr/lib/node_modules/homebridge-broadlink-rm/node_modules/node-persist/node_modules /usr/lib/node_modules/homebridge-twinkly/node_modules ...

How can I fix this? Here is the symlink for the nodejs

Screenshot 2020-07-16 at 22 37 07

Logs: [7/16/2020, 22:06:21] [Config] Running Command: sudo -E -n npm install homebridge-hue@latest [7/16/2020, 22:06:21] [Config] Command failed. Please review log for details.

Homebridge Config: { "platform": "config", "name": "Config", "port": 8080, "auth": "form", "theme": "dark-mode", "tempUnits": "c", "sudo": true, "restart": "sudo -n systemctl restart homebridge", "log": { "method": "systemd", "service": "homebridge" } },

Screenshots: Screenshot 2020-07-16 at 22 06 28

Environment:

pi@octopi:~ $ node -v v12.18.2 pi@octopi:~ $ npm -v 6.14.6 pi@octopi:~ $ homebridge -V 1.1.1

oznu commented 4 years ago

Did you upgrade Node.js using the same method you originally used to install it?

Just run:

sudo hb-service uninstall
sudo hb-service install
Tamas92 commented 4 years ago

Yes, I upgraded with the same way that's why I don't understand what is going on. Thanks, I could update my plugins successfully.

Can you help me how to upgrade the npm version? How should I run the command? sudo npm install -g npm doesn't work, it puts the npm under the wrong path:

pi@octopi:~ $ sudo npm list -g --depth=0 /usr/local/lib └── npm@6.14.6

In the beginning it worked for me (sudo npm install -g npm), but now it doesn't.

oznu commented 4 years ago

In the beginning it worked for me (sudo npm install -g npm), but now it doesn't.

You have multiple versions of Node.js installed, using different methods. You will likely find a copy of node in these two locations:

This is going to cause strange things to happen for you going forward.

If you want to fix this you can follow this guide to purge Node.js and reinstall: https://github.com/homebridge/homebridge/wiki/How-To-Fix-Node.js-Install-Issues-On-Linux

Don't use n to update Node.js, it doesn't always install Node in the same place it's already installed (hb-service update-node will though).

Tamas92 commented 4 years ago

Thanks for your quick help!