在单独的构建环境中构建 *.deb 包时出错

在单独的构建环境中构建 *.deb 包时出错

我正在尝试将 *.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.

相关内容