Como automatizar a instalação do pacote "keyboard-configuration"?

14

Estou escrevendo um script para instalar o servidor Ubuntu 16.04 em uma prisão chroot, usando o debootstrap (em uma máquina servidor Ubuntu 16.04).

Durante a criação do keyboard-configurationpacote de ele pede para o tipo de teclado:

Setting up keyboard-configuration (1.108ubuntu15) ...
debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
Configuring keyboard-configuration
----------------------------------

The layout of keyboards varies per country, with some countries having multiple
common layouts. Please select the country of origin for the keyboard of this
computer.

  1. Afghani                                     48. Irish
  2. Albanian                                    49. Italian
...    
  28. English (UK)                               75. Slovak
  29. English (US)                               76. Slovenian
...
  45. Icelandic                                  92. Vietnamese
  46. Indian                                     93. Wolof
  47. Iraqi
Country of origin for the keyboard: 

Quero automatizar isso, para que não pergunte e continue com a instalação.

Como posso fazer isso?

fadedbee
fonte
relacionado: stackoverflow.com/questions/38165407/…
Ciro Santilli escreveu:

Respostas:

14

De uma pergunta semelhante ao StackOverflow:

Se a variável ENV DEBIAN_FRONTEND=noninteractivefor definida enquanto você executa apt-get install keyboard-configuration, não solicitará nenhuma interação. Então você pode simplesmente executar:

DEBIAN_FRONTEND=noninteractive apt-get install keyboard-configuration
Nicu Stiurca
fonte
2

Você poderia usar xdotool. Ao iniciar o script colocar & sleep <however long it takes to get to that point> && xdotool type <number you want to put> && xdotool key Return.

Eu não testei isso, mas deve funcionar.

Resposta 2:

Execute o comando, mas com a saída redirecionada para um arquivo ( > testfile).

Abra outro terminal e execute

while true
do 
    if [ "$(tac testfile | grep -m 1 .)" = "Country of origin for the keyboard" ]
    then 
    xdotool type <number you want to put> && xdotool key Return && break
    fi
done  

Depois, clique novamente no primeiro terminal.

Resposta 3:

Eu acho que tudo que você precisa fazer é colocar o número desejado em um arquivo testfilee executar o comando com o < testfileanexo.

Feldspar15523
fonte
Obrigado, ideia interessante, mas isso desperdiçaria muito tempo ou ocasionalmente congelava quando a instalação estava demorando mais que o esperado, dependendo da duração do sono usado.
precisa saber é
Lendo a página de manual do xdotool - parece uma coisa do X windows. Estou tentando isso em um ambiente de servidor Ubuntu. Vou atualizar minha pergunta.
precisa saber é
2

É simples de automatizar, você só precisa definir a configuração correta do debconf para este pacote.

Primeira instalação debconf-utils:

sudo apt install debconf-utils

Se você já configurou o pacote, poderá ler a configuração do debconf com:

debconf-get-selections | grep keyboard-configuration

Se você não configurou o pacote ou gostaria de alterar suas seleções, faça isso com:

dpkg-reconfigure keyboard-configuration

Exportar suas seleções para um arquivo

debconf-get-selections | grep keyboard-configuration > selections.conf

Copie selections.confpara a máquina de destino e defina as seleções:

debconf-set-selections < selections.conf

Quando você instala ou reconfigura o pacote, suas opções agora são selecionadas automaticamente.

dpkg-reconfigure keyboard-configuration -f noninteractive
Josh Enders
fonte
1

"debootstrap é realmente apenas um script de shell" --de https://wiki.debian.org/Debootstrap

Isso significa que você pode ler o script para ver se há maneiras de passar as informações por meio de uma variável de ambiente, fornecer um argumento ao chamar o deboostrap ou criar sua própria versão modificada para seu aplicativo específico.

BenjaminBrink
fonte
Este pacote está sendo instalado como parte de uma apt-get install ....execução após o debootstrap inicial.
precisa saber é o seguinte
Então, você está dizendo que após o apt-get install deboostrapseu paradigma de instalação não permitir a alteração de variáveis ​​ambientais ou a execução de um script personalizado? OK.
BenjaminBrink
Talvez isso ajude. Este link mostra um exemplo de como configurar um "preeseed" arquivo para prompts em uma instalação do Ubuntu-resposta pré: askubuntu.com/questions/122505/...
BenjaminBrink