0


centos 7 安装nodejs18+版本报错的问题修复记录

今天公司搞的一台阿里云ECS需要部署nodejs项目,需要的nodejs版本挺高

需要18版本以上,而且最好20,感觉上比较先进,哈哈

安装nodejs 16可以,但是18 19 20 21 统统装不上,报错如下:

Downloading and installing node v20.11.1...
Downloading https://nodejs.org/dist/v20.11.1/node-v20.11.1-linux-x64.tar.xz...
######################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
node: /lib64/libm.so.6: version GLIBC_2.27' not found (required by node) node: /lib64/libstdc++.so.6: version GLIBCXX_3.4.20' not found (required by node)
node: /lib64/libstdc++.so.6: version CXXABI_1.3.9' not found (required by node) node: /lib64/libstdc++.so.6: version GLIBCXX_3.4.21' not found (required by node)
node: /lib64/libc.so.6: version GLIBC_2.28' not found (required by node) node: /lib64/libc.so.6: version GLIBC_2.25' not found (required by node)
nvm is not compatible with the npm config "prefix" option: currently set to ""
Run nvm use --delete-prefix v20.11.1 to unset it.

关键错误提炼: ode: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node)

于是就尝试去装呗,反正是个空的,随便折腾哈哈

查到说GLIBC装高版本可以向下兼容低版本,所以……

先去找这个怎么装,找到一篇不错的文章,按顺序操作就行了

解决:centos7 中node: /lib64/libm.so.6: version GLIBC_2.27‘ not found (required by node)_node: /lib64/libm.so.6: version glibc_2.27' not f-CSDN博客

开搞!

执行第一句就卡住了😓

yum install -y devtoolset-8-gcc devtoolset-8-gcc-c++ devtoolset-8-binutils

提示No package devtoolset-8-gcc available. 源的问题吗?换了也不行,果断再去找找,哈哈很快发现另一篇解决方法:

关于“没有可用软件包 devtoolset-9-gcc-c++”的解决办法_source /etc/profile 没有devtoolset-9/文件或目录-CSDN博客

按这篇博文的说法

执行:

yum list installed|grep "scl"

我这里显示空的第二步跳过,直接装他让装的

yum install -y centos-release-scl centos-release-scl-rh

然后回去执行我之前那句,就好了,真棒,继续装下去!

有几个注意的地方:

  1. ./contrib/download_prerequisites 这步也挺慢,看起来像是从ftp里下东西,只要网络正常倒是能下 就是不快
  2. make 这步最慢,博主大人也说了可以分进程同时运行命令,但我真的好奇能有多慢……确实需要等好~~~~~久 如果知道自己的机器核心数,最好听话让他快点,不要像我这么好奇😄

是真的好~~~~~~慢啊😭 执行了将近俩小时才完……

执行完make install 直接重启,按道理不可能生效的

gcc成功安装,继续!

make升级过程中,执行make又报错了😔

make[3]: *** [concat-filename.o] Error 1
make[3]: Leaving directory `/root/make-4.3/lib'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/root/make-4.3/lib'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/root/make-4.3/lib'
make: *** [all-recursive] Error 1 

真的是 继续查咋解决,各种搜索,发现大家都挺正常的构建完了,我这怎么报错了呢?

先从环境入手,首先排除目录和账号,发现root账号换了目录,也还是报错,那就是我的appnode的问题了!

果断进阿里云的远程连接,发现竟然顺利安装完,然后备份&建立软连接,输入make -v 哈哈 搞定!

继续!安装GLIBC_2.28!

用cd ~ 回到root目录,继续一行一行执行命令

又卡住,报错:

configure: error:

*** These critical programs are missing or too old: bison

*** Check the INSTALL file for required versions.

明显,说我bison这个没有 去装!

yum install bison

按接下来的说明,一顿操作,安装node21版本,成功!

总结一下:

  1. 干这种事,最好是直接做ssh连接命令行,不要用appnode这类工具系统提供的命令行,会有些限制
  2. 发生报错不要迷茫,把报错关键信息找到,去搜索,如果没有找到答案,别慌,先试试下一步走不走得通,走得通就先忽略试试
  3. 尝试领悟linux中生成安装的步骤,明白背后的软件系统原理: 下载 → 进目录 → configure → make → make install → 替换/软链接

好啦!收工!

标签: centos linux 运维

本文转载自: https://blog.csdn.net/chiele/article/details/136395102
版权归原作者 澄仙 所有, 如有侵权,请联系我们删除。

“centos 7 安装nodejs18+版本报错的问题修复记录”的评论:

还没有评论