api-spec-converter icon indicating copy to clipboard operation
api-spec-converter copied to clipboard

npm install -g fails with permission error

Open capouch opened this issue 8 years ago • 23 comments
trafficstars

Installation has failed for me twice, on machines with different architectures and node/npm versions. I get the same error on each platform:

`# npm i -g api-spec-converter /usr/local/bin/api-spec-converter -> /usr/local/lib/node_modules/api-spec-converter/bin/api-spec converter

[email protected] postinstall /usr/local/lib/node_modules/api-spec-converter/node_modules/jsonpath node lib/aesprim.js > generated/aesprim-browser.js sh: generated/aesprim-browser.js: Permission denied npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! [email protected] postinstall: node lib/aesprim.js > generated/aesprim-browser.js npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the [email protected] postinstall script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. ╭─────────────────────────────────────╮ │ │ │ Update available 5.3.0 → 5.4.2 │ │ Run npm i -g npm to update │ │ │ ╰─────────────────────────────────────╯ npm ERR! A complete log of this run can be found in: npm ERR! /root/.npm/_logs/2017-09-21T06_47_16_083Z-debug.log`

2017-09-21T06_47_16_083Z-debugLog.txt

capouch avatar Sep 21 '17 06:09 capouch

Are you able to npm i -g other libraries (e.g. npm i -g webpack)? If not, you can either use sudo, or follow the instructions here

Otherwise, we may just have to downgrade the jsonpath library and open a bug there.

rbren avatar Sep 21 '17 13:09 rbren

I can and do install global packages all the time. Just ahead of this install, I globally installed "swagger-to-graphql," which is the point of this exercise; the files I'm converting need to be in Swagger v2 format, but they are currently in Swagger v1.

It failed to work with sudo, giving the same permissions error as it did with full root access.

However, while researching, I found a thread where the following syntax was explicated, and it installs just fine this way:

sudo npm install -g api-spec-converter --unsafe-perm=true --allow-root

This works in Linux Slackware64-current. I'm off to the races. Obviously, it may not work for everyone on all architectures, so the jsonpath folks should probably be made aware of the issue.

capouch avatar Sep 21 '17 17:09 capouch

Same error here. I'm trying to install as root user so I shouldn't have any problem of permission. Using ubuntu and npm 5.3.0

zaibon avatar Nov 27 '17 14:11 zaibon

Hrm, I'm still unable to repro, also with [email protected] on ubuntu (14.04)

Any other details you can think of that might help us reproduce/diagnose? In the meantime, sudo npm install -g api-spec-converter --unsafe-perm=true --allow-root seems to work.

rbren avatar Nov 27 '17 17:11 rbren

sudo npm install -g api-spec-converter --unsafe-perm=true --allow-root worked for me too. I'm using ubuntu as a docker container, don't know if that could impact. and here is the detail of the distro:

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"

zaibon avatar Nov 27 '17 17:11 zaibon

I too have the same problem in Fedora

node: v8.9.1 npm: v5.5.1

Distro Details:

LSB Version:	:core-4.1-amd64:core-4.1-noarch
Distributor ID:	Fedora
Description:	Fedora release 27 (Twenty Seven)
Release:	27
Codename:	TwentySeven

khaledkbadr avatar Nov 28 '17 11:11 khaledkbadr

Same problem on Funtoo. Above solution worked fine. Updating the README with fixed command would be enough IMO.

fralalonde avatar Jan 22 '18 16:01 fralalonde

Added a note in the README pointing to this issue. I don't think we should encourage everyone to add --unsafe_perm --allow_root though

rbren avatar Jan 23 '18 20:01 rbren

tried with --unsave_perm and --allow_root (running from root) - same result

scottw-finao avatar Aug 29 '18 17:08 scottw-finao

yarn global add api-spec-converter works for me.

0x6B386F avatar Nov 13 '18 08:11 0x6B386F

it works for me :)

sudo npm install -g artillery --unsafe-perm=true --allow-root

wonk4rol avatar Nov 22 '18 09:11 wonk4rol

sudo npm install -g artillery --unsafe-perm=true --allow-root Worked for me on fedora :) It saved my whole day!

bobycloud avatar May 08 '19 07:05 bobycloud

worked for me as well

lucamaf avatar Jun 20 '19 12:06 lucamaf

Works on Ubuntu sudo npm install -g artillery --unsafe-perm=true --allow-root

SyedNomi avatar Jul 26 '19 07:07 SyedNomi

Works on ubuntu as well .. npm install -g artillery --allow-root --unsafe-perm=true

azizzoaib786 avatar Aug 06 '19 11:08 azizzoaib786

Works on Ubuntu sudo npm install -g artillery --unsafe-perm=true --allow-root

nomi-shah avatar Aug 06 '19 11:08 nomi-shah

sudo npm install -g artillery --unsafe-perm=true --allow-root

Thanks a lot, it worked for me!

ByronGarrido avatar Aug 08 '19 15:08 ByronGarrido

worked for me on Mac as well sudo npm install -g artillery --unsafe-perm=true --allow-root 👍

subratamazumder avatar Aug 17 '19 00:08 subratamazumder

What is the min node version need to install?

rajnishtech avatar Aug 27 '19 11:08 rajnishtech

what is the min node and npm version need to install

rajnishtech avatar Aug 27 '19 11:08 rajnishtech

Not worked for me on mac sudo npm install -g artillery --unsafe-perm=true --allow-root

ManishBhatiCD avatar Sep 02 '19 10:09 ManishBhatiCD

FWIW, sudo npm install -g api-spec-converter --unsafe-perm=true --allow-root worked for me just now (April 2021) on a Mac. Thanks all!

davenull311 avatar Apr 15 '21 17:04 davenull311