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:
これを自動化したいので、聞かずにインストールを続行します。
これどうやってするの?
同様 StackOverflowの質問から:
DEBIAN_FRONTEND=noninteractive
の実行中にENV変数apt-get install keyboard-configuration
が設定されている場合、インタラクションのプロンプトは表示されません。だからあなたは単に実行することができます:
DEBIAN_FRONTEND=noninteractive apt-get install keyboard-configuration
これは自動化が簡単で、このパッケージに適切な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
xdotool
を使用できます。スクリプトを起動するときに、& 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
を追加してコマンドを実行することだけだと思います。
「debootstrapは実際には単なるシェルスクリプトです」--from https://wiki.debian.org/Debootstrap
これは、環境変数を介して情報を渡す方法、deboostrapを呼び出すときに引数を指定する方法、または特定のアプリケーション用に独自の変更バージョンを作成する方法があるかどうかを確認するスクリプトを読むことができることを意味します。