postinst всегда терпит неудачу из-за debconf

У меня возникли проблемы с использованием 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 и, похоже, не может найти много полезного информация об этом.

1
задан 7 April 2015 в 12:42

0 ответов

Другие вопросы по тегам:

Похожие вопросы: