У меня возникли проблемы с использованием debconf для моего пакета. Я прошу mysql pw в файле package.config:
. /usr/share/debconf/confmodule
db_input high mypkg/mysql_root_pw
db_go
Затем, в postinst, я запрашиваю debconf для пароля и записываю его в файл конфигурации:
. /usr/share/debconf/confmodule
db_get mypkg/mysql_root_pw
# write pw to config file
Это работает, когда я делаю dpkg-reconfigure --force mypkg. Однако, когда вы используете apt-get -f install (что мне нужно сделать, потому что он говорит, что мой pkg не работает), он всегда терпит неудачу:
Setting up mypkg (1.5.4-3) ...
debconf (developer): frontend started
debconf (developer): frontend running, package name is mypkg
debconf (developer): starting /var/lib/dpkg/info/mypkg.config configure
debconf (developer): <-- INPUT low mypkg/mysql_root_pw
debconf (developer): --> 30 question skipped
dpkg: error processing mypkg (--configure):
subprocess installed post-installation script returned error exit status 30
Errors were encountered while processing:
mypkg
Я отредактировал сценарии в /var/lib/dpkg/info/mypkg.postinst, и ошибка возникает на линии где я источник библиотеки debconf:
. /usr/share/debconf/confmodule
Вероятно, это потому, что debconf уже имеет значение из исходной установки и не отображает вопрос снова. Но как я могу пропустить его, если у меня его уже есть, и почему он терпит неудачу в этой строке, а не когда я это делаю db_get?
У меня есть поиск в google и, похоже, не может найти много полезного информация об этом.