在过去的几年里我用过反引导程序安装我的桌面 Debian(日常使用),我打算再次使用它,但到目前为止我只是使用反引导程序默认选项,这次我想安装一个最小的系统。
我做了一些搜索,但到目前为止没有发现任何我不知道的东西,大多数文章都说最低限度但随后他们也只使用默认选项,相反,我想知道是否有exclude
选项可以对其进行精简并仍然获得工作系统。
我打算调查一下反引导程序但之前想在这里问一下,也许有人已经做过或知道,可能会节省我一些时间。
编辑
required
一个最小的 Debian 由具有优先级和优先级的软件包组成important
dpkg-query -f '${binary:Package} ${Priority}\n' -W \
| grep -w 'required\|important'
该minbase
选项仍然安装一些extra
,,,,但很少,最终其中一些和一些可以删除(或者根本不安装,我认为应该可以工作optional
,但尚未检查)standard
important
--exclude
shell deboostrap 的子脚本sid
是/usr/share/debootstrap/scripts/sid
,易于(备份和)定制。
安装后,下载的文件会占用大量磁盘空间.deb
,apt-get clean
应该apt-get autoclean
释放一些空间。
一些空间是从语言环境、文档、手册页中占用的,dpkg-reconfigure locales
该包localepurge
应该会有所帮助。
答案1
我使用的选项--variant=minbase
似乎相当小(大约 150MB)。没有文本编辑器,但有必要的 GNU 工具、包管理器和 iproute2 的网络功能。
答案2
由于容器镜像如今已广泛使用,因此可以通过容器镜像实现最小化安装。例如,aarch64 debianstretch docker容器安装仅57.3M。这比 debootstrap minbase 变体要小得多。
详细信息如下。
在 PC 上运行以下命令,以在 tar 目录中获取 debianstretch 容器映像。
docker pull arm64v8/debian:stretch-2020-0130-slim
docker save -o stretch-root.tar arm64v8/debian:stretch-2020-0130-slim
解压stretch-root.tar,安装目录位于名为 的文件中layer.tar
。将此文件中的内容放置到 aarch64 目标上,a 返回的目录树大小du -sh
为57.3M。
使用 root 启动此容器映像目录的挂载和 pid 命名空间。或者在此图像目录上运行 chroot,这应该可以工作,但我还没有尝试过。
不过我有一个小问题。在命名空间中,apt-get update
将继续等待标头。不知何故,可以通过将沙箱用户 root 添加到命令中来解决这个问题,这样命令就会变成apt-get -o APT::Sandbox::User=root update
. Stretch aarch64 版本没有抱怨这个问题,但 Stretch Arm32v5 版本却抱怨了这个问题,所以很容易在互联网上找到答案。
在容器内安装 debootstrap 包。运行以下命令来安装两个 Debian Buster:
debootstrap --include=apt,bash,dpkg buster /root/buster-root-1/
debootstrap --variant=minbase buster /root/buster-root-2/
du -sh
两个安装上的 a 返回的大小分别是266.4M和308.1M。