基于 Arch 或 Debian 的小型仅 CLI 发行版

基于 Arch 或 Debian 的小型仅 CLI 发行版

我看过很多看起来像我正在寻找的主题,但并不完全是我想要的。为了给你一些背景信息,我的最终目标是拥有一个可以编译一些 C 代码并输出二进制文件的 Vagrant 盒子。这些是我的要求:

  • 操作系统映像需要非常小(大约 50 MB 就足够了,越小越好)
  • 理想情况下,我不想编译我想要使用的每个工具,因此如果我能够通过 pacman 或 apt-get 访问 Arch 或 Debian 软件包存储库,那就太好了
  • 我在基础镜像上需要的只是一个工具链、基本网络和一个流行的包管理器

我们的想法是让这个基础镜像与其他使用 Packer 的特定工具一起使用,然后打包为 Vagrant 盒子。

到目前为止,我已经看过这些发行版:

  • Tiny Core:大小方面非常有趣(10 MB),但软件包存储库使其成为禁忌,而且我还没有看到任何有关 pacman 的信息。
  • Arch Linux:基础镜像对于我的需求来说非常大(> 600 MB)。我也许可以创建自定义图像,但这是最后的手段。
  • Puppy:Tahrpup 基于 Ubuntu,但仍然很适合我的口味 (200 MB)
  • Alpine:82 MB,足够好,但包管理器再次禁止它

答案1

从字里行间,我想你喜欢 Arch。嗯,使用 来创建自定义图像很容易mkarchroot。看这个例子:

$ mkarchroot -C pacman.conf img packages

在哪里

  • pacman.conf是你的 pacman 配置文件
  • img是包含文件的目录
  • packages是您想要的软件包列表(例如以 开头base grub

然后,您可以将该目录的内容写入img可以从中启动的文件系统。您需要设置一个引导加载程序(即grub),我不会在这里讨论。

您可能需要完善您的软件包列表以获得适合您需求的工作系统,但这应该可以帮助您入门。此外,对于最小工作系统,您不需要所有的base包,因此您可以删除不需要的包(明确列出所需的包并省略base)。

如果需要,您可以下载普通版本pacman.conf

curl https://git.archlinux.org/svntogit/packages.git/plain/trunk/pacman.conf.x86_64?h=packages/pacman > pacman.conf

(我上面的例子生成了一个大小为 5.5G 的文件系统)

相关内容