如何安装jasmine-node(理想情况下不使用'sudo')?

时间:2012-11-12 20:47:22

标签: node.js root npm jasmine jasmine-node

所以我是一个非常被宠坏的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? 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

4 个答案:

答案 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,一切顺利。