Install
sudo apt install debootstrap
Use
sudo debootstrap --arch [平台] [发行版本代号] [目录]
sudo debootstrap --arch amd64 buster ./
# 此句收尾代表成功
# I: Base system installed successfully.
当前环境中 debootstrap
支持的发行版本可以在 /usr/share/debootstrap/scripts
查看,补充两个版本代号信息相关的链接有兴趣可以了解一下,版本代号网上都可以查到。
应用场景
构建一个编译环境
amd64架构debian10案例
# 创建环境进入
mkdir buster&cd buster
sudo debootstrap --arch amd64 buster ./
sudo chroot .
# 修改云源
echo deb http://mirrors.ustc.edu.cn/debian buster main > /etc/apt/sources.list
echo deb-src http://mirrors.ustc.edu.cn/debian buster main >> /etc/apt/sources.list
apt-get update
# 部分版本是没有装编译工具包的
apt-get install dpkg-dev
apt-get install debhelper
# 下载编译源码
cd /tmp
apt-get source redis
apt-get build-dep redis
cd redis.x.x
dpkg-buildpackage
find ../*.deb
从软件源构建一个系统的基础镜像
-
确定软件源(loongarch64) deb https://education-packages.chinauos.com/desktop-education uranus/dc80 main
-
开始构建(同架构下的debootstrap用同样的方法应该已经安装好了)
sudo debootstrap --no-check-gpg uranus/dc80 rootfs https://education-packages.chinauos.com/desktop-education sid
# 需要确保当前路径下 不存在 rootfs 目录 或者只有 空的 rootfs 目录。
sudo du --human-readable --summarize rootfs
391M rootfs/
# 我这里省略了下面的步骤
# sudo mount --bind /dev rootfs/dev
# sudo mount --bind /dev/pts rootfs/dev/pts
# sudo mount --bind /proc rootfs/proc
# sudo mount --bind /sys rootfs/sys
sudo chroot rootfs/
apt-get remove --allow-remove-essential e2fsprogs e2fslibs nano pinentry-curses whiptail kmod iptables iproute2 dmidecode
apt-get clean
find /var/lib/apt/lists/ -maxdepth 2 -type f -delete
exit
# 因为先前没有挂载,所以我也不用做这个步骤
# sudo umount rootfs/dev/pts
# sudo umount rootfs/dev
# sudo umount rootfs/proc
# sudo umount rootfs/sys
sudo du --human-readable --summarize rootfs
203M rootfs/
sudo rm rootfs/var/log/bootstrap.log
sudo rm -rf rootfs/var/log/*
sudo rm rootfs/var/log/apt/*
sudo du --human-readable --summarize rootfs
203M rootfs/
sudo su
tar -C rootfs/ -c . | docker import -
docker tag 259ce466a72d3d4c35c203d7912b7067ef4b1f85c1fdcc27aa1a0d0cd7afe4a9 registry.linakesi.com/uos-edu-desktop:loongarch64
- 测试使用
docker run --rm -it registry.linakesi.com/uos-edu-desktop:loongarch64 bash
apt install git
# 测试成功
# 后续使用中如果有问题,考虑从 apt-get remove 操作中找原因,比如我发现执行 remove 时有 deepin-keyring 包被卸载。