「キーボード構成」パッケージのセットアップを自動化する方法


14

debootstrap(Ubuntu 16.04サーバーマシン上)を使用して、Ubuntu 16.04サーバーをchroot jailにインストールするスクリプトを作成しています。

keyboard-configurationパッケージのセットアップ中に、キーボードタイプを要求します。

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: 

これを自動化したいので、聞かないで、インストールを続行します。

これどうやってするの?


回答:


14

同様の StackOverflowの質問:

実行中にENV変数DEBIAN_FRONTEND=noninteractiveが設定されている場合apt-get install keyboard-configuration、対話のプロンプトは表示されません。だからあなたは単に実行することができます:

DEBIAN_FRONTEND=noninteractive apt-get install keyboard-configuration

2

使用できますxdotool。スクリプトputを起動するとき& sleep <however long it takes to get to that point> && xdotool type <number you want to put> && xdotool key Return

これはテストしていませんが、動作するはずです。

回答2:

コマンドを実行しますが、出力はファイルにリダイレクトされます(> testfile)。

別のターミナルを開いて実行します

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  

次に、最初の端末をクリックして戻ります。

回答3:

あなたがする必要があるのは、ファイルに必要な番号を入れてtestfile、コマンドを< testfile追加して実行するだけだと思います。


おもしろいアイデアですが、使用するスリープの長さに応じて、かなりの時間を無駄にするか、インストールが予想より長くかかったときにフリーズすることがあります。
フェードビー

xdotoolのmanページを読んでください-それはX windowsのもののようです。Ubuntuサーバー環境でこれを試みています。質問を更新します。
フェードビー

2

これは自動化が簡単で、このパッケージに適切なdebconf構成を設定するだけです。

最初のインストールdebconf-utils

sudo apt install debconf-utils

パッケージをすでに設定している場合、次のコマンドでdebconf設定を読むことができます。

debconf-get-selections | grep keyboard-configuration

パッケージを構成していない場合、または選択を変更する場合は、次の方法でこれを実行できます。

dpkg-reconfigure keyboard-configuration

選択内容をファイルにエクスポートします

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

selections.confターゲットマシンにコピーし、選択を設定します。

debconf-set-selections < selections.conf

パッケージをインストールまたは再構成すると、選択項目が自動的に選択されるようになります。

dpkg-reconfigure keyboard-configuration -f noninteractive

1

「debootstrapは実際には単なるシェルスクリプトです」-https : //wiki.debian.org/Debootstrapから

これは、環境変数を介して情報を渡す方法、deboostrapを呼び出すときに引数を指定する方法、または特定のアプリケーション用に独自の変更バージョンを作成する方法があるかどうかを確認するスクリプトを読むことができることを意味します。


このパッケージはapt-get install ....、最初のデブートストラップ後の実行の一部としてインストールされています。
フェードビー

それで、apt-get install deboostrapインストール後のパラダイムでは、環境変数の変更やカスタマイズされたスクリプトの実行が許可されないと言っていますか?はい。
ベンジャミン

たぶんこれが役立ちます。このリンクは、Ubuntuインストールでプロンプトに事前に回答する「preeseed」ファイルをセットアップする方法の例を示しています。askubuntu.com/ questions
BenjaminBrink
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.