在Mac 10.7.2上安装coffeescript时出错
节点和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
错误信息相当清楚:
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作者build议不要使用sudo
因为软件包可以运行任意命令,所以sudo npm install
是危险的。 他build议将/usr/local
的所有权切换到您的用户。 我认为这是可怕的build议,只是给你一个错误的安全感:如果一个软件包可以运行任意命令,那么它可以搅乱你的主目录(包括所有的个人数据,可执行文件,configuration和启动文件,…) sudo
或谁拥有/usr/local
所以不使用sudo
真的不会为你做很多事情。 如果你不信任一个包,那么不要安装它; 如果你不信任一个包,那么你甚至可以使用它? /usr/local
树仍然是一个系统目录树,OSX仍然是一个多用户操作系统。
国际海事组织一个更好的解决scheme是双重的:
- 不要安装或使用任何不信任的软件包。 如果你安装了它,那么你就相信这个代码是你的(除非你总是在某个监狱里运行它,但是如果你要这么做的话,你最好自己编写代码) 。
- 离开
sudo
和/usr/local
,并将其全部安装到您的主目录中。 使用sudo
或更改/usr/local
所有权的sudo
同样会受到大部分危害,但至less您不会惹起恶习。
根据nmp作者Isaac Z. Schlueter 的build议 :
我强烈build议你不要用sudo做包pipe理!
而不是sudo npm install ...
你可以改变你的/usr/local
目录的权限:
sudo chown -R $USER /usr/local
做完这一次之后,你应该可以npm install ...
(没有sudo)。
我意识到这是一个较老的线程,但我碰到这个,想更新最后的答案。
更改整个/ 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的所有者。