如何在Ubuntu上安装特定版本的Node?


74

我想在Ubuntu 12.04上安装NodeJS版本0.8.18。我尝试安装最新版本,然后使用还原到0.8.18 nvm,但是当我运行代码时,显然安装的软件包和两个版本(最新版本和0.8.18)都存在问题。由于我不知道如何解决该问题,因此我从Node安装中清除了计算机,并考虑直接安装我感兴趣的版本(v0.8.18)。


nodejs.org/dist/v0.8.18有一些dist文件,您尝试过吗?
Joachim Isaksson

嗨,不是。我不是很喜欢Ubuntu和dist文件,所以我什至不知道如何使用它们。无论如何,谢谢,我正在检查该怎么做,看看是否可以使用它们!
Masiar

1
API从0.8.x更改为0.10.x。因此,请务必检查更改。不仅是节点,各种包(例如express,API)也进行了更改。
user568109 2013年

Answers:


39

克里斯·李(Chris Lea)的ppa回购中有0.8.23。

该软件包允许您将存储库添加到apt-get:(您也可以手动执行此操作)

sudo apt-get install software-properties-common

添加Chris Lea的存储库:

sudo apt-add-repository ppa:chris-lea/node.js-legacy

更新apt-get:

sudo apt-get update

安装Node.js:

sudo apt-get install nodejs=0.8.23-1chl1~precise1

我认为(随意编辑)如果仅添加node.js-legacy,则版本号是可选的。如果同时添加了legacy和ppa / chris-lea / node.js,则很可能需要添加该版本。


15
sudo apt-cache showpkg nodejs-您可以使用此命令显示可用的版本sudo apt-get install npm-增加NPM经理到您的计算机
Pencroff

2
如果要安装较新的版本,例如0.11.x:(1)sudo apt-add-repository ppa:chris-lea/node.js-devel(2)更新:运行sudo apt-get update(3)然后,列出最新的软件包:sudo apt-cache showpkg nodejs(4)例如,安装0.11.14:sudo apt-get install nodejs=0.11.14-1chl1~trusty1通常安装和声支持的Node的好方法。记住在运行Node时使用--harmony标志。
SilentSteel 2014年

57

n模块为我工作。

运行以下代码以清除npm的缓存,安装n并安装最新的稳定版本的Node:

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

请参阅:http : //www.hostingadvice.com/how-to/update-node-js-latest-version/
以及:https : //www.npmjs.com/package/n

要安装特定版本的节点:

sudo n 6.11.2

要检查什么版本:

node -v

您可能需要重新启动


1
并不是单个字母名称的忠实拥护者,但是此解决方案绝对有效,而且非常简单!
aroth

2
您可以随时为它alias noonoonaanaanoonoo='n'
加上

没为我工作。但是经过一番搜索,一个
可行

38

使用可以从nodejs官方发行版中安装特定版本的nodejs dpkg

例如,当前最新的4.x版本是4.2.4,但是您可以安装以前的4.2.3版本。

curl -s -O https://deb.nodesource.com/node_4.x/pool/main/n/nodejs/nodejs_4.2.3-1nodesource1~trusty1_amd64.deb
sudo apt-get install rlwrap
sudo dpkg -i nodejs_4.2.3-1nodesource1~trusty1_amd64.deb

1
由于某种原因,curl命令对我不起作用,所以我改用wget。但是整个过程运行良好。谢谢。
尤利西斯·阿尔维斯

18

NVM(节点版本管理器)

https://github.com/nvm-sh/nvm

优点:

  • 允许您使用多个版本的Node,而无需sudo

  • 与Ruby RVM和Python Virtualenv类似,在Ruby和Python社区中被广泛认为是最佳实践

  • 尽可能下载预编译的二进制文件,如果不下载,则下载源文件并为您编译一个

在Ubuntu 17.10中测试:

curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | sh
source ~/.nvm/nvm.sh
nvm install 0.9.0
nvm install 0.9.9
nvm use 0.9.0
node --version
#v0.9.0
nvm use 0.9.9
node --version
#v0.9.9

对于最新的长期支持版本的特殊情况(如果可以选择,建议使用):

nvm install --lts
nvm use --lts
npm --version
npm install --global vaca
vaca

由于必须为每个新的Shell完成采购,因此安装脚本黑客将在您的末尾添加一些自动采购.barshrc。可以,但是我更喜欢删除自动添加的,然后添加自己的:

f="$HOME/.nvm/nvm.sh"
if [ -r "$f" ]; then
  . "$f" &>'/dev/null'
  nvm use --lts &>'/dev/null'
fi

通过此设置,您可以获得例如:

which node

给出:

/home/ciro/.nvm/versions/node/v0.9.0/bin/node

和:

which vaca

给出:

/home/ciro/.nvm/versions/node/v0.9.0/bin/vaca

如果我们要使用全局安装的模块:

npm link vaca
node -e 'console.log(require.resolve("vaca"))'

给出:

/home/ciro/.nvm/versions/node/v0.9.0/lib/node_modules/vaca/index.js

因此我们看到所有内容都完全包含在特定的节点版本中。


1
至少nvm(0.35)的最新版本正在.bashrc自动更新。它附加了那里的采购nvm.sh以及bash补全。
David FerenczyRogožan,19年

@DawidFerenczyRogožan是的,谢谢,我在回答中对此做了澄清。
西罗Santilli郝海东冠状病六四事件法轮功

15

尝试这种方式。这使我工作。

  1. wget nodejs.org/dist/v0.10.36/node-v0.10.36-linux-x64.tar.gz(下载文件)

  2. 去哪里Node.js的二进制文件下载到的目录,然后运行命令即须藤焦油-C在/ usr /本地--strip组件1 -xzf节点v0.10.36-Linux的x64.tar.gz到将Node.js二进制软件包安装在“ / usr / local /”中。

  3. 您可以检查:-

    $ node -v
     v0.10.36 
    $ npm -v
     1.4.28
    


4

仅供参考,根据nodejs github存储库wiki上的此页面,Chris Lea的PPA(在其他几个答案中提到)已由NodeSource发行版取代,成为从Ubuntu中从源代码安装nodejs的主要方式:

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

Ubuntu的三个最新LTS版本(在撰写本文时)支持此功能:10.04(透明),12.04 LTS(精确)和14.04(可信任)。

我不确定这是否会帮助安装旧版本的nodejs,但我将其放在此处以防其他需要安装发行版存储库中未包含的特定(较新)版本的nodejs的人使用。


3
OP要求提供特定的节点版本。
axd

3

注意:您可以使用NVM软件以更多的nodejs方式执行此操作。但是,我在一台机器上遇到了问题,该问题使我无法使用NVM。所以我必须寻找替代方法;-)

您可以手动下载和安装。

转到nodejs>下载>其他版本 http://nodejs.org/dist/

选择您要查找的版本 http://nodejs.org/dist/v0.8.18/

选择与您的环境相对应的发行版文件并下载(请注意32bits / 64bits版本)。示例:http//nodejs.org/dist/v0.8.18/node-v0.8.18-linux-x64.tar.gz

提取文件并按照README.md上的说明进行操作:

建立:

先决条件(仅Unix):

* Python 2.6 or 2.7
* GNU Make 3.81 or newer
* libexecinfo (FreeBSD and OpenBSD only)

Unix / Macintosh:

./configure
make
make install

如果您的python二进制文件位于非标准位置或具有非标准名称,请改为运行以下命令:

export PYTHON=/path/to/python
$PYTHON ./configure
make
make install

视窗:

vcbuild.bat

要运行测试:

Unix / Macintosh:

make test

视窗:

vcbuild.bat test

要建立文档:

make doc

阅读文档:

man doc/node.1

也许您想要(必须)将文件夹移动到一个更合适的位置,例如/usr/lib/nodejs/node-v0.8.18/,然后在/ usr / bin上创建一个Symbolic Lynk,以从任何地方获取安装的权限。

sudo mv /extracted/folder/node-v0.8.18 /usr/lib/nodejs/node-v0.8.18
sudo ln -s /usr/lib/nodejs/node-v0.8.18/bin/node /usr/bin/node

而且,如果您想在同一台计算机上使用不同的发行版,则可以使用debian替代品。以与发布第二版之前发布的相同方式进行。例如最新版本。

http://nodejs.org/dist/latest/- > http://nodejs.org/dist/latest/node-v0.10.28-linux-x64.tar.gz

移至您喜欢的目标位置,与要安装的其余版本相同。

sudo mv /extracted/folder/node-v0.10.28 /usr/lib/nodejs/node-v0.10.28

请遵循README.md文件的说明。然后更新替代方案,对于您下载的每个发行版都安装替代方案。

sudo update-alternatives    --install genname symlink  altern  priority  [--slave  genname  symlink altern]
          Add a group of alternatives  to  the  system.   genname  is  the
          generic  name  for  the  master link, symlink is the name of its
          symlink  in  the  alternatives  directory,  and  altern  is  the
          alternative being introduced for the master link.  The arguments
          after  --slave  are  the  generic  name,  symlink  name  in  the
          alternatives  directory  and alternative for a slave link.  Zero
          or more --slave options, each followed by three  arguments,  may
          be specified.

          If   the   master   symlink  specified  exists  already  in  the
          alternatives system’s records, the information supplied will  be
          added  as a new set of alternatives for the group.  Otherwise, a
          new group, set to  automatic  mode,  will  be  added  with  this
          information.   If  the group is in automatic mode, and the newly
          added alternatives’ priority is higher than any other  installed
          alternatives  for  this  group,  the symlinks will be updated to
          point to the newly added alternatives.

例如:

sudo update-alternatives --install /usr/bin/node node /usr/lib/nodejs/node-v0.10.28 0 --slave /usr/share/man/man1/node.1.gz node.1.gz /usr/lib/nodejs/node-v0.10.28/share/man/man1/node.1

然后,您可以update-alternatives --config node用来在计算机上安装的任意版本之间进行选择。


2

仅供参考,Chris Lea的回购中可用于稀疏的版本当前为0.8.25

sudo apt-get install nodejs=0.8.25-2chl1~raring1


1
版本不断变化。我如何看待哪个版本合适?
凯文(Kevin)

2

要在Ubuntu中安装特定版本的nodejs,可以使用以下命令,只需指定并替换版本号,例如,node_12.x将获取最新的12。

curl https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
sudo apt-add-repository "deb https://deb.nodesource.com/node_7.x $(lsb_release -sc) main"
sudo apt-get update
sudo apt-get install nodejs

指定次要版本,例如node_12.16.3无效。我刚刚尝试使用的node_12.18.4是今天的LTS版本。
user3785966 '20

1

是的,它是一个重复的答案,但是我坚持使用n模块来安装特定版本(以下命令将安装节点版本6.9.5)。

npm install -g  n
n 6.9.5

0

Node.js项目最近推出了0.10.0版本的新稳定版本。在Ubuntu 13x上使用以下命令sudo apt-get install nodejs = 0.10.18-1chl1〜raring1


0

使用以下命令以相同顺序安装nvm.nvm代表节点版本管理器。

sudo apt-get update
sudo apt-get install build-essential checkinstall libssl-dev
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash

如果以上命令不起作用,请在-o-之后添加-k。它应如下所示:

curl -o- -k  https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash

然后nvm ls-remote查看可用版本。如果得到N / A作为回报,请运行以下命令。

export NVM_NODEJS_ORG_MIRROR=http://nodejs.org/dist

或者,您也可以运行以下命令

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This         loads nvm bash_completion

然后nvm install #.#.#最后用版本替换#(比如nvm 8.9.4)nvm use #.#.#


0

以下是debian可用构建的列表:https : //github.com/nodesource/distributions/tree/master/deb

对于此示例,假设您想要版本14(撰写本文时为LTS)

我们可以从github下载该脚本,执行并安装所需节点的版本。出于安全原因,在执行脚本之前先阅读脚本是一个好主意。

curl -sL https://raw.githubusercontent.com/nodesource/distributions/master/deb/setup_14.x | bash
apt-get install -y nodejs # may or may not require sudo based on your setup 

我喜欢这种方法,因为它不需要像nvm这样的多余依赖关系来定位特定版本

如果您要针对其他发行版或体系结构进行构建,则可以在此处找到更多构建版本https://nodejs.org/dist/


0

假设您要安装节点10,

首先,下载并执行Node.js 10.x安装程序:

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -

这将为官方的Node.js 10.x存储库添加一个源文件,获取签名密钥

一旦安装程序完成,您将需要安装(或升级)Node.js:

sudo apt install nodejs
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.