我有兴趣设置我的机器,以便我可以尝试不同的 Linux 发行版。我想始终运行 Ubuntu (10.04.3),但随后会在双启动设置中尝试其他发行版。
由于文件层次结构相似,我想知道我安装的程序和 Ubuntu 中的设置是否可以在第二个/测试发行版上工作?
如果是这样,将每个文件挂载到单独的分区上是否有意义,/opt
以便/usr
/etc
/var
我可以将相同的文件挂载到第二个/测试发行版一侧的相应文件夹中?
尝试在两个系统中同时使用这些文件是否值得?或者在每个系统中更改设置并重新下载程序是否更容易?如果是,为什么?如果不是,为什么不呢?
我推测它将在很大程度上取决于发行版,因此如果是这种情况,请回答以下问题:
- Linux 薄荷,和
- 所有其他基于 Debian 的发行版。
(即,“这适用于所有基于 Debian 的系统吗?”——我并不是为每个系统寻找答案。)
OP更新:
- 建议将 /etc 移动到单独的分区是愚蠢的:根据Ubuntu文档,根分区必须始终包含/etc,否则无法启动。
答案1
您可以运行其他发行版的程序。然而,并非所有程序都能直接开箱即用。许多程序需要特定位置或搜索路径上的文件,您的主发行版可能不提供这些文件,或者可能以不合适的版本提供这些文件。例如,如果程序需要仅位于 中的特定库,则除非您告诉它位置 ( ),/otherdistribution/usr/lib
否则它不会找到该库。LD_LIBRARY_PATH=/otherdistribution/usr/lib /otherdistribution/usr/bin/someprogram
或者,如果程序正在 中查找其数据文件/usr/share/myprogram
,您需要告诉它以/otherdistribution/usr/share/myprogram
某种方式查找。
如果您想运行一个发行版并偶尔运行另一个发行版(或同一发行版的另一个版本,例如 Debian 稳定版和 Debian 测试版)中的程序,最简单的方法是通过访问其他发行版chroot。在基于 Debian 的发行版上做到这一点的最简单方法是通过施鲁特(你可能会发现 本指南用于设置 schroot有用)。
答案2
对于 /opt 来说这是有道理的,对于其他则没有意义。只需比较库版本和 /etc 目录的布局即可。
事实上,对于 /opt 我做了或多或少相同的事情。我的 /opt 目录经历了多次发行版升级和更改。尽管有时您可能需要摆弄。
答案3
这取决于应用程序、其链接方式(静态或动态)以及所有相关文件是否都放置在应用程序文件夹的范围内。
使用ldd
应用程序的二进制文件/库来查看依赖关系。任何依赖项都不应显示为“缺失”。如果你有很多特定的依赖关系,生活就会变得更加困难。