我想在 Ubuntu 12.04 上安装 NodeJS 版本 0.8.18。我尝试安装最新版本,然后使用 恢复到 0.8.18 nvm
,但是当我运行我的代码时,显然安装的包和两个版本(最新和 0.8.18)存在一些问题。由于不知道如何解决这个问题,所以我从Node安装中清理了机器,并考虑直接安装我感兴趣的版本(v0.8.18)。
17 回答
该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
您可能需要重新启动
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,您很可能需要添加版本。
可以从 nodejs 官方发行版中使用dpkg
.
- 检查您的 ubuntu 发行版的版本,
cat /etc/lsb-release
. - 检查你的操作系统的架构,
uname -m
. - 从 nodejs 官方网站下载首选版本的 debian 包。
- 小心检查
nodejs-dbg
或nodejs
输入文件名。
例如,当前最近的 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
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 完成采购,安装脚本 hacks 会在您的.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
如上所述:
然而,对于项目,您最好只使用本地安装的包,node_modules
并且npx
可执行文件能够跨项目拥有独立版本,全局使用主要用于 Node 可执行文件本身和全局 CLI 实用程序,而不是特定于任何项目。
所以我们看到一切都完全包含在特定的节点版本中。
设置 NPM 版本
简单地:
npm install npm@6.14.13 -g
可执行文件放置在当前 NVM 版本中,因此一切都保持良好和隔离,例如:
which npm
给出类似的东西:
/home/ciro/.nvm/versions/node/v14.17.0/bin/npm
试试这个方法。这对我有用。
wget nodejs.org/dist/v0.10.36/node-v0.10.36-linux-x64.tar.gz(下载文件)
转到下载 Node.js 二进制文件的目录,然后运行命令,即sudo tar -C /usr/local --strip-components 1 -xzf node-v0.10.36-linux-x64.tar.gz到在“/usr/local/”中安装 Node.js 二进制包。
您可以检查:-
$ node -v v0.10.36 $ npm -v 1.4.28
此 ppa 也可使用 0.10 版
apt-add-repository ppa:chris-lea/node.js
安装nodejs:
apt-get install nodejs=0.10.25-1chl1~precise1
感谢我的朋友Julian Xhokaxhiu
仅供参考,根据nodejs github repo的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。
注意:您可以使用 NVM 软件以更 nodejs 的方式执行此操作。但是,我在一台不允许我使用 NVM 的机器上遇到了问题。所以我必须寻找替代方案;-)
您可以手动下载和安装。
转到 nodejs > 下载 > 其他版本 http://nodejs.org/dist/
选择您要查找的版本 http://nodejs.org/dist/v0.8.18/
选择与您的环境相对应的发行版文件并下载(注意 32 位/64 位版本)。示例: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/麦金塔:
./configure make make install
如果您的 python 二进制文件位于非标准位置或具有非标准名称,请改为运行以下命令:
export PYTHON=/path/to/python $PYTHON ./configure make make install
视窗:
vcbuild.bat
要运行测试:
Unix/麦金塔:
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
在机器中安装的任意数量的版本之间进行选择。
要在 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 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
仅供参考,Chris Lea 的 repo 中可用的 raring 版本目前是 0.8.25
sudo apt-get install nodejs=0.8.25-2chl1~raring1
是的,这是一个重复的答案,但我坚持使用 n 模块安装特定版本(以下命令安装节点版本 6.9.5)。
npm install -g n
n 6.9.5
我想这里的许多导演都在寻找这个添加到Dockerfile
RUN set -x \
&& curl -sL 'https://deb.nodesource.com/setup_16.x' | bash - \
&& apt-get -y install nodejs \
&& ln -s /usr/bin/nodejs /usr/local/bin/node
Node.js 项目最近推出了 0.10.0 版本的新稳定版本 在 Ubuntu 13x 上使用以下命令 sudo apt-get install nodejs=0.10.18-1chl1~raring1
使用以下命令以相同的顺序安装 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 #.#.#
以下是 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/
在 ubuntu 特定版本的节点可以在 nvm 的帮助下安装
安装非虚拟机
sudo apt install curl
curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash
source ~/.bashrc
要安装特定版本的节点,请使用命令 nvm install 并添加版本号。
nvm install 10.15.2
node -v