Come scoprire i nomi delle variabili per debconf-set-selections?
Su Febbraio 13, 2021 da admin Diciamo che voglio installare mysql
da uno script senza che mi vengano poste domande di configurazione come quale root password che desidero impostare da apt
. Quindi preimposterei le debconf
variabili:
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
Lho preso da un tutorial. Cosa non mi è chiaro: come ha fatto il ragazzo a scoprire i nomi delle variabili? Come faceva a sapere che doveva impostare mysql-server-5.5 mysql-server/root_password password
e mysql-server-5.5 mysql-server/root_password_again
rispettivamente?
So di poter estrarre il pacchetto .deb
emettendo dpkg-deb -R package.deb EXTRACTDIR/
– ma non vedo dove sono memorizzate queste variabili.
Come posso trovare le variabili debconf
per qualsiasi altro pacchetto?
Risposta
Puoi controllare cosa viene memorizzato in debconf
utilizzando debconf-get-selections
. Questo è utile se hai già fatto linstallazione.
In alternativa, queste impostazioni sono usate negli script del manutentore del pacchetto . Con il comando dpkg-deb
eseguito, questi si trovano nella DEBIAN
sottodirectory di EXTRACTDIR
.
Ad esempio, da 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
I vari db_*
sono funzioni di supporto per la gestione di debconf
, ottenute da /usr/share/debconf/confmodule
.
Quindi , nel caso di lightdm
, shared/default-x-display-manager
è una chiave debconf
importante.
Risposta
Puoi ottenere le variabili per un pacchetto installato specifico utilizzando debconf-show packagename
ex.
$ 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:
Puoi ottenere un elenco di tutti i pacchetti installati che hanno variabili nel database usando debconf-show --listowners
, quindi se “non sei sicuro di quale sia il nome del pacchetto potresti fare qualcosa come
# 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
Lascia un commento