【问题标题】:When should I use `sudo` for `npm install -g cordova`?我什么时候应该为 `npm install -g cordova` 使用 `sudo`?
【发布时间】:2014-03-06 13:15:22
【问题描述】:

我正在查看 PhoneGap / Cordova CLI 文档 http://docs.phonegap.com/en/3.4.0/guide_cli_index.md.html#The%20Command-Line%20Interface,它建议将 Cordova CLI 安装为 sudo

    $ sudo npm install -g cordova

但是我的 linux 同事因为我使用 sudo willy nilly 而踢了我的 *ss,所以在安装软件包时它肯定需要它,或者我可以在没有它的情况下继续正常的 Cordova CLI 使用吗?

谢谢,DanC

【问题讨论】:

  • 我认为在使用 npm 的 -g 选项时需要 sudo。您可以尝试运行npm install cordova(这样您的用户就可以使用cordova),或者如果您有root访问权限,您可以以root身份打开一个shell并运行npm install -g cordova
  • 感谢 QuickFix,我刚刚尝试过,仅使用 npm install -g cordova ..odd (OSX 10.9.2) 没有明显问题

标签: cordova npm sudo command-line-interface


【解决方案1】:

cordova 包旨在用作命令行实用程序,而不是您在其他 Node.js 代码中require('cordova') 的模块。 -g(或全局安装)选项将在npm's prefix config setting指定的位置安装cordova模块:

前缀配置默认为安装节点的位置。在大多数系统上,这是/usr/local

您可以使用npm config get prefix查看此设置的当前值。

通常,使用全局安装选项会将全局模块的任何 shell 脚本(如 cordova 脚本)添加到您的 shell 搜索 $PATH 可见的位置。这使您可以在不指定cordova shell 脚本路径的情况下执行cordova create foo 之类的命令。

我怀疑您的前缀路径不是/usr/local,或者您的用户帐户必须具有前缀文件夹的写入权限。典型的设置不会向普通用户授予/usr/local 的写入权限,因此需要sudo。我个人更喜欢使用 sudo 来安装东西,而不是向普通用户授予对 /usr/local 的写访问权限。

【讨论】:

    猜你喜欢
    • 2012-02-13
    • 2013-12-14
    • 2020-05-23
    • 2021-05-15
    • 2017-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-20
    相关资源
    最近更新 更多