linux中安装nvm报错: /lib64/libm.so.6: version `GLIBC_2.28

发布时间 2023-03-30 18:15:27作者: 爵岚

: /lib64/libm.so.6: version `GLIBC_2.27

 

# 查看系统内安装的glibc版本
strings /lib64/libc.so.6 |grep GLIBC_

解决

cd /root
# 编译安装
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 --with-headers=/usr/include --with-binutils=/usr/bin


# tips: 如果没报错可不用处理这里的步骤...
# ***********************************************************************
# 这一步提示如下错误
# configure: error: 
# *** These critical programs are missing or too old: compiler
# *** Check the INSTALL file for required versions.

# 解决:  升级gcc与make
# 1. 安装GCC-8
yum install -y devtoolset-8-gcc devtoolset-8-gcc-c++ devtoolset-8-binutils
# 设置环境变量
echo "source /opt/rh/devtoolset-8/enable" >> /etc/profile
source /etc/profile

# 2. 升级 make
wget https://ftp.gnu.org/gnu/make/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

# 继续编译 glibc   -- 进入刚才安装`glibc-2.28/build`的目录
cd /root/glibc-2.28/build
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
# ***********************************************************************


make && make install
# 日志最后会出现如下问题
# primary library!
# make[1]: *** [Makefile:111: install] Error 1
# make[1]: Leaving directory '/root/glibc-2.28'
# make: *** [Makefile:12: install] Error 2

# 再次查看系统内安装的glibc版本
strings /lib64/libc.so.6 |grep GLIBC_

# 测试
node -v
npm -v

# 然后会报错如下:
# [root@master build]# node -v
# node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' 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 `GLIBCXX_3.4.21' not found (required by node)

# 解决
yum install libstdc++.so.6 -y
# 查看动态链接库 -- 发现并没有需要的1.3.9
strings /usr/lib/libstdc++.so.6 | grep 'CXXABI'
# 下载需要的版本库,之后软连接到运行系统上
wget http://ftp.de.debian.org/debian/pool/main/g/gcc-8/libstdc++6_8.3.0-6_amd64.deb
ar -x libstdc++6_8.3.0-6_amd64.deb
tar -xvf data.tar.xz
cp usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25 /usr/lib64/
find / -name "libstdc++*"
# 删除低版本库的软连接
rm -rf /usr/lib64/libstdc++.so.6
ll /usr/lib64/libstd*
ln -s /usr/lib64/libstdc++.so.6.0.25 /usr/lib64/libstdc++.so.6

# 检验
node -v
npm -v

 

安装nvm

github下载地址:https://github.com/coreybutler/nvm-windows/releases

nvm-noinstall.zip: 绿色免安装版本,但是使用之前需要配置
nvm-setup.zip:安装版,下载之后点击安装,无需配置就可以使用

3. 常见命令

1. nvm -v //查看nvm版本

nvm --version :显示 nvm 版本
2. nvm list //显示版本列表

nvm list :显示已安装的版本(同 nvm list installed
nvm list installed:显示已安装的版本
nvm list available:显示所有可以下载的版本
3. nvm install //安装指定版本node.js

nvm install 14.5.0:安装 14.5.0 版本的 node.js
nvm install latest:安装最新版本
4. nvm use //使用指定版本node

nvm use 14.5.0: 切换到 14.5.0 版本的 node.js
--lts // 自动切换到长期支持版本
--lts=<LTS name> // 自动切换到指定名称的node长期支持版本
5. nvm uninstall <version> //卸载指定版本 node

nvm uninstall 14.5.0:卸载到 14.5.0 版本的 node.js
nvm uninstall --lts // 卸载长期支持版本的node
nvm uninstall --lts=<LTS name> // 卸载一个指定名称的长期支持版本的node
6. nvm --help //显示命令行帮助信息

[ ps:在运行nvm install 的时候,有可能会出现无权限安装的问题,请 以管理员身份 运行 cmd ]

4. 其他命令

nvm deactivate // 取消当前nvm命令行效果
1. nvm 查看node版本

nvm current // 查看当前使用的node版本
nvm ls // 查看所有本地可用的node版本
nvm ls <version> // 参看指定版本
nvm ls-remote // 查看所有可用远程版本
--lts // 查看所有长期支持版本
nvm ls-remote <version> // 参看所有node的指定远程版本
--lts // 查看所有node长期支持版本
--lts=<LTS name> // 仅查看指定名称的长期支持版本
2. nvm 版本别名

nvm alias [<pattern>] // 显示所有以<pattern>开头的版本别名
nvm alias <name> <version> // 给版本<version>设置一个别名
nvm unalias <name> // 删除<name>的版本别名
3. nvm和npm

nvm install-latest-npm // 在当前node版本中,将npm升级到最新版
nvm reinstall-packages <version> // 在全局重新安装npm,从<version>版本到当前版本
4. npm which显示安装路径

npm which [current | <version>] //显示已安装node的安装路径。

 

nvm cache dir // 显示nvm的缓存目录
nvm cache clear // 清楚nvm的缓存目录
6. nvm运行node

nvm exec [--silent] [version] [<command>] // 在<version>运行命令<command>
nvm exec 4.8.3 node app.js //Run `node app.js` with the PATH pointing to node 4.8.3
nvm run [--silent] [version] [<args>] // 在<version>以参数<args>运行node --
nvm run 6.10.3 app.js //Run app.js using node 6.10.3
7. 设置镜像

nvm node_mirror [url] :设置node镜像。默认是https://nodejs.org/dist/。如果不写url,则使用默认url。设置后可至安装目录settings.txt文件查看,也可直接在该文件操作。
nvm npm_mirror [url] :设置npm镜像。https://github.com/npm/cli/archive/。如果不写url,则使用默认url。设置后可至安装目录settings.txt文件查看,也可直接在该文件操作。
8. 版本管理

nvm on :开启node.js版本管理。
nvm off :关闭node.js版本管理。