centos7安装node18及升级glbic

centos7安装node18及升级glbic

CentOS7安装nodejs18及以上版本会报错,glibc版本过低

安装nvm

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
source ~/.nvm/nvm.sh

nvm install 18 
nvm use 18

#设置默认版本
nvm alias default 14

升级gcc

安装yum源,并修改

yum install centos-release-scl centos-release-scl-rh
vim /etc/yum.repo.d/CentOS-SCLo-scl.repo
#mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=7&repo=sclo-sclo
baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/sclo

vim /etc/yum.repo.d/CentOS-SCLo-scl-rh.repo
注释mirrolist
#mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=7&repo=sclo-rh
新增阿里云baseurl
baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/
清除并重新创建缓存
yum clean all
yum makecache fast
解决报错
Could not resolve host: mirrorlist.centos.org; Unknown error

安装gcc

yum install devtoolset-8*
#备份并重新创建软连接
mv /usr/bin/gcc /usr/bin/gcc-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++-4.8.5
ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++
#配置环境变量
scl enable devtoolset-8 bash
source /opt/rh/devtoolset-8/enable
echo "source /opt/rh/devtoolset-8/enable" >>/etc/profile
#验证
gcc --version

升级make

wget https://ftp.gnu.org/gnu/make/make-4.3.tar.gz
tar xf make-4.3.tar.gz
tar -xzvf make-4.3.tar.gz
cd make-4.3/
./configure  --prefix=/usr/local/make
make && make install
cd /usr/bin/ && mv make make.bak
ln -sv /usr/local/make/bin/make /usr/bin/make
#验证
make -v

升级 libstdc++

yum whatprovides libstdc++.so.6  
yum update  libstdc++.x86_64

wget http://www.vuln.cn/wp-content/uploads/2019/08/libstdc.so_.6.0.26.zip
unzip libstdc.so_.6.0.26.zip
cp libstdc++.so.6.0.26 /lib64/
cd /lib64
#备份
cp libstdc++.so.6 libstdc++.so.6.bak
rm -f libstdc++.so.6
# 重新链接
ln -s libstdc++.so.6.0.26 libstdc++.so.6

升级glibc

安装binutils bison

yum install binutils bison
解决报错
置报错GNU ld,需要安装binutils
配置报错bison,需要安装bison

编译安装

wget http://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz
tar xf glibc-2.28.tar.gz
cd glibc-2.28

mkdir build
cd build

../configure --prefix=/usr --disable-profile --enable-add-ons --enable-obsolete-nsl --with-headers=/usr/include --with-binutils=/usr/bin 

make -j4
make install

make -j4 localedata/install-locales
解决报错
报错 /bin/ld: cannot find -lnss_test2
解决:…/scripts/test-installation.pl 中添加&& $name ne "nss_test2"

在这里插入图片描述

vim ../scripts/test-installation.pl
	130行左右添加 && $name ne "nss_test2"

在这里插入图片描述

报错undefined reference to `_nsl_default_nss@GLIBC_PRIVATE’
解决:configure配置添加参数 --enable-obsolete-nsl

在这里插入图片描述

/lib/../lib64/libnss_nis.so: undefined reference to `_nsl_default_nss@GLIBC_PRIVATE'
collect2: error: ld returned 1 exit status
Execution of gcc -B/usr/bin/ failed!

configure配置添加参数 --enable-obsolete-nsl
报错-bash: warning: setlocale: LC_TIME: cannot change locale (en_US.UTF-8)
解决 cd build && make -j4 localedata/install-locales

在这里插入图片描述

-bash: warning: setlocale: LC_TIME: cannot change locale (en_US.UTF-8)

make -j4 localedata/install-locales
报错sudo参数报错/var/tmp/scl2V4rNN: line 8: -s: command not found
解决 将原sudo命令重新创建软链接
which sudo
mv /opt/rh/devtoolset-8/root/usr/bin/sudo /opt/rh/devtoolset-8/root/usr/bin/sudo.bak
ln -s /usr/bin/sudo /opt/rh/devtoolset-8/root/usr/bin/
yum报错rpmdb open failed
解决 重建 rpm 数据库
error: rpmdb: BDB0113 Thread/process 30823/139919355704576 failed: BDB1507 Thread died in Berkeley DB library
error: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db5 -  (-30973)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:

Error: rpmdb open failed

rm -f /var/lib/rpm/__db.00*: 删除 rpm 数据库文件;
rpm --rebuilddb: 重建 rpm 数据库;
yum clean all: 清理可能的缓存

参考文档

  • https://nestealin.com/28244582/
  • https://www.cnblogs.com/liuzhenwei/p/18023102
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值