Deaktivieren Sie Eingabeaufforderungen während der Installation eines Debian-Pakets

22

Wie kann ich die Eingabeaufforderungen, die während der Installation eines Debian-Pakets erscheinen, vollständig deaktivieren? Ich habe alle Optionen verwendet, die ich gefunden habe, aber es gibt einige Pakete, die immer noch dazu auffordern.

Ich benutze diesen Befehl:

apt-get -y --allow-unauthenticated --force-yes -o DPkg::Options::="--force-overwrite" -o DPkg::Options::="--force-confdef" install x11-common

Warum fordert das x11-common-Paket immer noch dazu auf? Wie kann ich diese Eingabeaufforderungen entfernen?

Danke im Voraus

--Sieger

Bearbeiten: Nur um zu verdeutlichen, die Eingabeaufforderungen sind keine "Ja / Nein" -Aufforderungen, es handelt sich um offene Fragen in einem farbigen Bildschirm (typischer zweifarbiger Bildschirm), aber ich möchte die Standardoption für diese Fragen festlegen

victorgp
quelle

Antworten:

38

Wählen Sie ein neues Frontend aus, indem Sie Ihre Umgebung einstellen.

DEBIAN_FRONTEND=noninteractive apt-get -y install x11-common

Ich benutze dies die ganze Zeit bei der Automatisierung der Paketinstallation mit cfengine.

Bahamat
quelle
+1 Dies ist die richtige Antwort
Lynxman
In einigen seltsamen Fällen, wie zum Beispiel, wenn Sie diese Funktion nicht interaktiv in der Chroot verwenden müssen, können SieDEBIAN_FRONTEND=noninteractive sudo -E chroot . echo "something"
mschuett
8

Da ich x11-common nicht manuell installiert habe, bin ich mir nicht sicher, welche Fragen Ihnen gestellt werden. Wenn sie jedoch von debconf stammen, sollten Sie in der Lage sein, die Fragen mit vorab zu beantworten debconf-set-selections.

Zoredache
quelle
Dies ist die Lösung, danke. Ich habe die Eigenschaften mit debconf-get-selections erhalten und sie zuvor mit debconf-set-selections festgelegt, und es wurden keine weiteren
Eingabeaufforderungen
Selbst wenn die Auswahl festgelegt ist, stellen einige Pakete je nach Priorität möglicherweise noch Fragen. Ich empfehle jedoch, wenn möglich eine Auswahl zu treffen. Das Frontend zu setzen noninteractiveist die Magie "Frag mich nichts, egal was" -Flag.
Bahamat
4

Sie müssen dpkg-reconfigure debconfangeben, dass Fragen mit einer Priorität von weniger als "Kritisch" ignoriert werden sollen.

Das bringt Sie nicht dazu, kritische Fragen zu beantworten.

DerfK
quelle
1

Um die Eingabeaufforderungen für die Neukonfiguration aller Pakete mit global zu deaktivieren debconf, kommentieren Sie einfach die zweite Zeile aus der /etc/apt/apt.conf.d/70debconfDatei aus.

Wenn Sie eine VM bereitstellen, fügen Sie Ihrem Bereitstellungsskript die folgenden Befehle hinzu:

sudo ex +"%s@DPkg@//DPkg" -cwq /etc/apt/apt.conf.d/70debconf
sudo dpkg-reconfigure debconf -f noninteractive -p critical

Sie können auch auf die gleiche Weise versuchen, wie Travis CI es tut:

sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install some_package

Bei einigen anderen Paketen, z. B. ttf-mscorefonts-installer(abhängig von language-pack-en), scheint das oben Genannte nicht zu funktionieren. Versuchen Sie also Folgendes:

echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | sudo debconf-set-selections
sudo apt-get install -y language-pack-en
Kenorb
quelle
1
--force-yesist eine SEHR beängstigende und nicht zu empfehlende Art, Eingabeaufforderungen durchzuspielen. Seien Sie nicht überrascht, wenn Sie eines Tages mit einem kaputten und möglicherweise nicht behebbaren System enden.
Dragon788