the /lib/x86_64-linux-gnu/libstdc++.so.6: version GLIBCXX_3.4.32' is for gcc13, so we need to update this file.

  1. 查看当前 GLIBCXX 版本
    首先通过命令strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
  1. 添加 PAP源
    sudo add-apt-repository ppa:ubuntu-toolchain-r/test:

这个命令添加了一个新的软件包源 (ppa:ubuntu-toolchain-r/test),该源提供了更新版本的 GCC 和相关库,包括 libstdc++。

  1. 更新软件包列表:
    sudo apt-get update:

更新本地的包索引列表,以确保能够从新的 PPA 源中获取最新的库版本。

  1. 升级 libstdc++6:
    sudo apt-get install --only-upgrade libstdc++6:

升级现有的 libstdc++6 库;


通过 ppa:ubuntu-toolchain-r/test 添加源的原因是因为 PPA(Personal Package Archive,个人包存档) 是 Ubuntu 特有的一种软件分发机制。它使得第三方开发者能够很容易地将自己维护的软件包发布给 Ubuntu 用户。

1. PPA 的工作原理

PPA 是由 Ubuntu Launchpad 平台托管的一个专用存档,用于提供由个人、组织或开源项目维护的软件包。用户可以通过 add-apt-repository 命令轻松添加 PPA,并从中获取和安装更新的软件包。每个 PPA 都有一个唯一的标识符,像 ppa:ubuntu-toolchain-r/test 就是这种标识符。该 PPA 源提供了更新版本的 GCC 和相关工具。

当你添加一个 PPA 时,以下事情会发生:

在执行 add-apt-repository ppa:ubuntu-toolchain-r/test 时,系统会自动添加该 PPA 的源到 /etc/apt/sources.list.d/ 中,并从 Launchpad 下载其包列表。

2. 与 PyPI 源的区别

PyPI(Python Package Index)和 Ubuntu 的 PPA 源在本质上是不同的东西:

当你添加 PyPI 源时,你是告诉 pip 工具去哪里下载 Python 包。而 PPA 是告诉 Ubuntu 系统通过 apt 去哪里获取特定的系统级软件包。由于 PPA 是专为 Ubuntu 和基于 Debian 的系统设计的,所以使用简单的 PPA 标识符(例如 ppa:ubuntu-toolchain-r/test)是方便用户的快捷方式。

3. 为什么 PPA 不使用网址?

PPA 是通过 Ubuntu 的 Launchpad 平台托管的,因此它有简化的格式:ppa:<user>/<ppa-name>。这不仅方便了用户(不需要记住复杂的 URL),也使得 PPA 源的管理更方便和统一。在后台,ppa:ubuntu-toolchain-r/test 实际上会被解析为一个标准的 URL,例如:

http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu

系统会自动完成这个解析过程,所以你不需要手动添加 URL。

相比之下,PyPI 本质上是一个全球通用的 Python 软件包仓库,而不是与某个特定 Linux 发行版紧密集成的工具,因此它的源是通过标准 URL(如 https://pypi.org)来指定的。

总结来说,PPA 是 Ubuntu 的一部分,提供了一种更简便的方式来管理和分发软件包,而不像 Python 的 pip 那样依赖标准网址,这使得 PPA 的管理更轻量化和灵活。