Jak poprosić apt-get o pominięcie wszystkich kroków konfiguracji po instalacji?

11

Podczas instalowania niektórych pakietów (takich jak RabbitMQ) na komputerach z systemem Debian / Ubuntu, post-installdomyślnym krokiem jest uruchomienie usługi.

Chociaż jest to świetne w większości przypadków, w niektórych przypadkach (na przykład, gdy masz już usługę uruchomioną na potrzebnym porcie), kończy się to niepowodzeniem, co powoduje apt-getcałkowity błąd.

Czy istnieje sposób na apt-getpominięcie wszystkich tych post-installkroków, aby można było nadal poprawnie zainstalować?

Uwaga Nie chodzi o pytania podczas instalacji, nawet w sesjach interaktywnych instalacje te kończą się niepowodzeniem, ponieważ post-installkrok nie powiedzie się błąd nie jest obsługiwany poprawnie

Wolph
źródło
1
To pytanie jest podobne, ale inne. Chodzi o pominięcie wszystkich kroków, nie tylko interaktywnych. Niektóre zadania automatycznie wykonują skrypty, które nie zawsze są potrzebne.
Wolph

Odpowiedzi:

8

Jak poprosić apt-get o pominięcie interaktywnych kroków konfiguracji po instalacji?

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

Edycja : tak, to było pomijanie (no, automatyzacja) pytań po instalacji , prawda - przepraszam.

Nie ma możliwości pominięcia skryptów poinstalacyjnych . Oficjalna polityka Debiana polega na edycji skryptu w celu zwrócenia błędu nieterminalnego lub naprawieniu skryptu. Zobacz http://www.debian-administration.org/articles/251

Wygląda na to, że automatyzujesz to dla wielu serwerów, w takim przypadku prawdopodobnie będziesz chciał stworzyć własną wersję pakietu i wdrożyć ją. Inną opcją jest wysłanie e-maila do opiekuna pakietu i omówienie, czy nieudane uruchomienie powinno być błędem terminala po instalacji (nie sądzę, że dotyczy to innych pakietów, na przykład apache lub lighttpd, ale mogę się mylić .)

Brett Dikeman
źródło
To po prostu pominąć interaktywne kroki. To nie jest problem, są to nieinteraktywne post-installkroki, które zawodzą, jeśli coś takiego service rabbitmq-server startzawiedzie.
Wolph,
Zaktualizowano To pomaga?
Brett Dikeman,
tak, lepiej wiedzieć, że nie jest to możliwe niż zastanawiać się, czy tak jest :) Dzięki za pomoc.
Wolph
Jeśli używasz sudo, eksport zmiennej środowiskowej nie będzie działał, ale możesz to zrobić w następujący sposób:sudo DEBIAN_FRONTEND=noninteractive apt-get -y [packagename]
aculich
4

To, co możesz chcieć zrobić, to coś z policy-rc.d . Zobacz stronę podręcznika dla invoke-rc.d. Możesz ustawić zasady, aby usługi nie były uruchamiane automatycznie.

Zoredache
źródło
To sposób na obejście tego, ale zakładam, że to tymczasowy środek? Przynajmniej ... Myślę, że w ten sposób globalnie wyłączysz wszystkie uruchomienia usługi.
Wolph,
2

to powinno działać

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
źródło
Trochę zuchwały i bardzo specyficzny dla tego przypadku, ale bardzo pomaga! Dzięki :)
Wolph