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,则说明升级成功。


posted @ 2025-05-14 12:19  xiaoganghu  阅读(517)  评论(0)    收藏  举报