Ubuntu dpkg, nicht interaktive Installation


9

Ich versuche, eine Reihe von .deb-Dateien zu installieren, ohne mit ihnen interagieren zu müssen. MySQL Server fordert beispielsweise ein interaktives Menü zur Eingabe eines Administratorkennworts bei der Konfiguration des dpkg auf.

Ich habe versucht.

export DEBIAN_FRONTEND=noninteractive && export DEBIAN_PRIORITY=critical && sudo /usr/bin/dpkg -i ./files/*

Mir ist bewusst, dass ich die Dateien einfach ohne Konfiguration extrahieren kann. Ich versuche, ein Bash-Skript zu erstellen, um einen Server bereitzustellen, der für die Standardinstallation von Apache, PHP, MySQL usw. vorkonfiguriert ist. Diese "interaktive Installation" verursacht jedoch Probleme.

Irgendwelche Ideen, wie man es deaktiviert? oder eine Abhilfe?

Vielen Dank


Was tun Sie mit dem Root-Passwort des MySQL-Servers, ohne die Frage zu beantworten?
DerfK

Verwenden Sie mysqladmin, um den Server zu konfigurieren.
James Moore

Antworten:


6

Du bist auf dem richtigen Weg. Sie möchten auf jeden Fall verwenden DEBIAN_FRONTEND=noninteractive. Bei kritischen Fragen, die nicht ignoriert werden können, sollten Sie der debconfDatenbank die erforderlichen Antworten vorlegen. Auf der debconfManpage finden Sie alle Details dazu.


1
benötigt, um "su -" und "export" als root zu verwenden.
James Moore

sudo DEBIAN_FRONTEND = nicht interaktive apt install -y package_you_want
aGuegu

4

Für ein allgemeines nicht interaktives Frontend können Sie Folgendes versuchen:

sudo dpkg-reconfigure debconf -f noninteractive -p critical

Zum Konfigurieren von MySQL-Anmeldeinformationen können Sie eine Serverkonfigurationsdatei (z. B. ~/.my.cnf) verwenden, z.

[client]
user=root
password=root

Verwenden Sie zum Auswählen bestimmter Auswahlmöglichkeiten debconf-set-selectionsz. B.:

echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | sudo debconf-set-selections

0

Das sollte funktionieren:

$ pkgadd SOMEpkg << MYINPUT

y

some text

/usr/local

n

password

MYINPUT

Ich musste schwarze Linien zwischen die Linien darüber setzen oder es wurde als eine lange Linie formatiert. In jedem Fall können Sie den Befehl "script" verwenden, um Ihre Eingabe während komplexer Installationen zu speichern und die Ausgabe dann in ein Skript zu ändern, um sie für nachfolgende Installationen zu automatisieren ( man script).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.