Linux

在單獨的建構環境中建構 *.deb 包時出錯

  • July 13, 2022

我正在嘗試將 *.deb 包建構到 chroot 中。在建構第一個包 - bash 時,遇到了困難。我使用 debootstrap 和 chroot 建構軟體包。

  • 我安裝 debootstrap:sudo debootstrap stable /stable-chroot http://deb.debian.org/debian/;
  • 我安裝了我需要的軟體包: apt -y install wget dpkg-dev devscripts dh-make locales;
  • 配置語言環境;
  • 配置 /etc/apt/source.list - 添加 deb-src http://deb.debian.org/debian bullseye main
  • 下載要建構的原始碼 - 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/rules 建構子程序返回退出狀態 2

我試圖在網上找到它,但沒有成功,我的知識還不足以理解這個錯誤的本質。請告訴我,也許我必須在建構環境中調整一些東西,或者我需要一些額外的包嗎?

bash 建構需要一個有效的/procand /dev,因此您需要在進入之前將它們綁定掛載到您的 chroot 中。

與手動完成所有這些不同,您可能會發現使用諸如pbuilderor之類的工具會更容易,sbuild它會為您處理所有這些。要開始使用pbuilder,安裝它,執行

sudo pbuilder create

然後執行pdebuild而不是debuild.

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