Pergunta

Eu estou tentando criar um script que baixa automaticamente pacotes para novos servidores. No entanto, algumas coisas como 'mysql-server' não pode automaticamente instalado porque você precisa configurá-los nos ncurses primeira interface. Eu olhei através das páginas man e não consigo encontrar nada adequado.

Eu não me importo se eu tiver que carregar / editar um arquivo conf mais tarde -. Eu só preciso os pacotes apropriados instalados

Qualquer um sabe o que fazer além agarrando tarballs e construir-los eu mesmo?

Atualização Descobri que para coisas como mysql-server você pode apenas fazer:

DEBIAN_FRONTEND='noninteractive' apt-get install -yq mysql-server

No entanto esperar parece algo que vou precisar para o sol-java6-jdk; Não avaliamos ainda

Foi útil?

Solução

Para pacotes que fazem perguntas através de debconf (que é o que coloca as ncurses exibir), você pode pré-responder as perguntas. Para sol-java, as perguntas podem ser pré-respondidas, seguindo as instruções em http://www.davidpashley.com/blog/debian/java-license

Outras dicas

Resposta de ossramblings.com :

Primeiro, instale seu pacote normalmente; em seguida, extrair as respostas de configuração dos arquivos de dados debconf:

sudo apt-get install debconf-utils
sudo debconf-get-selections | grep mypackage > something.seed

Em seguida, para outras instalações, você pode aplicá-lo antes de instalar o pacote:

sudo debconf-set-selections ./something.seed

Qualquer pacote Debian que usos debconf para obter valores de configuração pode ser executado sem supervisão. O truque é que debconf irá primeiro procurar pré-instalado respostas para qualquer configuração questão que um determinado pacote tem.

Pré-instalar respostas de configuração

Basta criar um arquivo no seguinte formato,

# Use one line for each question
package-name question-name question-type answer
package-name question-name question-type really long \
answer here
package-name question-name question-type answer
...

e alimentá-lo para o sistema assim:

$ debconf-set-selections my-selections-file

Agora, você está pronto para apt-get install, como de costume.

One-off

Uma vez que este comando também lê de stdin, você pode fazer:

$ echo "man-db man-db/auto-update boolean true" | debconf-set-selections

Encontrar respostas padrão

Como você sabe quais pacotes usar essas respostas de configuração? Bem, se você já tiver instalado o pacote em questão de forma interativa, você pode consultar o seu sistema local para ver o que os valores são actualmente configurado. debconf-get-selections imprime uma lista de todas as respostas de configuração para o sistema atual. Por exemplo

$ debconf-get-selections | grep '^man'

retorna o seguinte no meu sistema:

man-db  man-db/install-setuid   boolean false
man-db  man-db/auto-update      boolean true

Pode ser necessário instalar o pacote debconf-utils para fazer este comando disponíveis.

Amostra

# Preset values to questions which would otherwise be asked while
# installing packages.
# Use debconf-set-selections to install
openssh-server  openssh-server/permit-root-login        boolean false
man-db  man-db/install-setuid   boolean false
man-db  man-db/auto-update      boolean true

Fontes

Eu não sei exatamente o que configuração necessidades mysql-servidor, mas você pode tentar algo como esperar

Gostaria de olhar para cron-apt . Eu não tentei isso sozinho, mas é de descrição de pacotes parece promissor.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top