尝试在 ubuntu 上安装 yeoman 以与 nodejs 和 npm 一起使用

Mic*_*mes 4 nodejs npm 13.10

使用 Ubuntu 13.10

我正在尝试使用 yeoman 安装,sudo npm install -g yo但它似乎不能在全局范围内工作npm并且nodejs已安装,但是,我不确定它们是否已正确安装以供全局使用。我不能使用npm我必须使用sudo npm

安装我使用的节点js

    $ sudo apt-get install python-software-properties
    $ sudo apt-add-repository ppa:chris-lea/node.js
    $ sudo apt-get update
    $ sudo apt-get install nodejs
Run Code Online (Sandbox Code Playgroud)

当我使用sudo npm install -g yo输出时,我得到的是

    /usr/bin/yo -> /usr/lib/node_modules/yo/cli.js

    > yo@1.2.1 postinstall /usr/lib/node_modules/yo
    > node ./scripts/doctor

    [Yeoman Doctor] Everything looks alright!

    yo@1.2.1 /usr/lib/node_modules/yo
    ??? is-root@0.1.0
    ??? fullname@0.1.1
    ??? opn@0.1.2
    ??? async@0.9.0
    ??? shelljs@0.3.0
    ??? lodash@2.4.1
    ??? multiline@0.3.4 (strip-indent@0.1.3)
    ??? sudo-block@0.4.0 (chalk@0.4.0)
    ??? nopt@3.0.1 (abbrev@1.0.5)
    ??? chalk@0.5.1 (escape-string-regexp@1.0.1, ansi-styles@1.1.0, supports-           color@0.2.0, strip-ansi@0.3.0, has-ansi@0.1.0)
    ??? string-length@0.1.2 (strip-ansi@0.2.2)
    ??? findup@0.1.5 (commander@2.1.0, colors@0.6.2)
    ??? yosay@0.3.0 (ansi-regex@0.2.1, pad-component@0.0.1, ansi-styles@1.1.0, word- 
    wrap@0.1.3, strip-ansi@0.2.2, minimist@0.2.0, chalk@0.4.0, taketalk@0.1.1)
    ??? update-notifier@0.2.0 (semver-diff@0.1.0, latest-version@0.2.0,    

    configstore@0.3.1)
    ??? insight@0.3.1 (object-assign@0.1.2, chalk@0.4.0, async@0.2.10,    
    lodash.debounce@2.4.1, inquirer@0.4.1, request@2.27.0, configstore@0.2.3)
    ??? yeoman-generator@0.17.2 (dargs@0.1.0, github-username@0.1.1, diff@1.0.8,  
    class-extend@0.1.1, rimraf@2.2.8, chalk@0.4.0, text-table@0.2.0, mime@1.2.11,  
    isbinaryfile@2.0.1, debug@1.0.4, grouped-queue@0.3.0, mkdirp@0.5.0,    
    underscore.string@2.3.3, glob@4.0.5, iconv-lite@0.2.11, findup-sync@0.1.3, file-
    utils@0.2.0, download@0.1.18, cheerio@0.17.0, request@2.39.0, gruntfile-
    editor@0.1.1, inquirer@0.5.1)
Run Code Online (Sandbox Code Playgroud)

所以看起来 yeoman 安装正确但它不起作用 - 当我输入 yo 时什么也没有发生......我需要把 yo 放在我的里面$PATH吗?我不太确定该怎么做..另外,我如何配置npm所以我不必使用sudo npm

Mic*_*ker 6

值得注意的是,Ubuntu 13.10 不再受到官方支持,但这对这些说明应该没有太大影响。

没有 sudo 的 npm

首先,让我们理清权限。大多数 Ubuntu 的 Node.js 安装指南都指导您从官方存储库或 chris-lea PPA 安装 Node.js。无论哪种方式,您最终都会使用 安装 Node.js 和 NPM sudo,这会导致开发机器上的权限混乱。

StackOverflow 上一个关于如何“修复”这些权限的问题,尽管在大多数情况下,您必须让您的用户成为 的所有者/usr/local/lib/node_modules,这非常粗略。

相反,我认为是迄今为止最好的答案是Node.js的使用NVM安装。除了让您在同一台计算机上运行多个版本的 Node.js 之外,此选项还将所有内容保存在您的主文件夹中,因此您的用户拥有 NPM,而您不必弄乱sudo npm.

使用哟

理清您的权限后,您安装和运行 Yeoman ( npm install -g yo) 所采取的所有步骤都应该可以正常工作。

但是,nvm use v0.10每次启动新的终端会话时都必须运行。您可以通过向您添加一个脚本来解决此问题,该脚本.bashrc将在每个会话开始时自动为您运行,