2012-11-12 256 views
2

所以我是一个漂亮的被宠坏了的rubyist,并且基本上不需要使用sudo安装任何东西。我已经安装了node.js和npm(使用Mac 64位.pkg授予,这可以让我知道我的系统上有什么),并且它们工作正常。现在如何安装jasmine-node(理想情况下不使用“sudo”)?

,执行以下操作:“请重试运行此命令,作为根/管理员” npm install jasmine-node -g

不工作,说:我走的意思sudo npm install jasmine-node -g

做:npm install jasmine-node不是全局)工作正常,但正确不设置我的路,不从命令行运行等

如何应该我安装jasmine-node?cd/usr/local/bin并安装它(没有'-g'选项)吗?使用自制软件?或者使用我上面列出的sudo ...命令?

谢谢。

/更新:如上所述,我使用通用安装程序在我的Lion OS X Mac(64位)上安装了node.js & npm,这里是我在/ usr/local/bin中的node/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

如此看来,节点和故宫社会终于(在过去的一年)提出了一种安装npm和node而不需要使用sudo的方法。

由于我在Mac OS X,我发现these instructions工作对我来说,uninstall节点& NPM,然后我就用brew安装NPM(自动给出一个节点为好)。你可能需要sudo卸载,顺便说一句,如果你sudo'ed安装。

如果上面的链接指令不起作用,请尝试使用顶级投票(500+票)的答案来做更多手动操作。

现在已经完成了,茉莉花节点安装就好,没有sudo,任何chowning或任何权限争执。只需运行npm install jasmine-node -g,一切都很好。

5

当不使用-g(全球安装)选项, “executables go in ./node_modules/.bin/”。

我自己不使用-g。如果你真的不想全局安装它,你可以在你的$ HOME中安装jasmine-node,并将$HOME/node_modules/.bin添加到$ PATH变量中。

+0

Thanks @guillaume尽管存在足够的谷歌搜索结果,但我还是没有发现这个链接,你会认为我会碰到它!这解释得很好。 我想答案是(根据该帖子),大多数人只是使用sudo在全球安装它。我想我会使用你的建议,并在我的路径中添加'$ HOME/node_modules/.bin',除非我在接下来的几天看到更好的最佳实践建议 - 谢谢! – likethesky

+0

我已经将您的答案标记为已接受,但我更喜欢更好的解决方案 - 如果有人找到答案,请添加! – likethesky

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/ 

我真的不知道这是不好的做法,但我真的没有给一个该死的。

+0

这是不好的做法,但先生说得好! – imjared

0

当您运行npm install -g somepackage时,可能会收到EACCES错误,要求您以root/Administrator身份再次运行该命令。这是一个权限问题。

容易修复,打开终端(应用程序>工具>终端)

sudo chown -R $USER /usr/local 

**我强烈建议你不要使用sudo使用包管理(NPM须藤-g安装的东西) ,因为你可以在以后得到一些问题,**

参考:http://foohack.com/2010/08/intro-to-npm/

**推荐的方式**

原因是因为这可能会导致许多其他应用程序的权限问题,所以我建议不要这样做。 当您在全球安装一个更好的解决方案:

须藤乔敦 - R的whoami〜/ .npm

相关问题