Mein potenzieller Hosting-Anbieter schlägt vor , einen Befehl im Terminal auszuführen, um das Betriebssystem-Image des KVM-basierten Servers auf ein Minimum zu reduzieren. Da die KVM-Vorlagen Pakete enthalten, die ich nicht benötige, dachte ich, ich könnte denselben Befehl verwenden, um unerwünschte Pakete zu entfernen.
Dieser Befehl beginnt mit DEBIAN_FRONTEND=noninteractive
und wird apt-get remove
wie folgt aufgerufen :
DEBIAN_FRONTEND=noninteractive apt-get remove --purge -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" package-1 package-2 ... package-n; apt-get -y autoremove; apt-get clean all
Es ist das erste Mal, dass ich auf die DEBIAN_FRONTEND
Umgebungsvariable stoße und bisher keine nützlichen Informationen gefunden habe. Ich frage mich also, auf was es sich noninteractive
auswirkt und ob es ratsam ist, weil ich annehme, dass value ( noninteractive
) bestehen bleibt .
apt
environment-variables
Asarluhi
quelle
quelle
Antworten:
Das einfache Voranstellen eines
apt
Befehls mitDEBIAN_FRONTEND=something
bleibt nach dem einzelnen Befehl, auf den er angewendet wird, nicht bestehen.Die
DEBIAN_FRONTEND
Optionen sind in den Handbuchseiten von Abschnitt 7 dokumentiertdebconf
(möglicherweise müssen Sie dasdebconf-doc
Paket installieren , um diese auf Ihrem System verfügbar zu machen). Vonman 7 debconf
:Es wird auch darauf hingewiesen, dass:
quelle
DEBIAN_FRONTEND=noninteractive
häufig in Dockerfiles verwendet. Bei dieser Antwort frage ich mich, warum wir das--yes
Flag bei apt-Befehlen einfach nicht verwenden, da es expliziter ist und in den meisten Fällen unseren Anforderungen entspricht.DEBIAN_FRONTEND
mit verwendensudo
, legen Sie die Variable innerhalb dessudo
Befehls und nicht für diesen fest. Das heißt:sudo DEBIAN_FRONTEND=noninteractive apt-get install slrn
. Wenn Sie die env-Variableneinstellung zuvor setzensudo
, ist sie für densudo
Befehl selbst gültig undsudo
kopiert sie nicht in den ausgeführtenapt-get
Befehl. Die Syntax für die Einrichtung von Umgebungsvariablen für den auszuführendensudo
Befehl ist zwischen und der eigentliche Befehlsudo
(siehe Manpage). Das bereitete mir große Schwierigkeiten und ich dachte darüber nach, etwas zu teilen.noninteractive
, können Sie dies mit dem folgenden Befehl tun:dpkg-reconfigure debconf --frontend=noninteractive