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


我已经找到了很多Node.js的安装说明,但它们看起来都很复杂 - 我不是超级系统管理员,但我可以解决。我在系统上有百胜,但我没有找到任何node.js软件包,我不知道如何在服务器上编译代码或在哪里编译代码。


130
2017-08-09 16:15




感谢大家的精彩回答。我相信你现在可以安装nodejs和npm!真棒 - qodeninja
dl.fedoraproject.org/pub/epel/6/x86_64/repoview/nodejs.html - Yolo Perdiem
...使用EPEL(如果您还没有回购,请安装说明: rackspace.com/knowledge_center/article/...)。 - geerlingguy
我认为EPEL的功能不再适用 - 或者在Centos 7中不起作用。 - jcollum


答案:


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

请注意,这需要使用Python 2.6+ ./configure 以上。您可以修改“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

现在做 nodejs 包:

# fpm -s dir -t rpm -n nodejs -v 0.8.18 -C /tmp/nodejs/ usr/bin usr/lib

然后安装并检查版本:

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

# /usr/bin/node --version
v0.8.18

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


139
2018-05-19 17:44



但那假设我已经安装好了吗?我不知道的是什么? - qodeninja
我需要包含yum install gcc-c ++ - Yehosef
虽然这在技术上是正确的,但对于任何类型的可维护性或可重复性,强烈建议通过RPM(或任何发行版的包装)管理包,而不是在需要的每台机器上手动构建和安装源。下面的一些答案链接到预建包。 - Jason Antman
现在尝试通过RPM来管理Node.JS及其任何生态系统是徒劳的,我说这是一个简单地运行包含Node和许多模块包的yum repo的人。 - jgoldschrafe
@IsaacRabinovitch他们增加了一个三元组 if,直到Python 2.5才出现。由于CentOS遵循将系统Python与2.4的自定义修补版本挂钩的RHEL路径,因此我的解决方案是 yum install python26 python26-devel 然后执行 python26 configure 代替 ./configure。然后,自从 Makefile 还执行Python脚本,我定义了 PYTHON 变量在那里 python26 代替 python。此外,你将需要 g++ 在那里,所以如果你还没有,你应该 yum install gcc-++。 - Hank Gay


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

$ sudo yum install npm

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

$ node -v

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

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


63
2018-03-09 14:14



这在我的CentOS 6.4系统上运行得非常好,给了我节点和npm。我得到节点0.10.13,稍微偏离最新的src tarball 0.10.15。看起来这需要更多的突出,因为它胜过'从源头安装'选项。 - Neek
跟随 这个 安装EPEL回购。 - Lee Chee Kiam
更新启用epel存储库运行 yum install -y epel-release,然后你可以用yum安装node和npm。 - svassr
我无法让epel或epel-release与yum for v4.2.x一起使用。下面的nave.sh答案效果很好。 - jcollum
通过yum安装给我一个非常旧的版本v0.10.42 ...如何通过yum / rpm安装Node以获取最新版本(目前为5.​​9.0)? - dokaspar


要旨 “通过包管理器安装Node.js” 不包含在CentOS上安装nodejs的说明。自Fedora 18以来,nodejs成为标准回购的一部分。我试试 “EPEL-的Fedora-的NodeJS” repo,发现它不再更新,将版本保留在过时的0.6.0。

好消息是,我们有 ,一个节点的虚拟环境,以帮助我们。

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

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

http://nodejs.org/dist/v$版/节点-V $版本的linux-x64.tar.gz”


27
2017-10-25 09:12



nodejs.tchol.org现在已经死了 - explunit
@explunit我只是更新答案。请尝试中殿。 - user974312
仅供参考。这似乎仅为此用户安装。如果要为整个系统安装它:./ nav.sh usingmain <your version> - awl
“nodejs成为标准回购的一部分” - 在CentOS 7上,它已经过时了。安装的版本是v10.x(在我们的IT部门使用的CentOS上)。 - jcollum


对于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

13
2018-05-07 15:11



您应该使用已发布的版本而不是github版本,除非您计划为节点项目做出贡献。 - B T


[编辑] 谢谢David在下面的评论中指出了这一点 nodejs.tchol.org 网站现在指向垃圾网站(原文如此!)..所以这个答案不再适用,不要使用它!

我可以确认克里斯在他的解决方案中解释的方法在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

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

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

我来看看这个......


11
2018-01-04 05:17



这在CentOS 6上运行得非常好。谢谢! - KyleFarris
“nodejs.tchol.org”现在已经死了 - David Newcomb
因此,您应该从源代码安装。别害怕。 - John Hunt
@JohnHunt从源代码安装意味着您无法再干净地卸载。我和Ruby有同样的问题。幸运的是,我可以回滚VM映像......从源代码安装意味着您需要深入了解正在安装的软件包。考虑到有数以千计的Linux软件包,这不是一个选择! - Christian
“上面的链接”?答案按投票排序,克里斯现在低于你的。 - Isaac Rabinovitch


如上所述,“tchol.org”已经消失,让CentOS人员放弃使用包管理器或切换到另一个操作系统。我与自己做了一个协议,反对除了实验/开发盒之外的所有人(再次)。

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

只需忽略repo-installer的rpm,它将yum指向已失效的站点。 那应该给我们买一点时间,除非他们变得过时了。

如果我找到它们,我会睁大眼睛看新的回购。


10
2018-04-14 19:27



我会说你的链接中的0.6版本已经过时了。目前RHEL / CentOS似乎没有什么好的选择,考虑到这一点很奇怪 Red Hat本身提供node.js PaaS - explunit


这在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

8
2018-02-18 19:51



我必须在我的CentOS 5.10上使用python 2.6,因为python 2.7不在repo中。 - ohho


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

这是我使用的脚本:

# 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

或者,如果你想要一个特定的版本(例如留在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

对于我在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

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


7
2017-11-08 00:50





上面的答案已经过时了

作为根

curl -sL https://rpm.nodesource.com/setup | bash -
yum install -y nodejs

你完成了

验证您的安装

node -v

7
2018-06-06 10:04



我的curl版本似乎不喜欢url的SSL证书的签名权限,因此脚本无声地失败。您可以使用curl -k选项通过它。 - Spike Williams
此外,在将-k添加到上面的curl命令之后,还需要在下载的“setup”脚本中更新对该域的curl下载的引用。然后使用bash手动运行该脚本。 - Spike Williams


没人提到 nvm 处理(多个)安全和轻松的节点安装 https://github.com/creationix/nvm?我发现它非常有用。

甚至可用于构建Node发布文件树以及自定义rpm包而无需编写太多脚本, latest-nodewget./configuremakemake install 等等等等。

nvm install 0.10.9

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


5
2018-04-04 12:32



是否有离线安装? - amit patel