Jak zautomatyzować konfigurację pakietu „konfiguracja klawiatury”?

15

Piszę skrypt, aby zainstalować serwer Ubuntu 16.04 w więzieniu chroot, używając debootstrap (na komputerze z serwerem Ubuntu 16.04).

Podczas konfigurowania keyboard-configurationpakietu pyta o typ klawiatury:

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: 

Chcę to zautomatyzować, aby nie pytało i po prostu kontynuowało instalację.

Jak mogę to zrobić?

wyblakłe
źródło
powiązane: stackoverflow.com/questions/38165407/…
Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功

Odpowiedzi:

15

Z podobnego pytania StackOverflow:

Jeśli zmienna ENV DEBIAN_FRONTEND=noninteractivezostanie ustawiona podczas uruchamiania apt-get install keyboard-configuration, nie będzie monitować o żadną interakcję. Możesz więc po prostu uruchomić:

DEBIAN_FRONTEND=noninteractive apt-get install keyboard-configuration
Nicu Stiurca
źródło
2

Możesz użyć xdotool. Podczas uruchamiania skryptu umieść & sleep <however long it takes to get to that point> && xdotool type <number you want to put> && xdotool key Return.

Nie testowałem tego, ale powinno działać.

Odpowiedź 2:

Uruchom polecenie, ale z wyjściem przekierowanym do pliku ( > testfile).

Otwórz kolejny terminal i uruchom

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  

Następnie kliknij z powrotem pierwszy terminal.

Odpowiedź 3:

Myślę, że wszystko, co musisz zrobić, to wstawić żądany numer do pliku testfilei uruchomić polecenie z < testfiledołączonym plikiem .

Skaleń15523
źródło
Dzięki, ciekawy pomysł, ale albo marnuje dużo czasu, albo czasami zawiesza się, gdy instalacja trwa dłużej niż oczekiwano, w zależności od użytego czasu snu.
fadedbee
Czytanie strony podręcznika użytkownika xdotool - wygląda na to, że jest to X Window. Próbuję tego w środowisku serwera Ubuntu. Zaktualizuję moje pytanie.
fadedbee
2

Jest to łatwe do zautomatyzowania, wystarczy ustawić odpowiednią konfigurację debconf dla tego pakietu.

Pierwsza instalacja debconf-utils:

sudo apt install debconf-utils

Jeśli już skonfigurowałeś pakiet, możesz odczytać konfigurację debconf za pomocą:

debconf-get-selections | grep keyboard-configuration

Jeśli nie skonfigurowałeś pakietu lub chcesz zmienić wybrane opcje, możesz to zrobić za pomocą:

dpkg-reconfigure keyboard-configuration

Wyeksportuj wybrane opcje do pliku

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

Skopiuj selections.confna maszynę docelową i ustaw opcje:

debconf-set-selections < selections.conf

Po zainstalowaniu lub ponownej konfiguracji pakietu wybory będą teraz wybierane automatycznie.

dpkg-reconfigure keyboard-configuration -f noninteractive
Josh Enders
źródło
1

„debootstrap to tak naprawdę skrypt powłoki” - od https://wiki.debian.org/Debootstrap

Oznacza to, że możesz przeczytać skrypt, aby sprawdzić, czy istnieją sposoby na przekazanie informacji za pomocą zmiennej środowiskowej, podanie argumentu podczas wywoływania deboostrap lub utworzenie własnej zmodyfikowanej wersji dla określonej aplikacji.

BenjaminBrink
źródło
Ten pakiet jest instalowany jako część apt-get install ....uruchomienia po początkowym debootstrap.
fadedbee
Mówisz więc, że po apt-get install deboostrapparadygmacie instalacji nie można zmieniać zmiennych środowiskowych ani uruchamiać niestandardowego skryptu? W porządku.
BenjaminBrink
Może to pomaga. Ten link pokazuje przykład konfiguracji pliku „wstępnego” w celu uzyskania wstępnych odpowiedzi w instalacjach Ubuntu: askubuntu.com/questions/122505/…
BenjaminBrink