Error: EACCES: permission denied, symlink


環境說明

ganiks@ganiks-ubuntu-trusty-64:/ganiks/parse-server$ npm -v
6.5.0
ganiks@ganiks-ubuntu-trusty-64:/ganiks/parse-server$ node -v
v10.15.0

 

問題描述

安裝部署 ParseServer服務

ganiks@ganiks-ubuntu-trusty-64:/ganiks/parse-server$ npm install -g mongodb-runner parse-server
[..................] / rollbackFailedOptional: verb npm-session d714a710a2e0bbbc
[..................] / rollbackFailedOptional: verb npm-session d714a710a2e0bbbc
[..................] \ rollbackFailedOptional: verb npm-session d714a710a2e0bbbc
[..................] \ rollbackFailedOptional: verb npm-session d714a710a2e0bbbc
[..................] \ rollbackFailedOptional: verb npm-session d714a710a2e0bbbc
npm WARN deprecated uws@10.148.1: stop using this version
npm ERR! path ../lib/node_modules/mongodb-runner/bin/mongodb-runner.js
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall symlink
npm ERR! Error: EACCES: permission denied, symlink '../lib/node_modules/mongodb-runner/bin/mongodb-runner.js' -> '/usr/local/bin/mongodb-runner'
npm ERR!  { [Error: EACCES: permission denied, symlink '../lib/node_modules/mongodb-runner/bin/mongodb-runner.js' -> '/usr/local/bin/mongodb-runner']

 

這個錯誤以前遇到過,關鍵詞 symlink permission,意思是沒有創建超鏈接的權限;

我今天這種環境經常遇到這種問題(Windows宿主機器+Vagrant Ubuntu Host機器)

 

解決方案

給 npm install 添加參數 --no-bin-links

ganiks@ganiks-ubuntu-trusty-64:/ganiks/parse-server$ npm install -g mongodb-runner parse-server --no-bin-links

+ mongodb-runner@4.7.1
+ parse-server@3.1.3
added 563 packages from 403 contributors in 28.79s

ganiks@ganiks-ubuntu-trusty-64:/ganiks/parse-server$ ls /usr/local/lib/node_modules/ -l
total 12
drwxrwxr-x  6 ganiks ganiks 4096 Jan 17 10:23 mongodb-runner
drwxr-xr-x 10 root    root    4096 Jan 17 08:51 npm
drwxrwxr-x  7 ganiks ganiks 4096 Jan 17 10:23 parse-server

 

參考資料

https://stackoverflow.com/questions/39098812/npm-install-when-to-use-no-bin-links

One scenario that I can think of is working with a virtual machine (i.e. vagrant w/ virtual box or VMware) on windows host.
You can't translate symlinks to a synchronized folder on Windows share, so you will need this option to go around it.

Use it for any filesystem that doesn’t support symbolic links.

簡言之,所有不支持軟鏈接的磁盤系統都需要用到這個 --no-bin-links


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM