在Red Hat上安装Node.js

16

我正在尝试使用以下命令在Red Hat Enterprise Linux Server release 6.1上安装node.js:

sudo yum install nodejs npm

我收到了以下错误:

Error: Package: nodejs-0.10.24-1.el6.x86_64 (epel)
           Requires: libssl.so.10(libssl.so.10)(64bit)
Error: Package: nodejs-devel-0.10.24-1.el6.x86_64 (epel)
           Requires: libcrypto.so.10(libcrypto.so.10)(64bit)
Error: Package: nodejs-0.10.24-1.el6.x86_64 (epel)
           Requires: libcrypto.so.10(libcrypto.so.10)(64bit)
Error: Package: nodejs-devel-0.10.24-1.el6.x86_64 (epel)
           Requires: libssl.so.10(libssl.so.10)(64bit)
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

我也试过以下命令:

sudo yum install -y nodejs

我遇到了以下错误:

Error: Package: nodejs-0.10.24-1.el6.x86_64 (epel)
           Requires: libssl.so.10(libssl.so.10)(64bit)
Error: Package: nodejs-0.10.24-1.el6.x86_64 (epel)
           Requires: libcrypto.so.10(libcrypto.so.10)(64bit)

我应该如何安装它?我想安装最新版本。

8个回答

33

4
嗨,我使用了这种方法,但是仍然出现“没有可用的nodejs软件包”的提示?我该怎么办?谢谢。 - liam xu
2
上面的脚本将很快被特定版本的脚本所取代: curl -sL https://rpm.nodesource.com/setup_4.x | bash - - Frank
1
@liamxu 我也遇到了同样的问题。解决方法是我忘记在sudo命令中加上“-E”选项。如果你不是以root身份运行,例如使用https_proxy,那么在管道符后面必须使用“sudo -E bash -”。这在脚本介绍中已经写明,但我却忽略了很长一段时间。 - Björn

13

我还没有足够的声望来评论jfredys的回答,但是想要添加一个附言。他的回答在某些环境下是正确的,但是对我而言失败了,因为我遇到了以下错误:

您的发行版被识别为“redhat-release-server-6Server-6.6.0.2.el6.x86_64”,目前不受支持。如果您认为这是不正确的,或者希望我们考虑支持您的发行版,请联系NodeSource,网址为https://github.com/nodesource/distributions/issues

最近我在另一台服务器上尝试安装meteor包时遇到一些奇怪的问题。结果发现是由于curl试图访问SSL站点而导致的代理/防火墙问题。我不得不修改所有curl命令以使用-k来绕过虚假的SSL警告。首先,我将安装脚本复制到本地:

curl -kL https://rpm.nodesource.com/setup > ~/nodeInstall.sh

在此期间,我删除了s(安静)选项,以便更好地了解任何问题(幸运的是没有问题)。在脚本中,我将所有的curl命令都改为使用-k(也删除了安静选项,以防万一)。我将其设置为可执行文件并且这个操作非常顺畅(在sudo下),然后我终于能够通过以下方式安装npm

sudo yum install -y nodejs

一切都很快乐:

$npm -version
1.4.28

8
你需要将CentOS 6的版本更新到6.5+或者至少更新你的OpenSSL,因为提供给CentOS 6的Node.js软件包是在使用新版OpenSSL(6.5+)的系统上 进行编译的

另一种方法是从源代码手动编译和安装Node.js,或者使用来自nodejs.org的预编译二进制文件。


6
根据https://nodejs.org/en/download/package-manager/所述,您需要启动以下命令:
curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -

或者

curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -

根据您需要的NodeJS版本进行操作。然后只需简单运行即可。
yum -y install nodejs

1
sudo su root -curl --silent --location https://rpm.nodesource.com/setup_9.x | bash - 对我起了作用。 - Lightbeard

3
如果这个命令不能正常工作,请访问https://rpm.nodesource.com/setup,在您的浏览器中打开该网址。它会提供如何使用wget的指导。
wget -qO- https://rpm.nodesource.com/setup | bash -

也许这会对某些人有所帮助!

1

我认为@Eric Soyke的回答应该被标记为正确答案。如果您想要使用node v4,则需要将'setup'替换为'setup_4.x'。

命令的顺序(至少对于root用户)如下:

curl -kL https://rpm.nodesource.com/setup > ~/nodeInstall.sh
# or for v4 / v6:
#  curl -kL https://rpm.nodesource.com/setup_4.x > ~/nodeInstall.sh
#  curl -kL https://rpm.nodesource.com/setup_6.x > ~/nodeInstall.sh
sed -i -e 's_curl _curl -k _g' nodeInstall.sh
chmod u+x nodeInstall.sh
./nodeInstall.sh
yum -y install nodejs
rm nodeInstall.sh

1

我建议使用dnf安装所需的NodeJS版本,因为yum可能会拉取错误的版本。如此处所示。

列出可用的版本:

sudo dnf module list nodejs

安装你想要的:

sudo dnf module install nodejs:14

0

这对我有用。以超级用户身份运行两个命令。

sudo curl --silent --location https://rpm.nodesource.com/setup_8.x | bash -

sudo yum install -y nodejs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接