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