我正在尝试将 *.deb 包构建到 chroot 中。在构建第一个包 - bash 时,遇到了困难。我使用 debootstrap 和 chroot 构建软件包。
我安装 debootstrap: sudo debootstrap stable /stable-chroothttp://deb.debian.org/debian/;
我安装我需要的软件包: apt -y install wget dpkg-dev devscripts dh-make locales;
配置区域设置;
配置/etc/apt/source.list - 添加 deb-srchttp://deb.debian.org/debian靶心主要
下载要构建的源代码 - apt source bash(或使用 debian 网站上的 wget)
安装构建依赖项 - apt build-dep bash
最后,build - debuild -b(也尝试过 dpkg-buildpackage)
结果,我在构建 bash 包时收到此错误:
mkdir -p stamps : # 参见 #327477,需要定义 HAVE_DEV_STDIN (test -d /dev/fd && test -r /dev/stdin < /dev/null)
|| (test -d /proc/self/fd && test -r /dev/stdin < /dev/null) make: *** [debian/rules:102: before-build] 错误 1 dpkg-buildpackage: 错误: debian/规则构建子流程返回退出状态2
我试图在网上找到它,但没有成功,而且我的知识还不足以独自理解这个错误的本质。请告诉我,也许我必须在构建环境中调整一些东西,或者我是否需要一些额外的软件包?
答案1
bash 构建需要一个有效的/proc
和/dev
,因此您需要在输入之前将它们绑定安装到您的 chroot 中。
pbuilder
您可能会发现使用诸如或之类的工具sbuild
可以更轻松地为您处理所有这些事情,而不是手动完成所有这些操作。要开始使用pbuilder
,安装它,运行
sudo pbuilder create
然后运行pdebuild
而不是debuild
.