如何在 Debian Jessie 上安装最新的 NodeJS?

MrC*_*les 29 debian node.js

我刚刚使用推荐的方法在 Debian Jessie 上安装了 NodeJS 和 NPM:

apt-get install curl
curl -sL https://deb.nodesource.com/setup | bash -
apt-get install -y nodejs
Run Code Online (Sandbox Code Playgroud)

然而,它是一个相当老的版本(node v0.10.38 & npm 1.4.28)。

关于安装新版本的最简单方法的任何建议,例如,当前 node 是 v0.12.4 而 npm 是 2.7.4?从源代码安装是我唯一的方法吗?

小智 49

有一个可用于 Node.js 的安装脚本(请参阅安装说明):

# Adapt version number to the version you want
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -
sudo apt-get install -y nodejs
Run Code Online (Sandbox Code Playgroud)

一点评论:在我看来,这是一个非常糟糕的主意curl | sudo bash。您正在运行一个没有使用 root 权限检查的脚本。它总是更好的下载脚本,通读一遍,检查是否有恶意命令,之后,运行它。但这只是我的两分钱。

安装可以按照手动安装过程通过几个步骤手动完成

  • 删除旧的 PPA(如果适用)
  • 添加节点 repo ssh 密钥
  • 将节点仓库添加到 sources.list
  • 更新包列表并使用最喜欢的 apt 工具安装

  • ops,使用它,但现在有`setup_4.x`...重做 curl 和 apt-get 好吗? (5认同)
  • 由于您可能需要最新的实际版本,我建议访问他们的网站:https://github.com/nodesource/distributions。 (3认同)

小智 12

您可以从他们的网站下载最新版本的 Node ( 4.2.2) ,而不是使用 Debian 提供的软件包 ( )。这也意味着您拥有 npm 的更新版本。我在 Jessie 上这样做没有任何问题。0.12

.tar.gz从他们的网站下载并cd进入该目录(文件名显然特定于我的下载):

$ tar -xzvf node-v4.2.2-linux-x64.tar.gz
$ cd node-v4.2.2-linux-x64
Run Code Online (Sandbox Code Playgroud)

如果您查看 bin 文件夹,您将看到 node 和 npm 所需的二进制文件:

$ ls node-v4.2.2-linux-x64/bin 
node  npm
Run Code Online (Sandbox Code Playgroud)

现在我会将文件夹重命名为更容易跟踪的内容

$ mv node-v4.2.2-linux-x64 nodejs
Run Code Online (Sandbox Code Playgroud)

如果您对保持节点更新不感兴趣,那么只需将此文件夹移动到您的一个 bin 位置(我使用~/bin),然后跳过下一步。

如果您希望能够轻松更新您的节点版本,请将nodejs文件夹移动到您可以跟踪它的地方(~/nodejs也许?)。然后,您想创建一个指向您的 bin 位置之一的符号链接,以便可以从您的 shell 使用二进制文件,而无需写出完整路径。

假设您将 nodejs 文件夹放在您的主目录中,您现在可以执行以下操作:

$ ln -s ~/nodejs ~/bin/nodejs
Run Code Online (Sandbox Code Playgroud)

显然,这可以转到您想要的任何垃圾箱位置。我使用了我的主目录,所以它只对我可用,但你也可以很容易地做到:

$ ln -s ~/nodejs /usr/local/bin/nodejs
Run Code Online (Sandbox Code Playgroud)

这将创建一个符号连接从在的NodeJS你的主目录文件夹到bin目录(这意味着在你的主文件夹反映通过其他地方的文件夹到该目录中的任何更新符号链接)。现在您要确保包含 nodejs 目录的 bin 文件夹在您的$PATH环境变量中,因此~/.profile在您的主目录中打开该文件。您想将此添加到该文件的底部(更改路径,如果您没有使用~/bin/):

# Set the node PATH if it exists
if [ -d "$HOME/bin/nodejs/bin" ] ; then
    PATH="$HOME/bin/nodejs/bin:$PATH"
fi
Run Code Online (Sandbox Code Playgroud)

这将检查该目录是否存在,如果存在,则将其添加到您的 PATH 中。我使用zsh所以我只是更新了一行~/.zshrc

export PATH="$HOME/bin/nodejs/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)

关闭终端并重新打开,然后键入以下内容进行检查:

$ node -v
v4.2.2

$ npm -v
2.14.7
Run Code Online (Sandbox Code Playgroud)

通过创建符号链接,现在意味着将来您可以.tar.gz从 Nodejs 网站下载新的,将其解压缩到~/nodejs,并且您的$PATH 环境变量中可用的二进制文件会自动更新。