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-mysql
de modo que ele dependa demy-mysql-config
e dependa demysql-server
-
crie o pacote adicional
my-mysql-config
, que pré-depende dedebconf
e contémmy-mysql-config.templates
emy-mysql-config.config
script (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.preinst
contém código que fazdb_get
e cria arquivos de configuração antes mysql-server é iniciado - você pode usar o script
my-mysql
package.postinst
para 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 )