是否可以在同一台机器上安装和使用两个不同的 glibc 版本。其中一个版本仅用于运行依赖于旧 glibc 二进制文件的遗留软件?
是否可以借助包管理器来做到这一点(例如“安装此包及其依赖项/opt/old-glibc
),而不是直接管理它
答案1
是的,这是可能的。您必须非常小心库加载路径,并且可能需要重新编译一些其他库。
作为最小摩擦的路径,我建议在一个较旧版本的 Debian 或 Ubuntu 中安装chroot。也就是说,创建一个目录,例如/old/etch
,并在以该目录为根的树中安装较旧的发行版;要运行该有问题的程序,请调用chroot
将其文件系统视图限制为/old/etch
.
Debian(或 Ubuntu)附带了一个软件包来帮助在 chroot 中安装另一个系统:施鲁特(dchroot 的继承者)。首先,使用反引导程序安装较旧的发行版(仅安装基本系统和您的程序所需的内容,没有服务器)。然后设置 schroot 以便方便地运行程序(使用/dev
、/proc
和/home
其他可访问的“卫星”文件系统)。
所以计划是:debootstrap,然后 dchroot。在如何在 64 位 Debian/Ubuntu 上运行 32 位程序?,我给出了一个关于类似设置的教程 - 无论您运行不同版本的发行版,或不同的架构,或不同的类似 Debian 的发行版,只需选择适当的包源即可,其余的都是一样的。