maxwellhadley / node-red-contrib-rfxcom

node-RED nodes to access an RFXtrx433 transceiver
BSD 2-Clause "Simplified" License
22 stars 13 forks source link

Upgrade Issue #69

Closed apb2019 closed 5 years ago

apb2019 commented 5 years ago

Trying to upgrade from 2.61 to 2.63 via Node Red Manage Pallet function. When clicking on the install button I get the following error messages in the console

9 Jan 15:36:12 - [info] Upgrading module: node-red-contrib-rfxcom to version: 2.6.3 9 Jan 15:36:36 - [warn] Installation of module node-red-contrib-rfxcom failed: 9 Jan 15:36:36 - [warn] ------------------------------------------ 9 Jan 15:36:36 - [warn] npm WARN node-red-project@0.0.1 No repository field. npm WARN node-red-project@0.0.1 No license field. npm ERR! path /home/pi/.node-red/node_modules/node-red-contrib-rfxcom/node_modules/.bin/find-rfxcom npm ERR! code EEXIST npm ERR! Refusing to delete /home/pi/.node-red/node_modules/node-red-contrib-rfxcom/node_modules/.bin/find-rfxcom: is outside /home/pi/.node-red/node_modules/node-red-contrib-rfxcom/node_modules/rfxcom and not a link npm ERR! File exists: /home/pi/.node-red/node_modules/node-red-contrib-rfxcom/node_modules/.bin/find-rfxcom npm ERR! Move it away, and try again. npm ERR! A complete log of this run can be found in: npm ERR! /home/pi/.npm/_logs/2019-01-09T15_36_36_896Z-debug.log

Also tried closing node red & using npm with the same result

pi@raspberrypi:~/.node-red $ npm install node-red-contrib-rfxcom npm WARN node-red-project@0.0.1 No repository field. npm WARN node-red-project@0.0.1 No license field.

npm ERR! path /home/pi/.node-red/node_modules/node-red-contrib-rfxcom/node_modules/.bin/find-rfxcom npm ERR! code EEXIST npm ERR! Refusing to delete /home/pi/.node-red/node_modules/node-red-contrib-rfxcom/node_modules/.bin/find-rfxcom: is outside /home/pi/.node-red/node_modules/node-red-contrib-rfxcom/node_modules/rfxcom and not a link npm ERR! File exists: /home/pi/.node-red/node_modules/node-red-contrib-rfxcom/node_modules/.bin/find-rfxcom npm ERR! Move it away, and try again.

npm ERR! A complete log of this run can be found in: npm ERR! /home/pi/.npm/_logs/2019-01-09T15_44_08_950Z-debug.log

maxwellhadley commented 5 years ago

This is basically the same problem as #66 - the older version of node-red-contrib-rfxcom included a reference to the utility scripts installed by node-rfxcom. This is a reference (in package.json), not a link. Something went wrong between the two packages and the various versions of npm, so when I removed the reference it now tries to delete the file referred to, instead of just ignoring the file and removing the reference.

I don't properly understand how script installation is supposed to work, and I haven't been able to find adequate documentation, especially covering the case here, where I am trying to use a 'bin' reference in package.json to a .js script in one of the module's dependencies.

Try manually deleting the files /home/pi/.node-red/node_modules/node-red-contrib-rfxcom/node_modules/.bin/find-rfxcom & /home/pi/.node-red/node_modules/node-red-contrib-rfxcom/node_modules/.bin/set-protocols and see if that works. If not, cd to /home/pi/.node-red/node_modules/node-red-contrib-rfxcom and use npm to uninstall node-rfxcom, then use either the nodeRED palette or npm to uninstall node-red-contrib-rfxcom, then re-install. That should re-install node-rfxcom, because node-red-contrib-rfxcom depends on it: the scripts will be present, but only usable from the node-rfxcom install directory, not from node-red-contrib-rfxcom.

If you are confused, so am I :(

apb2019 commented 5 years ago

I manually deleted the two files as suggested and re-ran the update via the pallet manager and the update ran without any problems. Tx for the quick fix

GoSpursGoNL commented 5 years ago

Removing the two files worked perfectly for me as well, thanks.