ubuntu,麒麟 升级 libstdc++ 到 3.4.25
升级 libstdc++ 到 3.4.25
背景
有的应用对 libstdc++ 版本有严格要求,我在使用 ollama 需要 libstdc++ >= 3.4.25,但主机上的 libstdc++ 最高仅支持 GLIBCXX_3.4.24。本文将详细介绍如何升级 libstdc++ 到目标版本。
查看当前 libstdc++ 版本
在升级前,首先需要确认当前系统中 libstdc++ 的版本。通过以下命令可以查看已安装的 libstdc++ 支持的 GLIBCXX 版本号:
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
执行后,输出中若最高版本为 GLIBCXX_3.4.19,则说明需要升级。
升级步骤
1. 下载安装包
首先需要下载高版本的 libstdc++ 安装包。以 libstdc++6_8.3.0-6_amd64.deb 为例(链接可能因版本发布失效,可尝试去掉文件名查看目录下的可用版本):
wget http://ftp.de.debian.org/debian/pool/main/g/gcc-8/libstdc++6_8.3.0-6_amd64.deb
2. 解压安装包
下载完成后,解压 .deb 包:
# 解压 deb 包
ar -x libstdc++6_8.3.0-6_amd64.deb
# 解压数据文件
tar -xf data.tar.xz
解压后会生成一个 usr 目录,其中包含新版本的 libstdc++ 库文件。
3. 更新软链接
通常 /usr/lib64/libstdc++.so.6 是一个软链接,指向具体版本的库文件(如 libstdc++.so.6.0.19)。通过以下命令查看当前状态:
# 查看当前软链接指向
ll /usr/lib64/libstdc++.so.6
# 输出示例:lrwxrwxrwx 1 root root 30 Feb 23 10:40 /usr/lib64/libstdc++.so.6 -> /usr/lib64/libstdc++.so.6.0.19
若当前指向旧版本(如 6.0.19),需将其修改为新版本(如 6.0.25):
# 强制覆盖软链接到新版本
ln -sf /usr/lib64/libstdc++.so.6.0.25 /usr/lib64/libstdc++.so.6
验证升级结果
升级完成后,再次执行版本检查命令,确认最高 GLIBCXX 版本是否已更新:
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
若输出中包含 GLIBCXX_3.4.25,则说明升级成功。
浙公网安备 33010602011771号