问题描述
是否可以在同一台计算机上安装和使用两个不同的glibc版本。哪一个版本仅用于运行依赖于旧glibc二进制文件的旧版软件?
是否有可能借助程序包管理器来做到这一点(例如“将此程序包及其依赖项安装到/opt/old-glibc
),而不是直接管理它
最佳方法
是的,有可能。您必须非常注意库的加载路径,并且可能需要重新编译其他库。
作为减少摩擦的方法,我建议在chroot中安装旧版本的Debian或Ubuntu。也就是说,创建一个目录,例如/old/etch
,并将较早的发行版安装在以该目录为根的树中;要运行该有问题的程序,请调用chroot
以将其对文件系统的视图限制为/old/etch
。
Debian(或Ubuntu)附带了一个软件包,用于协助在chroot中安装另一个系统:schroot(dchroot的后继者)。首先,使用debootstrap安装较旧的发行版(仅安装基本系统和程序需要的内容,而不安装服务器)。然后设置schroot以方便地运行程序(可访问/dev
,/proc
,/home
和其他“satellite”文件系统)。
因此,计划是:先进行debootstrap,再进行dchroot。在How do I run 32-bit programs on a 64-bit Debian/Ubuntu?中,我提供了有关类似设置的教程-无论您运行的是不同版本的发行版,不同的体系结构还是不同的Debian-like发行版,只需选择适当的软件包源即可,其余都是相同的。