你如何在 CentOS 上安装 Node.JS?

qod*_*nja 132 installation centos node.js

我找到了许多 Node.js 的安装说明,但它们看起来都很复杂——我不是超级系统管理员,但我可以绕过。我在系统上有 yum,但是我没有找到任何 node.js 包,而且我不确定如何在服务器上编译代码或将它放在哪里。

qua*_*nta 138

su - 
yum install gcc-c++ openssl-devel
cd /usr/local/src
wget http://nodejs.org/dist/node-latest.tar.gz
tar zxvf node-latest.tar.gz
(cd into extracted folder: ex "cd node-v0.10.3")
./configure
make
make install
Run Code Online (Sandbox Code Playgroud)

请注意,这需要 Python 2.6+./configure以上才能使用。python2.7如有必要,您可以修改“配置”文件以指向第 1 行。

要创建 RPM 包,您可以使用FPM

# wget http://nodejs.org/dist/node-latest.tar.gz
# tar zxvf node-latest.tar.gz
(cd into extracted folder: ex "cd node-v0.10.3")
# ./configure --prefix=/usr/
# make
# mkdir /tmp/nodejs
# make install DESTDIR=/tmp/nodejs/
# tree -L 3 /tmp/nodejs/
/tmp/nodejs/
??? usr
    ??? bin
    ?   ??? node
    ?   ??? node-waf
    ?   ??? npm -> ../lib/node_modules/npm/bin/npm-cli.js
    ??? include
    ?   ??? node
    ??? lib
    ?   ??? dtrace
    ?   ??? node
    ?   ??? node_modules
    ??? share
        ??? man
Run Code Online (Sandbox Code Playgroud)

现在制作nodejs包:

# fpm -s dir -t rpm -n nodejs -v 0.8.18 -C /tmp/nodejs/ usr/bin usr/lib
Run Code Online (Sandbox Code Playgroud)

然后安装并检查版本:

# rpm -ivh nodejs-0.8.18-1.x86_64.rpm 
Preparing...                ########################################### [100%]
   1:nodejs                 ########################################### [100%]

# /usr/bin/node --version
v0.8.18
Run Code Online (Sandbox Code Playgroud)

来源:https : //github.com/jordansissel/fpm/wiki/PackageMakeInstall

  • 虽然这在技术上是正确的,但对于任何类型的可维护性或可重复性,强烈建议通过 RPM(或任何发行版的包装)管理包,而不是在每台需要它的机器上从源代码手动构建和安装。下面的许多答案链接到预构建的软件包。 (17认同)
  • 我需要包括 yum install gcc-c++ (9认同)
  • 现在尝试通过 RPM 管理 Node.JS 及其任何生态系统是徒劳的,我说这是一个简单运行包含 Node 和许多模块包的 yum 存储库的人。 (5认同)
  • @IsaacRabinovitch 他们添加了一个三元 `if`,直到 Python 2.5 才出现。由于 CentOS 遵循 RHEL 路径,将系统 Python 与某些自定义补丁版本 2.4 挂钩,因此我的解决方案是 `yum install python26 python26-devel` 然后执行 `python26 configure` 而不是 `./configure`。然后,由于`Makefile` 也执行Python 脚本,我将`PYTHON` 变量定义为`python26` 而不是`python`。此外,您将需要`g++`,所以如果您还没有,您应该`yum install gcc-++`。 (5认同)
  • 但那是假设我已经安装好了?我没有什么身份? (3认同)

gee*_*guy 65

如果你有 CentOS 6.x,并且已经启用了 EPEL 仓库,你可以使用 yum 来安装 node/npm:

$ sudo yum install npm
Run Code Online (Sandbox Code Playgroud)

安装完成后,检查以确保节点设置正确:

$ node -v
Run Code Online (Sandbox Code Playgroud)

(应该返回类似的东西v0.10.36)。

如果您想要更高版本的 Node.js(例如 4.x、5.x 等),您可以使用Nodesource yum 存储库而不是 EPEL。

  • 这在我的 CentOS 6.4 系统上运行良好,并为我提供了 node 和 npm。我得到了节点 0.10.13,与最新的 src tarball 0.10.15 相差一点点。似乎这需要更多的支持才能脱颖而出,因为它胜过“从源代码安装”选项。 (2认同)

小智 27

要点“通过包管理器安装 Node.js”不再包含在 CentOS 上安装 nodejs 的说明。从 Fedora 18 开始,nodejs 成为标准仓库的一部分。我尝试了“epel-fedora-nodejs” repo,发现它不再更新,将版本留在过时的0.6.0。

好消息是,我们有nave,一个 Node 的虚拟环境,来帮助我们。

https://github.com/isaacs/nave

现在安装 nodejs 非常简单。

$ wget https://raw.github.com/isaacs/nave/master/nave.sh
$ chmod +x nave.sh
$ ./nave.sh install 0.8.8
$ ./nave.sh use 0.8.8
$ node -v  
v0.8.8
Run Code Online (Sandbox Code Playgroud)

在 nave.sh 文件中,您可能需要将本地 url 更改为与 nodejs 的最新 dist 结构匹配。对于 0.11.0,我将 nave.sh 更改为具有以下 URL

" http://nodejs.org/dist/v $version/node-v$version-linux-x64.tar.gz"


Jas*_*yle 13

对于 CentOS

yum install gcc-c++ make git
cd /usr/local/src/
git clone git://github.com/joyent/node.git
cd node
./configure
make
make install
Run Code Online (Sandbox Code Playgroud)

  • 您应该使用发布版本而不是 github 版本,除非您打算为节点项目做出贡献。 (2认同)

Luk*_*uke 11

[编辑]感谢大卫在下面的评论中指出nodejs.tchol.org站点现在指向垃圾邮件站点(原文如此!)。所以这个答案不再有效,不要使用它!

我可以确认 Chris 在他的解决方案中解释的方法在 CentOS 5.4 中确实有效(我一分钟前已经完成了 :))

wget http://nodejs.tchol.org/repocfg/el/nodejs-stable-release.noarch.rpm
yum localinstall --nogpgcheck nodejs-stable-release.noarch.rpm
yum install nodejs-compat-symlinks npm
Run Code Online (Sandbox Code Playgroud)

PS:当然你必须是root(或使用sudo)才能安装..

除了从源代码安装(这始终是一个选项)之外,也许还有一个选择: 在这里我读到 “node.js 已被接受到 2012 年 12 月的 Fedora Rawhide 中,并将在 Fedora 18 中可用。” ,所以也许它最终会进入标准的 CentOS 存储库

我看看这个。。

  • “nodejs.tchol.org”现在已经死了 (12认同)
  • 这在 CentOS 6 上运行良好。谢谢! (3认同)
  • 因此,您应该从源代码安装。不要害怕。 (2认同)
  • @JohnHunt 从源代码安装意味着您无法再完全卸载。我在 Ruby 上也遇到过同样的问题。幸运的是,我可以回滚 VM 映像...从源代码安装意味着您需要对正在安装的软件包有深入的了解。考虑到有数千个 linux 软件包,这不是一个选择! (2认同)

Jos*_*phK 10

如上所述,"tchol.org" 消失了,让 CentOS 的人们要么放弃使用软件包管理器,要么切换到另一个操作系统。我与自己达成协议,反对在除实验/开发机器之外的所有机器上(再次)执行前者。

幸运的是,仍有 rpm 可用:http : //patches.fedorapeople.org/oldnode/stable/el6/x86_64/

只需忽略 repo-installer 的 rpm,它将 yum 定向到已失效的站点。这应该为我们争取一点时间,除非/直到它们变得太过时。

我会睁大眼睛寻找更新的回购,如果我找到它们,请回帖。


小智 8

这在 CentOS 5.7 上对我有用:

yum install openssl-devel 
yum install python27
yum install gcc-c++
cd /usr/local/src
wget http://nodejs.org/dist/node-latest.tar.gz
tar zxvf node-latest.tar.gz
cd node-v[tab]
python2.7 configure
make PYTHON=python2.7
make install
Run Code Online (Sandbox Code Playgroud)

  • 我必须在 CentOS 5.10 上使用 python 2.6,因为 python 2.7 不在 repo 中。 (3认同)

小智 7

还有一种方法我没有在任何其他答案中看到,那就是使用自 0.8.6以来发布的Linux 二进制发行版

这是我使用的脚本:

# get the latest stable binary 
latest_node=$(curl http://nodejs.org/dist/latest/SHASUMS.txt | grep 'linux-x64.tar.gz' | awk '{ print $2 }')
wget -O ~/nodestable.tar.gz http://nodejs.org/dist/latest/$latest_node
cd /usr/local/
sudo tar xzvf ~/nodestable.tar.gz --strip=1
Run Code Online (Sandbox Code Playgroud)

或者,如果你想要一个特定的版本(例如留在 0.8 系列上):

wget http://nodejs.org/dist/v0.8.22/node-v0.8.22-linux-x64.tar.gz
cd /usr/local/
sudo tar xzvf ~/node-v0.8.22-linux-x64.tar.gz --strip=1
Run Code Online (Sandbox Code Playgroud)

对于 CentOS 6.3 上的我,我必须添加以下链接,以便 node 和 npm 命令可以从普通用户或 sudo 运行。根据您的版本,可能不需要。

sudo ln -s /usr/local/bin/node /usr/bin/node
sudo ln -s /usr/local/lib/node /usr/lib/node
sudo ln -s /usr/local/bin/npm /usr/bin/npm
sudo ln -s /usr/local/bin/node-waf /usr/bin/node-waf
Run Code Online (Sandbox Code Playgroud)

坦率地说,CentOS/RHEL 上 node.js 的情况相当糟糕,因为没有一个 repos 包含 node.js(请参阅此处的相关问题)。此答案具有与前面提到的从源代码编译相同的缺点。


jos*_*123 7

上面的答案已经过时

作为根

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

你就完成了。

验证您的安装

node -v
Run Code Online (Sandbox Code Playgroud)


fso*_*lsa 5

没有人提到nvm可以安全轻松地处理(多个)Node 安装https://github.com/creationix/nvm?我觉得它很有用。

即使以构建节点发布的文件树等定制的rpm包没有脚本太多有用的,latest-nodewget./configuremakemake install等等等等。

nvm install 0.10.9
Run Code Online (Sandbox Code Playgroud)

将根据发行版下载二进制文件或编译源代码。


小智 5

在 RHEL、CentOS 或 Fedora 上以 root 身份运行,用于 Node.js v4 LTS Argon:

curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -
Run Code Online (Sandbox Code Playgroud)

或者 Node.js v5:

curl --silent --location https://rpm.nodesource.com/setup_5.x | bash -
Run Code Online (Sandbox Code Playgroud)

Node.js 0.10 的替代方案:

curl --silent --location https://rpm.nodesource.com/setup | bash -
Run Code Online (Sandbox Code Playgroud)

然后以 root 身份安装:

yum -y install nodejs
Run Code Online (Sandbox Code Playgroud)

来源:https : //nodejs.org/en/download/package-manager/