我打算的基本目标是能够在生产环境中支持较旧的二进制文件和库,同时继续使用较新的库和二进制文件。
基础架构设置
我们想要保持多个版本的原因:
AFAIK的最佳做法是创build镜像官方的本地存储库,并在您的同步脚本中排除您不想更新的软件包。
你也可以使用Pinning: https : //help.ubuntu.com/community/PinningHowto
但是,另一方面发布发行版之后通常不会更改软件包的版本。 他们只是把安全修复,但保持相同的版本。
所以,只要你不从Ubuntu 10.04更改为10.10你的二进制文件和库应保持在相同的版本。 (这对于官方软件包来说,如果你正在构build自己的软件包,那么创build一个本地软件仓库并检查有关.deb软件仓库的文档,因为它自己可以做某种版本控制)。
通常,同一个软件包的两个版本提供相同的文件,并且不能有两个完全相同path的不同文件,除非您欺骗应用程序。 欺骗应用程序的一种方法是在chroot环境中运行它。 您可以在原始文件系统中mount --bind和ln大部分内容以节省硬盘空间。 恕我直言,系统地在chroot中运行应用程序的最方便的方法是schroot 。 只要在Debian / Ubuntu下apt-get install schroot ,然后阅读手册。
一个更强大(但更难以设置)的解决scheme是使用容器 ,比如LXC ,它可以提供文件系统的“虚拟化”视图(还有很多其他的东西)。 可能这是对你的情况矫枉过正
Grr,我不能张贴这么小声望的链接…