私のアプリケーション(foo)のdebianバイナリパッケージを書いています。 postinst(インストール後)スクリプトは、ユーザーにいくつかの質問をし、同様に回答を得たいと考えています。私はdebconfを使用してこれを達成しようとしています。しかし、ユーザーに質問を促すUI画面は表示されません。私の設定とテンプレートがdpkgによって呼び出されるかどうかは疑問です。私はリンクごとにすべての指示を使用しています debconf tutorial 以下の質問について誰かが私を明確にしてくれますか:
制御ファイルのスニペット(私が投稿している関連フィールドのみ)
Depends: debconf (>= 0.2.17)
構成ファイルのスニペット
#!/bin/sh
set -e
#echo "Config being called"
# Source debconf library.
. /usr/share/debconf/confmodule
# Do you like debian?
db_input medium foo/like_debian || true
db_go
# Check their answer.
db_get foo/like_debian
if [ "$RET" = "false" ]; then
# Poor misguided one..
db_input high foo/why_debian_is_great || true
db_go
fi
テンプレートファイルのスニペット
Template: foo/like_debian
Type: boolean
Description: Do you like Debian?
We'd like to know if you like the Debian GNU/Linux system.
Template: foo/why_debian_is_great
Type: note
Description: Poor misguided one. Why are you installing this package?
Debian is great. As you continue using Debian, we hope you will
discover the error in your ways.
Preinstのスニペット:
#!/bin/sh
set -e
#echo "Stage preinst" $1
exit 0
Postinstのスニペット:
#!/bin/sh
set -e
#echo "Stage postinst" $1
# Source debconf library.
. /usr/share/debconf/confmodule
db_get foo/like_debian
if [ "$RET" = "false" ]; then
touch "/home/myhome/ITWORKED"
fi
exit 0
Prermのスニペット:
#!/bin/sh
set -e
#echo "Stage prerm" $1
exit 0
Postrmのスニペット:
#!/bin/sh
set -e
#echo "postrm" $1
exit 0
ありがとう、-Sandeep
独自のdebianパッケージの作成に関するブログ投稿を作成しました:
http://www.leaseweblabs.com/2013/06/creating-custom-debian-packages/
読み物を節約するために、ディレクトリ構造は次のようになります。
パーミッションと場所がこのようなものであることを確認してください、そしてそれは動作するはずです:)
入力して問題を解決しました
echo PURGE | debconf-communicate <packagename>
このコマンドは、debconf
データベース内のすべての選択をクリアします。選択がdebconf
データベースにある場合、パッケージインストーラーはconfig
ファイルの入力コマンドを実行しないことに気付きました。したがって、purge
コマンドにpostrm
ファイルに入れます。