将 DATA (Dev-Environments/apps/etc) 分区与 Linux 系统最小大小 OS 分区分开的简便方法? Docker 还是 Overlayfs Overlayroot?其他?

Easy ways to separate DATA (Dev-Environments/apps/etc) partition from Linux System minimal sized OS partition? Docker or Overlayfs Overlayroot? Other?

当权力没有挤压中间-class 并且有时间浪费 "fooling around" 等时,我曾经从 .tgz 和手动从头开始编译所有内容获取依赖项并安装到 localdir。

可悲的是,这些天没有更多的时间来享受这些 l(in) 奢侈品,所以我需要一个快速懒惰的方法来保持我的 16GB Linux Boot OS 分区尽可能小,并且有 apps/software/Development 环境和其他数据放在单独的分区上。

我可以处理将我的主目录安装到其他分区,但我剩下的问题是 /var 和 /usr 等以及每次我 apt-get 一些软件包时安装在那里的所有东西我最终得到一万亿安装依赖项是因为一个 5kb 应用程序的作者决定不包含 3kb 解析器并希望我安装另一个 50MB 包来获得那个 3kb 库 :) 耶!

当然,稍后当我卸载这些软件包时,所有那些已经安装但不再真正需要的依赖项都会被遗忘。 但无论如何,关键是我不想手动编译和花费数小时追查依赖项,这样我就可以编译并安装到我自己的路径,然后不得不修改一堆配置文件。所以经过一些研究,这是我能想到的最好的解决方案,我是否错过了一些更简单的解决方案?

  1. 使用 OVERLAYFS 和 Overlayroot 在我的辅助驱动器或分区上覆盖我的根/分区,这样我的 Linux OS 就不会再被写入,但所有内容都将透明地写入其他分区。

我喜欢这种方法的想法,我想知道谁在使用这种方法,效果如何。我喜欢的是这样我可以继续偷懒,只是盲目地 apt-get 安装工具链,一切都应该正常工作,而不需要对每个应用程序配置文件等进行任何特殊修改以更改路径。

不同的应用程序可以轻松地重复使用依赖项也很不错。 我没有预见到这种方法有什么问题吗?有人在使用这个解决方案吗?

  1. DOCKER 或其他应用程序容器,libvirt/lxc 等?

这可能是要走的路吗?使用这种方法,我假设我应该将我想要 install/try-out 的所有应用程序安装在一个 Docker 容器中,否则我将通过在每个容器中重复依赖项来浪费存储 space ?或者 DOCKER 或其他应用程序容器是否跨容器执行 files/libs 的重复数据删除? 这对 docker/containers 中的 graphical/x-windows/etc 应用程序是否有效?

如果您知道比 Overlayfs/overlayroot 或 Docker/LXC 更容易完成我想要的东西,并且设置起来不再麻烦,请告诉 me.tx

经过进一步研究并 testing/trying 出 docker 之后,我决定 "containers" 和 docker 一样是安装应用程序的简便方法想稍后清除。似乎这种技术已经在幕后使用了 Overlayfs overlayroot 技术来利用主机中已经安装的依赖项,并在 docker 图像中安装其他需要的依赖项。所以基本上我获得了与我谈到的其他手动 overlayroot 技术相同的优势,但无需努力设置所有这些。

是的,我现在是应用程序容器的信徒!甚至适用于 GUI 应用程序。

现在我可以保留一个非常轻量级的小型主根分区,只需在应用程序容器中安装任何我想试用的东西,并在完成后删除。

这也解决了挥之不去的不再需要的依赖项的问题,如果在 main / 上手动执行 overlayroot,我将不得不自己处理这个问题。