今天公司搞的一台阿里云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: versionGLIBC_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: versionCXXABI_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: versionGLIBC_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 ""
Runnvm 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
然后回去执行我之前那句,就好了,真棒,继续装下去!
有几个注意的地方:
- ./contrib/download_prerequisites 这步也挺慢,看起来像是从ftp里下东西,只要网络正常倒是能下 就是不快
- 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版本,成功!
总结一下:
- 干这种事,最好是直接做ssh连接命令行,不要用appnode这类工具系统提供的命令行,会有些限制
- 发生报错不要迷茫,把报错关键信息找到,去搜索,如果没有找到答案,别慌,先试试下一步走不走得通,走得通就先忽略试试
- 尝试领悟linux中生成安装的步骤,明白背后的软件系统原理: 下载 → 进目录 → configure → make → make install → 替换/软链接
好啦!收工!
版权归原作者 澄仙 所有, 如有侵权,请联系我们删除。