mysql
どのルートパスワードを設定したいのかなど、設定の質問を受けずにスクリプトからインストールしたいとしますapt
。次にdebconf
変数を事前設定します。
echo mysql-server-5.5 mysql-server/root_password password xyzzy | debconf-set-selections
echo mysql-server-5.5 mysql-server/root_password_again password xyzzy | debconf-set-selections
私はこれをチュートリアルで得ました。私にとって不明な点は、この人が変数名をどのように見つけたかです。mysql-server-5.5 mysql-server/root_password password
とを別々に設定する必要があることをどうやって知ることができますかmysql-server-5.5 mysql-server/root_password_again
?
.deb
発行によってパッケージを抽出できることはわかっていますが、dpkg-deb -R package.deb EXTRACTDIR/
これらの変数がどこに保存されているかはわかりません。
debconf
他のパッケージの変数をどのように見つけることができますか?
答え1
特定の変数を取得できますインストール済みパッケージ利用debconf-show packagename
前任者。
$ sudo debconf-show mysql-server-5.7
* mysql-server/root_password: (password omitted)
* mysql-server/root_password_again: (password omitted)
mysql-server-5.7/start_on_boot: true
mysql-server/no_upgrade_when_using_ndb:
mysql-server/password_mismatch:
mysql-server-5.7/really_downgrade: false
mysql-server-5.7/nis_warning:
mysql-server-5.7/postrm_remove_databases: false
mysql-server-5.7/installation_freeze_mode_active:
を使用して、変数を含むデータベースにインストールされているすべてのパッケージのリストを取得できます。debconf-show --listowners
パッケージ名が何であるかわからない場合は、次のようにします。
# debconf-show --listowners | grep mysql | xargs debconf-show
* mysql-server/root_password: (password omitted)
* mysql-server/root_password_again: (password omitted)
mysql-server-5.7/postrm_remove_databases: false
mysql-server-5.7/nis_warning:
mysql-server-5.7/installation_freeze_mode_active:
mysql-server/password_mismatch:
mysql-server-5.7/start_on_boot: true
mysql-server/no_upgrade_when_using_ndb:
mysql-server-5.7/really_downgrade: false
答え2
debconf
使用中の内容を確認できますdebconf-get-selections
。これは実際にインストールが完了した場合に便利です。
または、次の設定が使用されます。パッケージマネージャスクリプト。dpkg-deb
実行したコマンドを使用してDEBIAN
サブディレクトリに配置しますEXTRACTDIR
。
たとえば、次のようになりますlightdm
。
$ grep db_ lightdm/DEBIAN -R
lightdm/DEBIAN/postrm: db_purge
lightdm/DEBIAN/prerm: db_unregister shared/default-x-display-manager
lightdm/DEBIAN/prerm: if db_get shared/default-x-display-manager; then
lightdm/DEBIAN/prerm: db_metaget shared/default-x-display-manager owners
lightdm/DEBIAN/prerm: db_subst shared/default-x-display-manager choices "$RET"
lightdm/DEBIAN/prerm: db_get shared/default-x-display-manager
lightdm/DEBIAN/prerm: if db_get "$RET"/daemon_name; then
lightdm/DEBIAN/prerm: db_fset shared/default-x-display-manager seen false
lightdm/DEBIAN/prerm: db_input critical shared/default-x-display-manager || true
lightdm/DEBIAN/prerm: db_go
lightdm/DEBIAN/prerm: db_get shared/default-x-display-manager
lightdm/DEBIAN/prerm: db_get "$RET"/daemon_name
lightdm/DEBIAN/postinst: if db_get shared/default-x-display-manager; then
lightdm/DEBIAN/postinst: if db_get "$DEFAULT_DISPLAY_MANAGER"/daemon_name; then
lightdm/DEBIAN/postinst:db_stop
lightdm/DEBIAN/config:if db_metaget shared/default-x-display-manager owners; then
lightdm/DEBIAN/config:if db_metaget shared/default-x-display-manager choices; then
lightdm/DEBIAN/config: db_subst shared/default-x-display-manager choices "$OWNERS" || :
lightdm/DEBIAN/config: db_fset shared/default-x-display-manager seen false || :
lightdm/DEBIAN/config: db_set shared/default-x-display-manager "$CURRENT_DEFAULT"
lightdm/DEBIAN/config: if db_get shared/default-x-display-manager; then
lightdm/DEBIAN/config: db_set shared/default-x-display-manager lightdm
lightdm/DEBIAN/config: db_fset shared/default-x-display-manager seen true
lightdm/DEBIAN/config: db_input high shared/default-x-display-manager || :
lightdm/DEBIAN/config: db_go || :
lightdm/DEBIAN/config:if db_get shared/default-x-display-manager; then
さまざまな関数は、で得られた処理db_*
のためのヘルパー関数です。debconf
/usr/share/debconf/confmodule
lightdm
従っての場合にはshared/default-x-display-manager
重要なdebconf
鍵である。