Cum se află numele variabilelor pentru debconf-set-selections?
On februarie 13, 2021 by admin Să spunem că vreau să instalez mysql
dintr-un script fără să mi se pună întrebări de configurare precum ce rădăcină parola pe care vreau să o setez cu apt
. Aș preseta apoi variabilele 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
Am obținut acest lucru dintr-un tutorial. Ce nu sunt clar pentru mine: Cum a aflat tipul numele variabilelor? De unde știa că trebuie să seteze mysql-server-5.5 mysql-server/root_password password
și respectiv mysql-server-5.5 mysql-server/root_password_again
?
Știu că aș putea extrage pachetul .deb
prin emiterea dpkg-deb -R package.deb EXTRACTDIR/
– dar nu văd unde sunt stocate acele variabile.
Cum aș afla variabilele debconf
pentru orice alt pachet?
Răspuns
Puteți inspecta ceea ce este stocat în debconf
folosind debconf-get-selections
. Acest lucru este util dacă ați făcut deja instalarea.
Alternativ, aceste setări sunt utilizate în scripturile de întreținere a pachetelor . Cu comanda dpkg-deb
pe care ați executat-o, acestea se află în subdirectorul DEBIAN
al EXTRACTDIR
.
De exemplu, din 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
Diversele db_*
sunt funcții de ajutor pentru gestionarea debconf
, obținute din /usr/share/debconf/confmodule
.
Deci , în cazul lightdm
, shared/default-x-display-manager
este o cheie importantă debconf
.
Răspuns
Puteți obține variabilele pentru un anumit pachet instalat folosind 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:
Puteți obține o listă a tuturor pachetelor instalate care au variabile în baza de date folosind debconf-show --listowners
, deci dacă nu sunteți sigur care este numele pachetului, puteți face ceva de genul
# 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
Lasă un răspuns