Trying to Install Rocket-CLI for App Dev

Description

I installed Node.js and npm, then tried to run the command, “sudo npm install -g @rocket.chat/apps-cli” per the instructions here: The Apps Engine CLI - Rocket.Chat Developer

The command failed and didn’t install the app engine cli.

Server Setup Information

  • Version of Rocket.Chat Server: Rocket 4.62
  • Operating System: OS Ubuntu 18.04
  • Deployment Method: Snap
  • Number of Running Instances: 1
  • DB Replicaset Oplog:
  • NodeJS Version: v10.19.0
  • MongoDB Version: ? - not sure
  • Proxy: Caddy proxy
  • Firewalls involved:

Any additional Information

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! esbuild@0.12.29 postinstall: node install.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the esbuild@0.12.29 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2022-05-06T19_15_17_627Z-debug.log

The log file didn’t contain any additional information.

image

I uninstalled node and npm, and tried to install them following a combination of techniques from this article: https://linuxize.com/post/how-to-install-node-js-on-ubuntu-18.04/

It seemed to do some things differently, and I got different errors when I tried to run the “sudo npm install -g @rocket.chat/apps-cli” command again, but it still failed. I don’t know if these different errors are helpful, but I am providing below.

$ sudo npm install -g @rocket.chat/apps-cli
npm WARN deprecated cli-ux@5.6.7: Package no longer supported. Contact Support at npm for more info.
npm WARN deprecated querystring@0.2.1: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
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 There’s Math.random(), and then there’s Math.random() · V8 for details.
npm WARN deprecated cli-ux@5.6.6: Package no longer supported. Contact Support at npm for more info.
npm WARN deprecated cryptiles@4.1.3: This module has moved and is now available at @hapi/cryptiles. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues.
npm WARN deprecated boom@7.3.0: This module has moved and is now available at @hapi/boom. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues.
npm WARN deprecated hoek@6.1.3: This module has moved and is now available at @hapi/hoek. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues.
/usr/bin/rc-apps → /usr/lib/node_modules/@rocket.chat/apps-cli/bin/run

esbuild@0.12.29 postinstall /usr/lib/node_modules/@rocket.chat/apps-cli/node_modules/esbuild
node install.js

Trying to install “esbuild-linux-64” using npm
Failed to install “esbuild-linux-64” using npm: EACCES: permission denied, mkdir ‘/usr/lib/node_modules/@rocket.chat/apps-cli/node_modules/esbuild/esbuild-ohkvzqdr1p’
Trying to download “https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.12.29.tgz
/usr/lib/node_modules/@rocket.chat/apps-cli/node_modules/esbuild/install.js:198
throw e;
^

Error: EACCES: permission denied, open ‘/usr/lib/node_modules/@rocket.chat/apps-cli/node_modules/esbuild/bin/esbuild__’
at Object.openSync (fs.js:462:3)
at Object.writeFileSync (fs.js:1384:35)
at installBinaryFromPackage (/usr/lib/node_modules/@rocket.chat/apps-cli/node_modules/esbuild/install.js:61:6)
at processTicksAndRejections (internal/process/task_queues.js:97:5) {
errno: -13,
syscall: ‘open’,
code: ‘EACCES’,
path: ‘/usr/lib/node_modules/@rocket.chat/apps-cli/node_modules/esbuild/bin/esbuild__’
}
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.3.2 (node_modules/@rocket.chat/apps-cli/node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {“os”:“darwin”,“arch”:“any”} (current: {“os”:“linux”,“arch”:“x64”})

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! esbuild@0.12.29 postinstall: node install.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the esbuild@0.12.29 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2022-05-06T20_47_52_052Z-debug.log

I had a similiar issue and found this: Issues · evanw/esbuild · GitHub

I found this Stack Overflow answer which says that if you’re using npm with the root user and a package has an install script, you’ll need to add --unsafe-perm=true to your npm command to get it to work. Does that work for you?

This solved the issue for me