使用旧版 glibc 在 Ubuntu 12.04 上进行编译

使用旧版 glibc 在 Ubuntu 12.04 上进行编译

我正在上一门操作系统课程,需要在 Ubuntu 9.10 上编译一个程序。该程序在 Ubuntu 的后续版本(例如 12.04)上无法按预期运行

我的问题是,如何在 Ubuntu 12.04(最新版本)上使用 9.10 内核编译 C 程序

我已经在我的计算机上安装了 Ubuntu 9.10 分区,因此我可以使用那里的库。但是,尽管如此,我还是想从我的 12.04 分区开始工作。

或许本手册有帮助?

答案1

最好为 Ubuntu 9.10 创建一个“chroot”,并在该 chroot 内进行编译。

我在回答中对此有一些细节构建多个软件包以部署到不同的 Ubuntu 版本,但基本流程是:

  • 用于mk-sbuild --name=my-karmic-chroot karmic为 Ubuntu 9.10 创建新的 chroot(9.10 的代号为“karmic”)
  • 使用schroot -c my-karmic-chroot进入新的 chroot,并进行编译

如果您正在编译 Ubuntu 软件包,则sbuild可以使用该工具来自动执行此操作。

请注意,这不使用核心9.10 版仅包含用户空间组件(包括 libc 和 C 运行时库)。您仍将运行 12.04 内核。但是,您是否特别需要 9.10 内核?

如果您确实需要 9.10 内核,您可以virt-manager在 12.04 安装上设置 9.10 虚拟机。然后您可以像登录真正的 9.10 机器一样登录。

相关内容