
Wenn ich ein Debian-Paketwartungsskript (z. B. ein Vorinstallationsskript) für ein von mir erstelltes Paket schreibe, wie kann ich das Skript dazu bringen, festzustellen, ob es im nicht-interaktiven Modus ausgeführt werden soll (z. B. ob es apt-get install
mit aufgerufen wurde -y
oder ähnliches)?
Antwort1
Wenn Ihre Maintainer-Skripte mit dem Benutzer interagieren müssen, der die Installation durchführt, ist die empfohlene Vorgehensweise die Verwendung von debconf
; sieheBedingte Datei- und Verzeichnisinstallation in Debian-Paketenfür Zeiger. Das mag kompliziert erscheinen, bringt aber eine Reihe von Vorteilen mit sich – es handhabt nicht nur debconf
nicht-interaktive Setups (mit einem expliziten DEBIAN_FRONTEND=noninteractive
Aufruf oder weil es keine Möglichkeit gibt, mit einem Benutzer zu interagieren), sondern unterstützt auch verschiedene Frontends und die von verwalteten Einstellungen debconf
können vor der Installation festgelegt werden (mithilfe von „Pre-Seeding“). Das ist in Ihrem Fall vielleicht nicht relevant, debconf
unterstützt aber auch Eingabeaufforderungen in verschiedenen Sprachen.
Beachten Sie, dass apt-get
Flags von der Interaktivität des Betreuerskripts getrennt sind; sieheIst DEBIAN_FRONTEND=noninteractive redundant mit apt-get -yqq?