Bash-Befehl: Wie gebe ich automatisch Menüoptionen ein, die später während der Installation angezeigt werden?

Bash-Befehl: Wie gebe ich automatisch Menüoptionen ein, die später während der Installation angezeigt werden?

Unter apt-get install -y python-catkin-toolsUbuntu müssen Sie bei der Installation von „tzdata (2020f-0ubuntu0.18.04)“ die Zeitzonennummern 8 für die Region und 7 für eine Stadt eingeben.

Wie kann ich apt-get install -y python-catkin-toolses so einrichten, dass die später erscheinenden Menüpunkte erst eine 8 und dann eine 7 bekommen, sobald eine Eingabe möglich ist? Ich habe die einzugebenden Zahlen mit ## markiert

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.

Ich brauche dies, um es automatisch aus einer Docker-Datei auszuführen, ohne den Benutzer während der Installation nach der Eingabe der Zeitzone zu fragen. Ich würde gerne wissen, wie ich hier die richtige Zeitzone als Parameter des Installationsbefehls einstelle oder wie ich als einfache Problemumgehung die Verwendung der Standardzeitzone erzwingen kann.

Nach einem aktuellen Durchlauf habe ich festgestellt, dass auch die Eingabe der Zahlen bei der Installation aus dem Dockerfile nicht zu funktionieren scheint. Die Eingaben lösen nichts aus.

[...]
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

Da ich davon ausgehe, dass dieses Problem weder apt-get-spezifisch noch betriebssystemspezifisch ist, markiere ich es nicht als solches. Bitte ändern Sie dies, wenn ich hier falsch liege.

Antwort1

Das funktioniert bei mir beim Erstellen eines Dockerfiles nicht:

(Sie können es trotzdem versuchen, auch mit dem externen Link)

Wenn Sie über ein funktionierendes Menü gehen und Werte Ihrer Wahl manuell in das Menü eingeben möchten, benötigen Sie ein "Konsolen-Setup" (z. B. Gnome-Terminal mit apt-get install -y gnome-terminal), um den Terminaldialog zu haben. Ich konnte es damit aber nicht zum Laufen bringen, wahrscheinlich sshist es dazu nötig, siehediese Antwort auf „Frontend kann nicht initialisiert werden: Dialog bei Verwendung von SSH“, das würde in diesem Fall bedeuten, das Terminal (TERM) zu aktivieren und als Frontend "Dialog" zu verwenden:

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


Das funktioniert bei mir beim Erstellen einer Docker-Datei:

Wenn Sie die Menüpunkte wirklich eingeben möchten, hilft Ihnen der folgende Workaround nicht weiter. Wenn Sie mit den Standardeinstellungen zufrieden sind, in diesem Fall zone/city = "etc./etc.", lautet die Lösung wie folgt, entnommen ausIst es möglich, Dialogfragen bei der Installation unter Docker zu beantworten?:

  1. Ändernapt-get install -y python-catkin-tools

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

unterdrückt das Menü des direkt darauf folgenden Befehls.

  1. Man könnte auch bei der Installation des Dockerfiles jedes beliebige Menü unterdrücken und dann am Anfang Folgendes einfügen:

    ARG DEBIAN_FRONTEND=noninteractive
    
  2. Dies darf nicht eingetragen werden, da es als Einstellung auch im Bild erhalten bleibt:

    ENV DEBIAN_FRONTEND=noninteractive
    

Verwenden Sie am besten „1.“, da Sie möglicherweise nicht jeden anderen angezeigten Menüpunkt unterdrücken möchten.

verwandte Informationen