Eu encontrei uma maneira de fazer isso.
Então, para que o único apt-get install my-mysql funcione como descrito em questão, eu tive que fazer várias coisas:
- crie o pacote
my-mysqlde modo que ele dependa demy-mysql-confige dependa demysql-server -
crie o pacote adicional
my-mysql-config, que pré-depende dedebconfe contémmy-mysql-config.templatesemy-mysql-config.configscript (que, entre outras coisas, define a senha para que o mysql-server-5.5 não solicite) contendo código como:. /usr/share/debconf/confmodule db_set mysql-server/root_password "$PW" db_fset mysql-server/root_password seen true db_set mysql-server/root_password_again "$PW" db_fset mysql-server/root_password_again seen true -
também
my-mysql-config.preinstcontém código que fazdb_gete cria arquivos de configuração antes mysql-server é iniciado - você pode usar o script
my-mysqlpackage.postinstpara executar coisas que você deseja depois que o mysql-server estiver instalado e em execução.
O tutorial do programador do Debconf foi de grande ajuda por lá, já que estava usando export DEBCONF_DEBUG=developer e set -x em scripts para depuração.
Outros dois problemas demorados para depuração foram garantir que os scripts config / preinst / postinst não emitem QUALQUER OUTDO para STDOUT (já que ele quebra o debconf de formas estranhas e interessantes) e que você precisa de db_stop se você fizer coisas como invoke-rc.d mysql restart ou similar (ou seu apt-get irá travar, mesmo sem responder a Ctrl + C )