【问题标题】:Should I install node.js on Ubuntu using package manager or from source?我应该使用包管理器还是从源代码在 Ubuntu 上安装 node.js?
【发布时间】:2012-11-30 11:39:05
【问题描述】:

有谁知道从源代码安装最新版本是否有风险?我应该坚持使用包管理器吗?

【问题讨论】:

    标签: node.js ubuntu package-managers


    【解决方案1】:

    当前建议

    • 如果您想使用您的用户帐户进行安装,请使用 nvm。 (我个人更喜欢这个)
    • 按照here 的说明通过apt 使用PPA 进行安装。

    旧答案

    注意:在撰写本文时,我使用的是 Ubuntu 12.10。

    安装节点的方法有很多。我个人更喜欢下载最新稳定版本的源代码并将其安装到~/local(您可以通过在./configure 命令中添加--prefix 来做到这一点,如here 所示。真的没有任何“风险”这样做是因为所有内容都安装在与系统其余部分分开的目录中。您可以查看我的系统安装脚本here中的节点配方。我定期运行我的update_node.py脚本来升级我的安装到最新版本。

    您也可以按照here 的指示通过包管理器安装最新的稳定版本。我实际上并没有这样做,所以我无法评论它的效果。

    我不会从 ubuntu Universe 包中安装节点。您最终会得到一个非常过时的版本(当前为 0.6.19)。

    2013 年 1 月 26 日更新:

    如果您有兴趣使用您的用户(非 root)帐户安装节点,我强烈建议您阅读 this 博客文章。我跳过了~/.npmrc 步骤,但发现~/.node_modules 符号链接步骤对于使require 正常工作至关重要。

    2014 年 12 月 30 日更新:

    我已经迁移到使用 linux mint 并进行二进制节点安装。如果您有兴趣编写自己的安装脚本,可以找到我目前的一个here。具体看看我在node.sh 中所做的事情。 execute 函数在第一次安装期间运行,因此它执行诸如配置 .bashrc 中的路径之类的操作。 install 函数由update-node.sh 运行,用于删除现有安装并添加新安装(最新版本或用户指定的版本)。

    2016 年 1 月 8 日更新:

    我刚刚切换到使用nvm。只需安装脚本,然后运行nvm install node 即可获得最新版本。这似乎是使用您的用户帐户安装节点的绝佳方式。

    【讨论】:

    • 您到 Joyent Wiki 的链接安装版本 0.8.17 大约 1/20,当前稳定版(在主页上报告)是 0.8.18,所以它是可行的。此外,随着 Ubuntu 教程的修改,您需要 software-properties-common 才能使 add-apt-repository 工作。在 Ubuntu Core 12.10 上测试
    • 在我使用 Ubuntu 存储库安装 nodejs 和 npm 之后,我在 Ubuntu(12.4 和 12.10)上使用 npm 安装 Canvas 和其他模块时遇到了各种问题,但后来我做了sudo add-apt-repository ppa:chris-lea/node.js 然后重新安装了节点和npm,现在一切正常。我想更好地了解正在发生的事情,但它现在正在工作,所以我暂时不谈。
    • @ratsbane 您的模块可能需要更新版本的 node、npm 或两者。
    【解决方案2】:

    另一个选项是 nvm(节点版本管理器):https://github.com/creationix/nvm

    它让您可以轻松地在版本之间切换。

    【讨论】:

    • 感谢您的提示。但是,我没有看到有关设置 nvm 以使整个系统可以访问 node 的任何信息? (例如以 root 身份安装)
    【解决方案3】:

    虽然我生活在 .rpm 而不是 .deb 领域,但fpm 可以两者兼得(需要安装 Ruby)。我已经能够从最新的稳定源打包 node.js,没有任何重大困难。在您的情况下,以下情况可能会有所帮助:

    ./configure --prefix=/usr
    make
    mkdir -p /tmp/nodejs
    make install DESTDIR=/tmp/nodejs
    fpm -s dir -t deb -n nodejs -v 0.8.15 -p nodejs-0.8.15.deb -C /tmp/nodejs usr
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-22
      • 2023-01-20
      • 1970-01-01
      • 2016-09-12
      • 1970-01-01
      • 1970-01-01
      • 2021-04-05
      • 1970-01-01
      相关资源
      最近更新 更多