【问题标题】:How to test against an arbitrary version of glibc?如何针对任意版本的 glibc 进行测试?
【发布时间】:2021-05-31 18:33:56
【问题描述】:

我想针对任意 glibc 版本(例如 glibc 2.25)编译和测试我的 C++ 代码。最好的方法是什么?

glibc >=2.17 是首选,但最近的截止日期就可以了。 x86 或 x86-64 就足够了,如果有帮助的话,我也很乐意使用 Docker。

感谢您的帮助!

【问题讨论】:

  • 你听说过 docker 吗?
  • 我确实有。如何使用 Docker 测试特定的 glibc 版本?是否有支持各种 glibc 版本的首选映像?
  • How can I use Docker to test a particular glibc release? 运行它? Is there a preferred image that supports a wide range of glibc releases? 不,以旧的 ubuntu 版本为例。
  • glibc 版本是源代码压缩包,预计将由发行版打包。比如Ubuntu 16默认有glibc 2.23;我不知道如何在上面安装(比如说)glibc 2.27,或者这是否安全。
  • docker run -ti --rm ubuntu:18.04 ldd --version ?

标签: linux glibc


【解决方案1】:

如何针对任意版本的 glibc 进行测试?

一种简单的方法是选择您最喜欢的发行版并运行它的旧版本,然后使用存储库的历史快照将发行版更新到其特定版本。以您最喜欢的虚拟化方法运行此类分发。然后在该虚拟化中导入您的代码并运行您的测试。

我最喜欢的发行版是 Archlinux,它有仓库的每日快照since 2013

如果内核版本兼容性不是问题,您可以使用 docker - docker hub 附带了许多知名 linux 发行版的镜像。例如 glibc 2.27 在 ubuntu:18.04 上可用:

$ docker run -ti --rm ubuntu:18.04 ldd --version
ldd (Ubuntu GLIBC 2.27-3ubuntu1.4) 2.27
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-05
    • 1970-01-01
    • 2013-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-22
    相关资源
    最近更新 更多