npm安裝parse-server的過程中遇到了2次錯誤
嘗試1
ganiks@ganiks-ubuntu-trusty-64:~$ sudo npm i -g parse-server
npm WARN deprecated uws@10.148.1: stop using this version
/usr/bin/parse-server -> /usr/lib/node_modules/parse-server/bin/parse-server
> bcrypt@3.0.3 install /usr/lib/node_modules/parse-server/node_modules/bcrypt
> node-pre-gyp install --fallback-to-build
node-pre-gyp WARN Using request for node-pre-gyp https download
node-pre-gyp WARN Pre-built binaries not installable for bcrypt@3.0.3 and node@8.15.0 (node-v57 ABI, glibc) (falling back to source compile with node-gyp)
node-pre-gyp WARN Hit error EACCES: permission denied, mkdir '/usr/lib/node_modules/parse-server/node_modules/bcrypt/lib'
gyp WARN EACCES user "root" does not have permission to access the dev dir "/home/ganiks/.node-gyp/8.15.0" gyp WARN EACCES attempting to reinstall using temporary dev dir "/usr/lib/node_modules/parse-server/node_modules/bcrypt/.node-gyp"
gyp WARN install got an error, rolling back install
gyp WARN install got an error, rolling back install
gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir '/usr/lib/node_modules/parse-server/node_modules/bcrypt/.node-gyp'
gyp ERR! System Linux 3.13.0-164-generic
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "--fallback-to-build" "--module=/usr/lib/node_modules/parse-server/node_modules/bcrypt/lib/binding/bcrypt_lib.node" "--module_name=bcrypt_lib" "--module_path=/usr/lib/node_modules/parse-server/node_modules/bcrypt/lib/binding" "--napi_version=3" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v57"
gyp ERR! cwd /usr/lib/node_modules/parse-server/node_modules/bcrypt
gyp ERR! node -v v8.15.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute '/usr/bin/node /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --module=/usr/lib/node_modules/parse-server/node_modules/bcrypt/lib/binding/bcrypt_lib.node --module_name=bcrypt_lib --module_path=/usr/lib/node_modules/parse-server/node_modules/bcrypt/lib/binding --napi_version=3 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v57' (1)
node-pre-gyp ERR! stack at ChildProcess.<anonymous> (/usr/lib/node_modules/parse-server/node_modules/bcrypt/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR! stack at emitTwo (events.js:126:13)
node-pre-gyp ERR! stack at ChildProcess.emit (events.js:214:7)
node-pre-gyp ERR! stack at maybeClose (internal/child_process.js:915:16)
node-pre-gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
node-pre-gyp ERR! System Linux 3.13.0-164-generic
node-pre-gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/parse-server/node_modules/bcrypt/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd /usr/lib/node_modules/parse-server/node_modules/bcrypt
node-pre-gyp ERR! node -v v8.15.0
node-pre-gyp ERR! node-pre-gyp -v v0.12.0
node-pre-gyp ERR! not ok
Failed to execute '/usr/bin/node /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --module=/usr/lib/node_modules/parse-server/node_modules/bcrypt/lib/binding/bcrypt_lib.node --module_name=bcrypt_lib --module_path=/usr/lib/node_modules/parse-server/node_modules/bcrypt/lib/binding --napi_version=3 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v57' (1)
> parse-server@3.1.3 postinstall /usr/lib/node_modules/parse-server
> node -p 'require("./postinstall.js")()'
1111111111
1111111111111111
1111111111111111111111
11111111111111111111111111
111111111111111 11111111
1111111111111 111111
1111111111111 111111111 111111
111111111111 11111111111 111111
1111111111111 11111111111 111111
1111111111111 1111111111 111111
1111111111111111111111111 1111111
11111111 11111111
111111 1111111111111111111
11111 11111 111111111111111111
11111 11111111111111111
111111 111111111111111111
11111111111111111111111111
1111111111111111111111
111111111111111111
11111111111
Thanks for installing parse 🙏
Please consider donating to our open collective
to help us maintain this package.
👉 https://opencollective.com/parse-server
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: bcrypt@3.0.3 (node_modules/parse-server/node_modules/bcrypt):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: bcrypt@3.0.3 install: `node-pre-gyp install --fallback-to-build`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1
+ parse-server@3.1.3
added 281 packages from 349 contributors in 88.007s
這一次安裝部分成功(281 packages)
因為 在包bcrypt的安裝途中出錯:
gyp WARN EACCES user "root" does not have permission to access the dev dir "/home/ganiks/.node-gyp/8.15.0"
解決方案參看:
https://www.cnblogs.com/ganiks/p/stack-error-eacces-denied-node-gyp.html
嘗試2
# 卸載掉剛才不完整的安裝
ganiks@ganiks-ubuntu-trusty-64:~$ sudo npm un -g parse-server
removed 281 packages in 4.029s
# 嘗試2,加上參數 --unsafe-perm
ganiks@ganiks-ubuntu-trusty-64:~$ sudo npm i -g parse-server --unsafe-perm
npm WARN deprecated uws@10.148.1: stop using this version
/usr/bin/parse-server -> /usr/lib/node_modules/parse-server/bin/parse-server
> bcrypt@3.0.3 install /usr/lib/node_modules/parse-server/node_modules/bcrypt
> node-pre-gyp install --fallback-to-build
node-pre-gyp WARN Using request for node-pre-gyp https download
node-pre-gyp WARN Pre-built binaries not installable for bcrypt@3.0.3 and node@8.15.0 (node-v57 ABI, glibc) (falling back to source compile with node-gyp)
node-pre-gyp WARN Hit error connect ETIMEDOUT 54.231.80.224:443
make: Entering directory `/usr/lib/node_modules/parse-server/node_modules/bcrypt/build'
CXX(target) Release/obj.target/bcrypt_lib/src/blowfish.o
make: g++: Command not found
make: *** [Release/obj.target/bcrypt_lib/src/blowfish.o] Error 127
make: Leaving directory `/usr/lib/node_modules/parse-server/node_modules/bcrypt/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:262:23)
gyp ERR! stack at emitTwo (events.js:126:13)
gyp ERR! stack at ChildProcess.emit (events.js:214:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)
gyp ERR! System Linux 3.13.0-164-generic
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/usr/lib/node_modules/parse-server/node_modules/bcrypt/lib/binding/bcrypt_lib.node" "--module_name=bcrypt_lib" "--module_path=/usr/lib/node_modules/parse-server/node_modules/bcrypt/lib/binding" "--napi_version=3" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v57"
gyp ERR! cwd /usr/lib/node_modules/parse-server/node_modules/bcrypt
gyp ERR! node -v v8.15.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute '/usr/bin/node /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/usr/lib/node_modules/parse-server/node_modules/bcrypt/lib/binding/bcrypt_lib.node --module_name=bcrypt_lib --module_path=/usr/lib/node_modules/parse-server/node_modules/bcrypt/lib/binding --napi_version=3 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v57' (1)
node-pre-gyp ERR! stack at ChildProcess.<anonymous> (/usr/lib/node_modules/parse-server/node_modules/bcrypt/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR! stack at emitTwo (events.js:126:13)
node-pre-gyp ERR! stack at ChildProcess.emit (events.js:214:7)
node-pre-gyp ERR! stack at maybeClose (internal/child_process.js:915:16)
node-pre-gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
node-pre-gyp ERR! System Linux 3.13.0-164-generic
node-pre-gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/parse-server/node_modules/bcrypt/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd /usr/lib/node_modules/parse-server/node_modules/bcrypt
node-pre-gyp ERR! node -v v8.15.0
node-pre-gyp ERR! node-pre-gyp -v v0.12.0
node-pre-gyp ERR! not ok
Failed to execute '/usr/bin/node /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/usr/lib/node_modules/parse-server/node_modules/bcrypt/lib/binding/bcrypt_lib.node --module_name=bcrypt_lib --module_path=/usr/lib/node_modules/parse-server/node_modules/bcrypt/lib/binding --napi_version=3 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v57' (1)
> parse-server@3.1.3 postinstall /usr/lib/node_modules/parse-server
> node -p 'require("./postinstall.js")()'
1111111111
1111111111111111
1111111111111111111111
11111111111111111111111111
111111111111111 11111111
1111111111111 111111
1111111111111 111111111 111111
111111111111 11111111111 111111
1111111111111 11111111111 111111
1111111111111 1111111111 111111
1111111111111111111111111 1111111
11111111 11111111
111111 1111111111111111111
11111 11111 111111111111111111
11111 11111111111111111
111111 111111111111111111
11111111111111111111111111
1111111111111111111111
111111111111111111
11111111111
Thanks for installing parse 🙏
Please consider donating to our open collective
to help us maintain this package.
👉 https://opencollective.com/parse-server
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: bcrypt@3.0.3 (node_modules/parse-server/node_modules/bcrypt):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: bcrypt@3.0.3 install: `node-pre-gyp install --fallback-to-build`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1
+ parse-server@3.1.3
added 281 packages from 349 contributors in 155.531s
還是沒有成功,安裝結果跟嘗試1是一樣的,但是報錯信息不同
node-pre-gyp WARN Pre-built binaries not installable for bcrypt@3.0.3 and node@8.15.0 (node-v57 ABI, glibc) (falling back to source compile with node-gyp)
參考資料:
先升級下 node-gyp
嘗試3
ganiks@ganiks-ubuntu-trusty-64:~$ sudo npm i -g node-gyp /usr/bin/node-gyp -> /usr/lib/node_modules/node-gyp/bin/node-gyp.js + node-gyp@3.8.0 added 97 packages from 67 contributors in 7.194s ganiks@ganiks-ubuntu-trusty-64:~$ sudo npm un -g parse-server removed 281 packages in 5.307s ganiks@ganiks-ubuntu-trusty-64:~$ sudo npm i -g parse-server --unsafe-perm npm WARN deprecated uws@10.148.1: stop using this version /usr/bin/parse-server -> /usr/lib/node_modules/parse-server/bin/parse-server > bcrypt@3.0.3 install /usr/lib/node_modules/parse-server/node_modules/bcrypt > node-pre-gyp install --fallback-to-build node-pre-gyp WARN Using request for node-pre-gyp https download [bcrypt] Success: "/usr/lib/node_modules/parse-server/node_modules/bcrypt/lib/binding/bcrypt_lib.node" is installed via remote > parse-server@3.1.3 postinstall /usr/lib/node_modules/parse-server > node -p 'require("./postinstall.js")()' 1111111111 1111111111111111 1111111111111111111111 11111111111111111111111111 111111111111111 11111111 1111111111111 111111 1111111111111 111111111 111111 111111111111 11111111111 111111 1111111111111 11111111111 111111 1111111111111 1111111111 111111 1111111111111111111111111 1111111 11111111 11111111 111111 1111111111111111111 11111 11111 111111111111111111 11111 11111111111111111 111111 111111111111111111 11111111111111111111111111 1111111111111111111111 111111111111111111 11111111111 Thanks for installing parse 🙏 Please consider donating to our open collective to help us maintain this package. 👉 https://opencollective.com/parse-server + parse-server@3.1.3 added 352 packages from 382 contributors in 21.176s
安裝成功(352packages)
關於node-gyp
https://www.npmjs.com/package/node-gyp
node-gyp
is a cross-platform command-line tool written in Node.js for compiling native addon modules for Node.js.It bundles the gyp project used by the Chromium team and takes away the pain of dealing with the various differences in build platforms.
It is the replacement to the
node-waf
program which is removed for nodev0.8
.If you have a native addon for node that still has a
wscript
file, then you should definitely add abinding.gyp
file to support the latest versions of node.Multiple target versions of node are supported (i.e.
0.8
, ...,4
,5
,6
, etc.), regardless of what version of node is actually installed on your system (node-gyp
downloads the necessary development files or headers for the target version).