我一直在我的电脑上安装不同的发行版,这些发行版都是我认为有价值的。我想知道如何将程序安装到不包含该版本根目录的驱动器上,这样我就可以使用不同版本的程序。这可能吗?**例如,我有 Windows,我的程序安装在不同的硬盘上,所以如果我把它们放在不同的分区上,我就可以在 win7 或 10 上使用大多数这些程序。
答案1
如果您“手动”安装程序(从源代码编译它们,或下载它们的二进制分发版),只需将它们留在单独的硬盘驱动器或分区上,就像在 Windows 中一样,将此分区挂载到系统中的某个特定路径(例如,我通常在 /mnt 中有一些子文件夹来挂载外部分区)并将其添加到您的 PATH 环境变量中。
答案2
我认为这是不可行的,甚至完全不可能,原因如下:
- 不同的发行版有不同的包管理器。这意味着如果你从两个操作系统安装一个包,你可以在不同的文件夹中获得两个二进制文件(这既违背了你节省空间的目的,也违背了相同您可能希望同时在两个发行版上运行相同的程序(例如,在两个发行版上运行相同的程序)或其中一个二进制文件覆盖另一个。二进制包通常针对不同的发行版使用不同的选项构建;这很少会导致问题,但如果出现了问题,您将不知道如何修复它,甚至不知道是什么原因导致的。
- 在 Ubuntu 中,软件包中文件的位置是硬编码的。可以将它们放在不同的文件夹中,但您必须手动拆解软件包并将文件复制到您想要的位置。有些软件包需要同时安装多个依赖项,因此这项任务也会变得非常繁琐。即便如此,大多数程序也会在它们所属的位置寻找它们的依赖项,如果您将它们安装到另一个目录中,这些程序将无法运行。不过,您可以通过软链接目录来规避这个问题。
- 您将遇到配置和权限问题。您的用户不一定在两个操作系统上具有相同的用户 ID,并且一个系统会期望某些软件包文件的权限与另一个系统不同。配置文件位置甚至语法在不同的发行版之间可能有所不同,这会给您带来更多麻烦。此外,还有许多微小的差异可能会破坏兼容性,并且很难或无法修复。
话虽如此,如果您使用一些与发行版不相关且无法从包管理器中获得的软件(例如 Linux 的游戏),并且在两个发行版上都使用它们,那么您可以将其安装在一个分区上并从两个分区中使用它。