Node和npm都已安装并且是最新的,但在尝试安装coffeescript时仍然遇到此错误。我仍然是编程的新手,所以任何建议都将不胜感激。
test-macbook:~ Test$ npm -v
1.1.0-3
test-macbook:~ Test$ node -v
v0.6.8
test-macbook:~ Test$ npm install -g coffee-script
npm http GET https://registry.npmjs.org/coffee-script
npm http 304 https://registry.npmjs.org/coffee-script
npm ERR! Could not create /usr/local/lib/node_modules/___coffee-script.npm
npm ERR! error installing coffee-script@1.2.0
npm ERR! Error: EACCES, permission denied '/usr/local/lib/node_modules/___coffee-script.npm'
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR!
npm ERR! System Darwin 11.2.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "coffee-script"
npm ERR! cwd /Users/Dylan
npm ERR! node -v v0.6.8
npm ERR! npm -v 1.1.0-3
npm ERR! path /usr/local/lib/node_modules/___coffee-script.npm
npm ERR! code EACCES
npm ERR! message EACCES, permission denied '/usr/local/lib/node_modules/___coffee-script.npm'
npm ERR! errno {}
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /Users/Dylan/npm-debug.log
npm not ok
答案 0 :(得分:13)
关注nmp作者Isaac Z. Schlueter的the advice:
我强烈建议您不要使用sudo进行包管理!
而不是sudo npm install ...
您可以改为更改/usr/local
目录的权限:
sudo chown -R $USER /usr/local
执行此操作一次后,您应该能够npm install ...
(没有sudo)。
答案 1 :(得分:9)
我意识到这是一个较老的线程,但我只是碰到了这个并希望更新最后一个答案。
更改整个/ usr / local目录的所有者是这个问题的可怕答案。完全没有理由你应该这样做。
如果你看一下来自npm的错误信息,就会被拒绝对/ usr / local / lib / node_modules的写权限/我知道在OS X Mavericks上安装node和npm之后,它的默认所有者是一个不存在的用户
0 drwxr-xr-x 3 24561 wheel 102 Jan 23 14:17 node_modules
如果您只是在本地开发计算机上运行node / npm,只需将node_modules文件夹的所有者更改为您的用户:
sudo chown -R yourusername /usr/local/lib/node_modules
然后你就可以在不使用sudo的情况下安装带有npm的模块,也不需要从root用户更改/ usr / lib的所有者。
答案 2 :(得分:8)
错误信息非常清楚:
npm ERR! Error: EACCES, permission denied '/usr/local/lib/node_modules/___coffee-script.npm'
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
您无法在/usr/local/lib/node_modules
中安装它,因为您没有必要的权限。尝试使用sudo
:
dylan-hermans-macbook:~ sudo npm install -g coffee-script
npm作者建议不要使用sudo
因为包可以运行任意命令,因此sudo npm install
是危险的。他建议将/usr/local
的所有权转换为您的用户。我认为这是一个可怕的建议,只是给你一种虚假的安全感:如果一个包可以运行任意命令,那么它可能会弄乱你的主目录(包括所有你的个人数据,可执行文件,配置和启动文件......),无论sudo
或拥有/usr/local
的人因此不使用sudo
对您没有太大作用。如果您不信任包,则不要安装它;如果你不相信包装,你怎么能使用呢? /usr/local
树仍然是系统目录树,OSX仍然是一个多用户操作系统。
IMO更好的解决方案有两个方面:
sudo
和/usr/local
并将其全部安装在您的主目录中。您将面临与使用sudo
或更改/usr/local
所有权相同的大部分危险,但至少您不会养成坏习惯。