问题描述
我正在尝试对我的硬盘进行分区并安装 Ubuntu 和 Debian。所以,我不需要保留任何旧数据。将使用两个操作系统的最新版本。
我试图了解如何在 Ubuntu 中通过 apt 安装库、程序等,而不是在 Debian 上安装 re-install ,反之亦然。在这里,我假设任何适用于 Ubuntu 的东西都适用于 Debian,反之亦然。
我知道我可以分享/home。但是,这不是大多数库/程序的所在。我应该将 /usr 放在不同的分区上并在两个操作系统上挂载 /usr 吗?或者我只需要挂载/usr/local?或者有更好的方法吗?
最佳办法
\\n
Or is there a better way to do it?
\\n
-
安装所有用作快照的软件。
-
在名为
/opt/
的分区中安装您使用的所有软件。这很可能是源安装(tar.gz
)。
这两种安装方法可以在发行版之间共享。最后一个您需要向 PATH 添加一些内容或将服务复制到主系统中。
您不能在 2 个不同的安装之间共享 /usr/或 /var/。您可以共享 /usr/local/虽然。 2 个发行版可以有不同版本的库,因此您可能需要在其中任何一个系统上安装一些库。但是你节省的那几个 kb 不值得你花时间在这上面。另外,您很可能仍然会破坏任何一个系统。
次佳办法
您永远不会做的一件事是混合使用 Debian 和 Ubuntu 存储库、系统库、程序等。它会严重破坏这两个系统。 (这也扩展到混合 Ubuntu 和 Mint 等非官方变体;虽然理论上您可以混合 Kubuntu 和 Ubuntu (例如 16.04),但您不应该也应该将它们的核心系统分开)。
与 Debian 相比,Ubuntu 的发布周期要快得多,更新的软件库要多得多。反之亦然 – Debian 没有更新的库等。
混合和匹配会使系统爆炸。这就是为什么你们不彼此共享库的原因。
这样做会破坏这两个系统。不要尝试在两个系统之间共享库和程序。
虽然从技术上讲,您可以跨版本和发行版共享用户主目录,但您可能在一个或多个操作系统上遇到奇怪的问题,因为每个系统上不同版本的软件的配置版本不同。
第三种办法
我想添加到现有答案的另一点是关于 apt
和 dpkg
,以及它们如何处理有关已安装软件的信息。
dpkg 是核心软件包管理应用程序,它使用 /var/lib/dpkg/status
文件来存储和检索有关安装在系统中的 debian 软件包的信息。这对您的跑步非常具体。即使是单个条目也可能会弄乱整个包管理。
例如,您在 Ubuntu 中为 nautilus
安装了版本 3.18
。然后如果你分享这个信息,debian 会看到它有 3.18
用于 nautilus,即使它实际上有 3.16
。这是一个非常简单的例子。但是可能会有更多的复杂性。例如,debian 可能会无缘无故地发现您从不存在的存储库安装了软件包,并会尝试删除这些软件包,反之亦然。
Rinzwind 的回答说明了一种使用普通应用程序实现 work-around 的简单方法,即使用作为 snap 包或 flat-pak 包分发的 self-contained 应用程序。这些不是共享库,但如果您想要某种可以实现您目标的通用应用程序。