Wie bitte ich apt-get, alle Konfigurationsschritte nach der Installation zu überspringen?

11

Bei der Installation einiger Pakete (wie RabbitMQ) auf Debian / Ubuntu-Computern wird post-installstandardmäßig der Dienst gestartet.

Während dies in den meisten Fällen großartig ist, schlägt dies in einigen Fällen (wenn beispielsweise bereits ein Dienst auf dem erforderlichen Port ausgeführt wird) fehl, wodurch der apt-getFehler vollständig auftritt.

Gibt es eine Möglichkeit, apt-getalle diese post-installSchritte zu überspringen , damit sie ordnungsgemäß installiert werden können?

Hinweis Hier geht es nicht um Fragen während der Installation, auch in interaktiven Sitzungen schlagen diese Installationen fehl, da der post-installFehler "Schritt fehlschlägt" nicht korrekt behandelt wird

Wolph
quelle
1
Diese Frage ist ähnlich, aber unterschiedlich. Hier geht es darum, alle Schritte zu überspringen, nicht nur die interaktiven. Einige Aufgaben führen automatisch Skripte aus, die nicht immer gewünscht werden.
Wolph

Antworten:

8

Wie bitte ich apt-get, interaktive Konfigurationsschritte nach der Installation zu überspringen?

export DEBIAN_FRONTEND=noninteractive
apt-get install -y [packagename]

Bearbeiten : Ja, das war zum Überspringen (nun, Automatisieren) von Fragen nach der Installation , wahr - sorry.

Es gibt keine Möglichkeit, Skripte nach der Installation zu überspringen . Die offizielle Debian-Richtlinie besteht darin, das Skript zu bearbeiten, um einen nicht-terminalen Fehler zurückzugeben, oder das Skript zu reparieren. Siehe http://www.debian-administration.org/articles/251

Es hört sich so an, als würden Sie dies für viele Server automatisieren. In diesem Fall möchten Sie wahrscheinlich Ihre eigene Version des Pakets erstellen und diese bereitstellen. Eine andere Möglichkeit besteht darin, dem Paketbetreuer eine E-Mail zu senden und zu besprechen, ob ein Fehler beim Starten ein Terminalfehler für die Nachinstallation sein sollte (ich glaube nicht, dass dies für andere Pakete wie Apache oder LightTPD gilt, aber ich könnte mich irren .)

Brett Dikeman
quelle
Das ist nur, um interaktive Schritte zu überspringen. Dies ist hier nicht das Problem. Dies sind die nicht interaktiven post-installSchritte, die fehlschlagen, wenn so etwas service rabbitmq-server startfehlschlägt.
Wolph
Aktualisiert. Hilft das?
Brett Dikeman
Es ist besser zu wissen, dass es nicht möglich ist, als sich zu fragen, ob es das ist :) Danke für die Hilfe.
Wolph
Wenn Sie sudo verwenden, funktioniert der Export der Umgebungsvariablen nicht, aber Sie können dies folgendermaßen tun:sudo DEBIAN_FRONTEND=noninteractive apt-get -y [packagename]
aculich
4

Was Sie vielleicht tun möchten, ist etwas mit der Richtlinie-rc.d . Siehe die Manpage für invoke-rc.d. Sie können eine Richtlinie festlegen, damit Dienste nicht automatisch gestartet werden.

Zoredache
quelle
Das ist eine Möglichkeit, das zu umgehen, aber das wäre eine vorübergehende Maßnahme, nehme ich an? Zumindest ... Ich denke, auf diese Weise würden Sie alle Dienststarts global deaktivieren.
Wolph
2

das sollte funktionieren

echo exit 101 > /usr/sbin/policy-rc.d
chmod +x /usr/sbin/policy-rc.d
apt-get install <packagename>
rm -f /usr/sbin/policy-rc.d
Diego Roccia
quelle
Ein bisschen hackig und sehr spezifisch für diesen Fall, aber es hilft sehr! Danke :)
Wolph