Debian

使用 debootstrap 安裝的最小 Debian/sid?

  • February 20, 2020

在過去的幾年裡,我使用debootstrap安裝我的桌面 Debian(日常使用),我打算再次使用它,但直到現在我只使用debootstrap預設選項,這次我想安裝一個最小的系統。

我做了一些搜尋,但到目前為止沒有發現我不知道的東西,大多數文章都說很少,但他們也只使用預設選項,相反我想知道是否有exclude選項可以將其修剪並仍然可以正常工作系統。

我打算研究debootstrap,但之前想在這裡問一下,也許有人已經做過或知道了,可能會節省我一些時間。

編輯

一個最小的 Debian 由具有優先級的軟體包組成,required並且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應該有所幫助。

我使用的選項--variant=minbase似乎很小(大約 150MB)。沒有文本編輯器,但有必要的 GNU 工具、包管理器和 iproute2 的網路功能。

由於容器鏡像現在廣泛可用,因此可以從容器鏡像實現最小安裝。例如,aarch64 debian stretch docker 容器安裝只有57.3M。這比 debootstrap minbase 變體小得多。

詳細資訊如下。

在 PC 上執行以下命令以獲取 tar 目錄中的 debian 拉伸容器映像。

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 -sh57.3M

使用 root 啟動一個掛載和 pid 命名空間到這個容器鏡像目錄。或者在這個圖像目錄上執行一個 chroot,應該可以,但我沒有嘗試過。

不過,我有一個小故障。在命名空間中,apt-get update將繼續等待標題。不知何故,通過將沙盒使用者 root 添加到命令中來解決它,因此命令將變為apt-get -o APT::Sandbox::User=root update. 拉伸 aarch64 版本沒有抱怨這個問題,但是拉伸 arm32v5 版本做到了,所以在網上很容易找到答案。

在容器內安裝 debootstrap 包。執行以下命令來安裝兩個 debian buster 安裝:

debootstrap --include=apt,bash,dpkg buster /root/buster-root-1/
debootstrap --variant=minbase buster /root/buster-root-2/

a 在兩個安裝上返回的大小du -sh分別是266.4M308.1M

引用自:https://unix.stackexchange.com/questions/219253