我看过很多看起来像我正在寻找的主题,但并不完全是我想要的。为了给你一些背景信息,我的最终目标是拥有一个可以编译一些 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 的文件系统)