Installing Roon Extension Manager on QNAP

Hi @crieke or other adventurers.

Have you been able to install Roon Extension Manager on QNAP? I’m following the instructions for Linux in the wiki, have working versions of node.js and git, but when I get to this line

npm install -g https://github.com/TheAppgineer/roon-extension-manager.git

I get this output:

    Error: setuid user id does not exist
        at /share/CACHEDEV1_DATA/.qpkg/nodejsv8/node/lib/node_modules/npm/node_modules/uid-number/uid-number.js:49:16
        at ChildProcess.exithandler (child_process.js:267:7)
        at emitTwo (events.js:126:13)
        at ChildProcess.emit (events.js:214:7)
        at maybeClose (internal/child_process.js:925:16)
        at Socket.stream.socket.on (internal/child_process.js:346:11)
        at emitOne (events.js:116:13)
        at Socket.emit (events.js:211:7)
        at Pipe._handle.close [as _onclose] (net.js:554:12)
    TypeError: Cannot read property 'get' of undefined
        at errorHandler (/share/CACHEDEV1_DATA/.qpkg/nodejsv8/node/lib/node_modules/npm/lib/utils/error-handler.js:205:18)
        at /share/CACHEDEV1_DATA/.qpkg/nodejsv8/node/lib/node_modules/npm/bin/npm-cli.js:83:20
        at cb (/share/CACHEDEV1_DATA/.qpkg/nodejsv8/node/lib/node_modules/npm/lib/npm.js:224:22)
        at /share/CACHEDEV1_DATA/.qpkg/nodejsv8/node/lib/node_modules/npm/lib/npm.js:262:24
        at /share/CACHEDEV1_DATA/.qpkg/nodejsv8/node/lib/node_modules/npm/lib/config/core.js:81:7
        at Array.forEach (<anonymous>)
        at /share/CACHEDEV1_DATA/.qpkg/nodejsv8/node/lib/node_modules/npm/lib/config/core.js:80:13
        at f (/share/CACHEDEV1_DATA/.qpkg/nodejsv8/node/lib/node_modules/npm/node_modules/once/once.js:25:25)
        at afterExtras (/share/CACHEDEV1_DATA/.qpkg/nodejsv8/node/lib/node_modules/npm/lib/config/core.js:178:20)
        at Conf.<anonymous> (/share/CACHEDEV1_DATA/.qpkg/nodejsv8/node/lib/node_modules/npm/lib/config/core.js:236:22)
        at /share/CACHEDEV1_DATA/.qpkg/nodejsv8/node/lib/node_modules/npm/node_modules/uid-number/uid-number.js:51:14
        at ChildProcess.exithandler (child_process.js:267:7)
        at emitTwo (events.js:126:13)
        at ChildProcess.emit (events.js:214:7)
        at maybeClose (internal/child_process.js:925:16)
        at Socket.stream.socket.on (internal/child_process.js:346:11)
    /share/CACHEDEV1_DATA/.qpkg/nodejsv8/node/lib/node_modules/npm/lib/utils/error-handler.js:205
      if (npm.config.get('json')) {
                     ^

    TypeError: Cannot read property 'get' of undefined
        at process.errorHandler (/share/CACHEDEV1_DATA/.qpkg/nodejsv8/node/lib/node_modules/npm/lib/utils/error-handler.js:205:18)
        at emitOne (events.js:116:13)
        at process.emit (events.js:211:7)
        at process._fatalException (bootstrap_node.js:374:26)

And I pretty much don’t know what to do next. Any help would be appreciated.

Competency level: eejit

Hi @anon55914447,

What version of npm do you have installed?

npm --version

And what is your global installation directory?

npm config get prefix

Does the account that you use to run the Extension Manager have write access to this directory?

5.6.0

/root/.RoonExtensions

I used the admin account to ssh into my QNAP box and run the installation, so it should have write access.

This looks more like a QNAP / npm issue than an extension issue. Have you searched outside the Roon forum, e.g. in a QNAP forum?

No, I haven’t. I do know QNAP has some quirks compared to a vanilla Linux installation.

Actually, I wonder if I could get this going inside a Docker container. :thinking:

1 Like
did you have any luck with the docker container?

Yes, thanks for the reminder. I just documented it here: