所以我是一个非常被宠坏的rubyist,基本上不再需要使用sudo安装任何东西了。我已经安装了node.js和npm(授予,使用Mac 64位.pkg,这可以让gosh知道我的系统上的内容)并且它们工作正常。
现在,执行以下操作:
npm install jasmine-node -g
不起作用并说,“请尝试以root / Administrator身份再次运行此命令。”我的意思是sudo npm install jasmine-node -g
执行:npm install jasmine-node
( not 全局)工作正常,但不正确设置路径,不从命令行运行等。
应该如何我将jasmine-node? strong> cd
安装到/usr/local/bin
并安装它(没有'-g'选项)?使用自制软件?或者使用我上面列出的sudo ...
命令?
感谢。
/更新:如上所述,我安装了node.js&使用通用安装程序在我的Lion OS X Mac(64位)上使用npm,这是我在/ usr / local / bin中的节点/ npm列表,如果它们有帮助的话:
-rwxr-xr-x 1 24561 wheel 355 Apr 11 2012 /usr/local/bin/node-waf
-rwxr-xr-x 1 24561 wheel 18930304 Oct 25 14:07 /usr/local/bin/node
lrwxr-xr-x 1 root admin 38 Nov 12 10:00 /usr/local/bin/npm -> ../lib/node_modules/npm/bin/npm-cli.js
另外,我找到了this answer,这是另一个选项(除了上面提到的三个选项)。
请告诉我推荐的方法(再次,理想情况下,不使用'sudo'是我的偏好)。
/ END UPDATE
以下是-g
(全局)返回(不使用sudo
)的原因:
npm http GET https://registry.npmjs.org/jasmine-node
npm http 200 https://registry.npmjs.org/jasmine-node
npm http GET https://registry.npmjs.org/jasmine-node/-/jasmine-node-1.0.26.tgz
npm http 200 https://registry.npmjs.org/jasmine-node/-/jasmine-node-1.0.26.tgz
npm ERR! Error: EACCES, mkdir '/usr/local/lib/node_modules/jasmine-node'
npm ERR! { [Error: EACCES, mkdir '/usr/local/lib/node_modules/jasmine-node']
npm ERR! errno: 3,
npm ERR! code: 'EACCES',
npm ERR! path: '/usr/local/lib/node_modules/jasmine-node',
npm ERR! fstream_type: 'Directory',
npm ERR! fstream_path: '/usr/local/lib/node_modules/jasmine-node',
npm ERR! fstream_class: 'DirWriter',
npm ERR! fstream_stack:
npm ERR! [ 'DirWriter._create (/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23)',
npm ERR! '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53',
npm ERR! 'Object.oncomplete (fs.js:297:15)' ] }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! System Darwin 11.4.2
npm ERR! command "node" "/usr/local/bin/npm" "install" "jasmine-node" "-g"
npm ERR! cwd /Users/brad/play/troles
npm ERR! node -v v0.8.14
npm ERR! npm -v 1.1.65
npm ERR! path /usr/local/lib/node_modules/jasmine-node
npm ERR! fstream_path /usr/local/lib/node_modules/jasmine-node
npm ERR! fstream_type Directory
npm ERR! fstream_class DirWriter
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, mkdir '/usr/local/lib/node_modules/jasmine-node'
npm ERR! fstream_stack DirWriter._create (/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23)
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53
npm ERR! fstream_stack Object.oncomplete (fs.js:297:15)
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /Users/brad/play/troles/npm-debug.log
npm ERR! not ok code 0
答案 0 :(得分:5)
不使用-g
(全局安装)选项时,“executables go in ./node_modules/.bin/
”。
我自己不使用-g
。如果您确实不想全局安装它,可以在$ HOME中安装jasmine-node并将$HOME/node_modules/.bin
添加到$ PATH变量。
答案 1 :(得分:3)
我刚刚更改了所关注的所有文件夹的所有权。
sudo chown -R my_account_name /usr/local/lib/node_modules/
sudo chown -R my_account_name /usr/local/lib/node/
sudo chown -R my_account_name /usr/local/include/node/
我真的不知道这是不是很糟糕的做法,但我真的不会给你一个该死的。
答案 2 :(得分:0)
运行npm install -g somepackage时,可能会收到EACCES错误,要求您以root / Administrator身份再次运行该命令。这是一个权限问题。
易于修复,打开终端(应用程序>实用程序>终端)
sudo chown -R $USER /usr/local
**我强烈建议你不要使用sudo包管理(sudo npm -g install something),因为你以后可能会遇到一些问题**
参考:http://foohack.com/2010/08/intro-to-npm/
**推荐方式**
原因是因为这会导致许多其他应用程序出现权限问题,因此我建议不要这样做。 在全球范围内安装时的更好解决方案:
sudo chown -R
whoami
〜/ .npm
答案 3 :(得分:0)
所以似乎节点和npm社区终于(在过去的一年)制定了一个安装npm和节点的方法,而不需要使用sudo。
由于我在Mac OS X上,我发现these instructions为我工作uninstall
节点& npm,然后我用brew
来安装npm(它自动给出一个节点)。如果你要安装sudo,你可能需要sudo uninstall,顺便说一下。
如果上述相关说明不起作用,请尝试最高投票(500+票)的答案,以便手动完成。
现在已经这样做了,jasmine-node安装了很好的无sudo,任何chowning或任何权限争论。只需运行npm install jasmine-node -g
,一切顺利。