busybox 系统在 glibc-2.24 上带有 rpm 命令。Fedora Core (FC) 和/或更高版本的程序如何在这个系统上运行?
我发现 FC25 带有相同的 glibc 版本。如果我下载 FC25 rpm 软件包并安装它们,有时它们会运行。其他一些会失败。我也想运行 FC30 或其他版本。
问题在于 FC 包会覆盖同一目录中的现有库。我已经想出运行一个bash,你只需要安装bash
, glibc
, glibc-common
, ncurses-base
, ncurses-libs
, libgcc
. 安装这些软件包后,Bash 将运行。由于这些是少数库,因此使用 FC 版本安装它们应该会带来不影响 bash 的细微差异。但是微小的差异可能会影响其他程序,或者安装更多的包可能会带来更多的差异,从而影响更多的程序。
如何解决?
我已经阅读了有关 linux 命名空间的信息。因此,一个开始的路径是创建一个命名空间,从而隔离主机文件系统。我试过这个来创建一个命名空间文件系统:
cd /root
mkdir root-fc30
cd root-fc30
mkdir dev proc tmp var
cp -a /bin /sbin /lib /usr ./
mount -o bind /proc proc
mount -o bind /dev dev
mkdir root-old
然后进入命名空间:
unshare -m --propagation slave
pivot_root . root-old
在此之后,可以安装新的软件包。但它仍然会覆盖现有的库。在隔离的命名空间中可以采取哪些进一步的步骤来解决这个问题?
还有哪些更清洁的解决方案?