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

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

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

apt-get install curl
curl -sL https://deb.nodesource.com/setup | bash -
apt-get install -y nodejs

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

有关安装较新版本的最简单方法的任何建议,例如,当前节点是 v0.12.4,npm 是 2.7.4?从源安装是我唯一的方法吗?

答案1

有一个可用于 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

一点评论:以我的愚见,这是一个非常坏主意curl | sudo bash。您正在运行一个未使用根权限检查的脚本。最好下载脚本,通读它,检查恶意命令,然后再执行, 运行。但这只是我的两分钱。

可以按照以下步骤手动完成安装手动安装过程:

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

答案2

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

.tar.gz从他们的网站下载并cd放入该目录(文件名显然是我的下载所特有的):

$ tar -xzvf node-v4.2.2-linux-x64.tar.gz
$ cd node-v4.2.2-linux-x64

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

$ ls node-v4.2.2-linux-x64/bin 
node  npm

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

$ mv node-v4.2.2-linux-x64 nodejs

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

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

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

$ ln -s ~/nodejs ~/bin/nodejs

显然,这可以到达您想要的任何垃圾箱位置。我使用了我的主目录,因此它仅供我使用,但您也可以轻松执行以下操作:

$ ln -s ~/nodejs /usr/local/bin/nodejs

这将创建一个符号链接从主目录中的 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

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

export PATH="$HOME/bin/nodejs/bin:$PATH"

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

$ node -v
v4.2.2

$ npm -v
2.14.7

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

答案3

就我而言,我执行了推荐的 shell 命令:

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs

问题是 bash 脚本没有更新我的 APT 固定,因此 apt-get 从 debian.org 源安装了默认的旧 Debian 软件包,而不是从 nodesource.com

验证这是 的问题apt-cache policy nodejs。你应该看到类似的东西Candidate: 6.10.2-1nodesource1~jessie1而不是Candidate: 0.10.29~dfsg-2

要将 pin 优先级设置为节点源,请在/etc/apt/preferences.d/调用中添加一个文件node或包含以下内容的文件:

Package: nodejs
Pin: release o=Node Source
Pin-Priority: 1200

保存并运行apt-get cache update。然后再试apt-cache policy nodejs一次。如果候选看起来正确,则正常安装apt-get install nodejs

答案4

您可以从官方网站下载最新的 Linux 二进制文件 (.tar.gz) 并使用它 https://stackoverflow.com/a/23084499/1197421

相关内容