bash コマンド: インストール中に後で表示されるメニューの選択肢を自動的に入力するにはどうすればよいですか?

bash コマンド: インストール中に後で表示されるメニューの選択肢を自動的に入力するにはどうすればよいですか?

Ubuntu では、「tzdata (2020f-0ubuntu0.18.04)」をインストールするときにapt-get install -y python-catkin-tools、地域にタイムゾーン番号 8、都市にタイムゾーン番号 7 を入力する必要があります。

apt-get install -y python-catkin-tools後でポップアップするメニューの選択肢に、入力可能になったらすぐに最初に 8 が入り、次に 7 が入るよう実行するにはどうすればよいですか? 入力する数字を ## でマークしました

apt-get install -y python-catkin-tools

...

Setting up tzdata (2020f-0ubuntu0.18.04) ...
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 76.)
debconf: falling back to frontend: Readline
Configuring tzdata
------------------

Please select the geographic area in which you live. Subsequent configuration questions will narrow this down by presenting a list of cities, representing the time zones in which they are located.

  1. Africa  2. America  3. Antarctica  4. Australia  5. Arctic  6. Asia  7. Atlantic  8. Europe  9. Indian  10. Pacific  11. SystemV  12. US  13. Etc
Geographic area: ##8##

Please select the city or region corresponding to your time zone.

  1. Amsterdam  6. Belgrade    11. Budapest    [shortened...]

Time zone:


Time zone: ##7##

Current default time zone: 'Europe/Berlin'
Local time is now:      Wed Jan 20 22:42:43 CET 2021.
Universal Time is now:  Wed Jan 20 21:42:43 UTC 2021.
Run 'dpkg-reconfigure tzdata' if you wish to change it.

インストール中にユーザーにタイムゾーンの入力を求めずに、これを Dockerfile から自動的に実行する必要があります。インストール コマンドのパラメーターとして適切なタイムゾーンを設定する方法、または単なる回避策として、デフォルトのタイムゾーンを使用するように強制する方法を知りたいです。

最近実行した後、インストール中に Dockerfile から数字を入力しても機能しないことがわかりました。エントリによって何もトリガーされません。

[...]
Setting up tzdata (2021a-0ubuntu0.18.04) ...
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 tzdata
------------------

Please select the geographic area in which you live. Subsequent configuration
questions will narrow this down by presenting a list of cities, representing
the time zones in which they are located.

  1. Africa      4. Australia  7. Atlantic  10. Pacific  13. Etc
  2. America     5. Arctic     8. Europe    11. SystemV
  3. Antarctica  6. Asia       9. Indian    12. US
Geographic area: 8

7
^C

この問題は apt-get や OS に固有のものではないと想定しているため、そのようにタグ付けしていません。間違っている場合は変更してください。

答え1

Dockerfile を構築するときにこれが機能しません:

(外部リンクでも試すことができます)

作業メニューを通り、メニューに選択した値を手動で入力したい場合は、apt-get install -y gnome-terminalターミナルダイアログを表示するために「コンソールセットアップ」(たとえば、gnome-terminal)が必要です。しかし、おそらくこれでは実行できませんでした。ssh必要なのでしょう。「フロントエンドを初期化できません: ssh 使用時のダイアログ」のこの回答この場合、ターミナル (TERM) をアクティブにし、フロントエンドとして「dialog」を使用することを意味します。

TERM=$TERM DEBIAN_FRONTEND=dialog apt-get install -y python-catkin-tools


これは、Dockerfile を構築するときに機能します。

本当にメニューポイントを入力したい場合、次の回避策は役に立ちません。デフォルト(この場合はzone/city = "etc./etc.")で問題ない場合、解決策は次のようになります。Docker でインストールするときにダイアログの質問に答えることは可能ですか?:

  1. apt-get install -y python-catkin-toolsへの変更

    DEBIAN_FRONTEND=noninteractive apt-get install -y python-catkin-tools
    

直後のコマンドのメニューを抑制します。

  1. Dockerfile のインストール中にメニューを非表示にして、先頭に以下を追加することもできます。

    ARG DEBIAN_FRONTEND=noninteractive
    
  2. これは画像でも設定として保持されるため、入力しないでください。

    ENV DEBIAN_FRONTEND=noninteractive
    

表示される他のすべてのメニュー ポイントを抑制したくない場合は、せいぜい「1.」を使用します。

関連情報