chroot环境搭建
1.wiki
sudo apt install dpkg-dev
Chroot环境搭建 跳到导航跳到搜索 第一步,安装工具 sudo apt install debootstrap 第二步,下载debian10资源包 sudo debootstrap --arch $(dpkg-architecture -qDEB_TARGET_ARCH_CPU) stable /mnt/debian10 http://ftp.cn.debian.org/debian 第三步,配置资源 sudo mount --bind /dev /mnt/debian10/dev sudo mount --bind /sys /mnt/debian10/sys sudo mount --bind /proc /mnt/debian10/proc 第四步,进入chroot sudo chroot /mnt/debian10
名词解释
当我们需要将一个软件从源码或其他包格式打包为.deb格式时,需要一个纯净的操作系统环境,即系统安装后的初始状态,此时系统文件/目录没有经过修改,在此环境中进行测试,与所有用户的测试环境理论上保持一致,这就是净室环境。如果不使用净室环境进行开发和测试,会出现如下问题:
1-如果当前系统安装了一些仓库之外的动态链接库或头文件,则编译出的二进制文件调用的api与仓库中类库提供的不一致
2-如果当前系统安装了一些仓库之外的动态链接库,则由于api兼容性问题,可能导致可执行程序无法运行,会影响测试结果
3-如果已经安装了某些依赖,则开发或测试中,就无法得知这些依赖是否需要在其他用户的系统中安装
因此,在debian包格式的开发和测试中,必须使用净室环境。
搭建净室环境
有多种方式搭建净室环境,例如:
通过debootstrap生成一份debian基础系统,通过chroot进入
通过搭建虚拟机,生成一份净室环境
通过创建docker容器,生成一份净室环境
在硬件上安装新的操作系统镜像,生成一份净室环境
debootstrap/chroot
debootstrap是debian/ubuntu下的一个工具,用来构建一套基础的debian系统。可以通过chroot进入系统,在里面进行打包构建工作(类似docker),而不会破坏宿主系统。
安装debootstrap
sudo apt update sudo apt install -y debootstrap
安装净室环境
debootstrap的命令结构为
debootstrap 指定架构 指定系统版本 指定安装目录 指定仓库镜像(可选)
由于生成的uos系统环境存在一些问题,因此以搭建debian环境为例:
#i686 sudo debootstrap --arch i386 buster /mnt/debian10_i386 https://mirrors.163.com/debian/ #X86_64 sudo debootstrap --arch amd64 buster /mnt/debian10_amd64 https://mirrors.163.com/debian/ #AArch64 sudo debootstrap --arch arm64 buster /mnt/debian10_arm64 https://mirrors.163.com/debian/ #MIPS64el sudo debootstrap --arch mips64el buster /mnt/debian10_mips64el https://mirrors.163.com/debian/
请注意,本文暂时不涉及在本机下搭建不同cpu架构的净室环境的操作说明(即交叉开发环境)。
进入净室环境
#以X86_64为例 sudo chroot /mnt/debian10_amd64
此时你会惊奇的发现,类似ssh登录其他机器一样,你进入了另一个系统,而这个系统实际上是你本机上的一个文件目录,这也体现出了Linux一切皆文件的思路。
使用如下命令即可退出
exit
卸载净室环境
#删除该目录即可 sudo rm -rf /mnt/debian10_amd64
路径挂载
由于debootstrap构成的系统比较简陋,因此需要从宿主系统挂载几个目录过来,进行系统信息共享。
#存放驱动信息 sudo mount --bind /sys /mnt/debian10_amd64/sys #存放设备节点信息 sudo mount --bind /dev /mnt/debian10_amd64/dev #存放系统信息,例如内存信息,cpu信息等 sudo mount --bind /proc /mnt/debian10_amd64/proc
命令总结
sudo apt update sudo apt install -y debootstrap sudo debootstrap --arch amd64 buster /mnt/debian10_amd64 https://mirrors.163.com/debian sudo mount --bind /sys /mnt/debian10_amd64/sys sudo mount --bind /dev /mnt/debian10_amd64/dev sudo mount --bind /proc /mnt/debian10_amd64/proc sudo chroot /mnt/debian10_amd64
docker
参见本篇wiki
虚拟机
暂无
开发环境配置
构建Debian安装包的前提,需要安装一些开发工具
apt install build-essential devscripts debhelper dpkg-dev quilt git vim
编译不同的软件,需要用到更多的开发工具或依赖库,以上只是最基本的工具。
净室环境命令自动补全
安装自动补全工具
apt install -y bash-completion
编辑/etc/bash.bashrc,搜索 bash_completion 关键词语,把取消注释
退出净室环境,重新登录即可自动补全
开发者署名
请在所使用shell的配置文件中添加三行
DEBFULLNAME="你的名字" DEBEMAIL="你的邮箱" export DEBFULLNAME DEBEMAIL
系统默认的shell一般是bash,配置文件为~/.bashrc
dquilt
quilt是处理补丁的工具,可以进行补丁创建、更新、删除、应用、取消应用等操作。
请在shell配置文件中添加如下内容
alias dquilt="quilt --quiltrc=${HOME}/.quiltrc-dpkg"
complete -F _quilt_completion -o filenames dquilt
系统默认的shell一般是bash,配置文件为~/.bashrc

浙公网安备 33010602011771号