![](/img/trans.png)
[英]How come dpkg-deb: error: <file.deb>' is not a Debian binary archive (try dpkg-split?)
[英]dpkg-deb --build : debconf fails when I use db_input
我正在嘗試使用dpkg-deb --build
命令構建一個包。
當我嘗試使用 db_input 時,它失敗了:
dpkg-deb --build audionet-0.0.8b/
dpkg-deb: building package `audionet' in `audionet-0.0.8b.deb'.
lintian audionet-0.0.8b.deb
W: audionet: binary-without-manpage usr/bin/audionet
sudo dpkg -i audionet-0.0.8b.deb
(Reading database ... 294473 files and directories currently installed.)
Preparing to unpack audionet-0.0.8b.deb ...
you start preinst file
dpkg: error processing archive audionet-0.0.8b.deb (--install):
subprocess new pre-installation script returned error exit status 128
you are in postrm file
you start postinst file
you leave postinst file
Errors were encountered while processing:
audionet-0.0.8b.deb
我的 preinst 文件是:
#!/bin/sh
# Exit on error
set -e
# echo something
echo "you start preinst file"
# Source debconf library.
. /usr/share/debconf/confmodule
# Ask questions
db_input medium audionet/question1 || true
#~ db_input medium audionet/question2 || true
# Show interface
db_go || true
echo "you leave preinst file"
模板文件:
Template: audionet/question1
Type: select
Choices: YES, no, dont know
Description: presence proxy :
Do you use a proxy.
Template: audionet/question2
Type: string
Description: proxy def :
Proxy serverport.
我還注意到安裝不會進入配置文件,因為沒有顯示 echo :
#!/bin/sh
# Exit on error
set -e
# echo something
echo "you are in config file"
# Source debconf library.
. /usr/share/debconf/confmodule
#~ # Ask questions
#~ db_input medium audionet/question1 || true
#~ db_input medium audionet/question2 || true
# Show interface
db_go || true
我無法找出問題所在。
謝謝。
我認為這里可能存在兩個問題。 首先,您不能在運行 debconf 的腳本中輸出到標准輸出。 一旦運行/usr/share/debconf/confmodule
在preinst
,該preinst
腳本從開始重新啟動,而echo語句再次運行。 要解決此問題echo 2>&1 in preinst
運行echo 2>&1 in preinst
。 在當前腳本中,echo 行將中斷與 debconf 的通信通道。
也有可能在訪問模板時出現一些問題。 它看起來像 debconf 的前端(請參閱/usr/share/debconf/frontend
很難獲得對 preinst 腳本中模板的訪問權限,但它可能存在一些問題。一旦您修復了 preinst 腳本,不要將輸出發送到標准輸出,這肯定會破壞事情並且可能是整個問題,導出DEBCONF_DEBUG=developer
並重新運行腳本。這將跟蹤所有 debconf 操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.