Jak zjistit názvy proměnných pro debconf-set-selections?
On 13 února, 2021 by admin Řekněme, že chci nainstalovat mysql
ze skriptu, aniž by se mě ptali na konfigurační otázky, například jaký root heslo, které chci nastavit apt
. Potom bych přednastavil proměnné 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
Získal jsem to z výukového programu. Co mi není jasné: Jak ten chlap zjistil názvy proměnných? Jak věděl, že musí nastavit mysql-server-5.5 mysql-server/root_password password
a mysql-server-5.5 mysql-server/root_password_again
respektive?
Vím, že bych mohl balíček .deb
extrahovat vydáním dpkg-deb -R package.deb EXTRACTDIR/
– ale nechápu, kde jsou tyto proměnné uloženy.
Jak zjistím proměnné debconf
pro jakýkoli jiný balíček?
Odpověď
Pomocí iv id můžete zkontrolovat, co se uloží do debconf
= „d1c39c6d96″>
. To je užitečné, pokud jste již instalaci skutečně provedli.
Alternativně se tato nastavení používají ve skriptech správce balíčků . S spuštěným příkazem dpkg-deb
se tyto nacházejí v podadresáři DEBIAN
EXTRACTDIR
.
Jako příklad z 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
Různé db_*
funkce jsou pomocné funkce pro zpracování debconf
, získané od /usr/share/debconf/confmodule
.
Takže , v případě lightdm
je shared/default-x-display-manager
důležitým debconf
klíčem.
Odpověď
Proměnné pro konkrétní nainstalovaný balíček můžete získat pomocí 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:
Seznam všech nainstalovaných balíků, které mají proměnné v databázi, získáte pomocí debconf-show --listowners
, takže pokud si nejste jisti, jaký je název balíčku, můžete udělat něco jako
# 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
Napsat komentář