【问题标题】:How to install jasmine-node (without using 'sudo' ideally)?如何安装 jasmine-node(理想情况下不使用“sudo”)?
【发布时间】:2019-08-11 11:27:04
【问题描述】:

所以我是一个被宠坏的 ruby​​ist,基本上再也不用使用 sudo 安装任何东西了。我已经安装了 node.js 和 npm(当然,使用 Mac 64 位 .pkg,天哪知道我的系统上有什么)并且它们工作正常。

现在,执行以下操作: npm install jasmine-node -g

不起作用并说:“请尝试以 root/管理员身份再次运行此命令。”我的意思是sudo npm install jasmine-node -g

Doing: npm install jasmine-node (not 全局) 工作正常,但没有正确设置我的路径,没有从命令行运行,等等。

我应该如何安装 jasmine-node?​​strong> cd/usr/local/bin 并在那里安装(不带“-g”选项)?使用自制软件?还是使用我上面列出的sudo ... 命令?

谢谢。

/UPDATE:如上所述,我使用通用安装程序在我的 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' 是我的偏好)。

/结束更新

这是使用-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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢@guillaume,尽管谷歌搜索了足够多的你认为我会遇到它,但我还是没有找到那个链接!这很好地解释了它。我想答案是(根据那篇帖子)大多数人只是使用 sudo 在全球范围内安装它。我想我会使用您的建议并将$HOME/node_modules/.bin 添加到我的路径中,除非我在接下来的几天内看到更好的最佳实践建议——谢谢!
    • 我已将您的答案标记为已接受,但我希望有更好的解决方案——如果有人找到,请添加!
    • 顺便说一句,我在问这个问题 2.5 年后找到了这个问题的答案。答案是this one
    【解决方案2】:

    我刚刚更改了节点关注的所有文件夹的所有权。

    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/
    

    我真的不知道这是不是不好的做法,但我真的不在乎。

    【讨论】:

    • 这是不好的做法,但说得好,先生!
    【解决方案3】:

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

    很容易修复,打开您的终端(应用程序 > 实用程序 > 终端)

    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

    【讨论】:

      【解决方案4】:

      看来,node 和 npm 社区终于(在过去的一年)制定了一种无需使用 sudo 即可安装 npm 和 node 的方法。

      由于我在 Mac OS X 上,我发现 these instructions 为我工作到 uninstall 节点和 npm,然后我只使用 brew 安装 npm(它也会自动提供一个节点)。顺便说一句,如果您需要 sudo 安装,您可能需要 sudo 卸载。

      如果上面链接的说明不起作用,请尝试投票最多(1500+ 票)的答案,以手动操作。

      现在,jasmine-node 安装得很好,没有 sudo、任何 chowning 或任何权限争论。只需运行 npm install jasmine-node -g 即可。

      【讨论】:

        猜你喜欢
        • 2012-03-10
        • 2019-04-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-23
        • 2019-08-04
        • 2014-09-05
        • 1970-01-01
        相关资源
        最近更新 更多