Comment demander à apt-get d'ignorer toutes les étapes de configuration après l'installation?

11

Lors de l'installation de certains packages (comme RabbitMQ) sur des machines Debian / Ubuntu, l' post-installétape par défaut démarre le service.

Bien que cela soit excellent dans la plupart des cas, dans certains cas (lorsque vous avez déjà un service en cours d'exécution sur le port requis par exemple), cela échoue, ce qui rend l' apt-getéchec complet.

Existe-t-il un moyen de dire apt-getde sauter toutes ces post-installétapes afin qu'il puisse toujours s'installer correctement?

Remarque Il ne s'agit pas de questions pendant l'installation, même dans les sessions interactives, ces installations échouent car l' post-installéchec de l' étape échoue n'est pas géré correctement

Wolph
la source
1
Cette question est similaire mais différente. Il s'agit de sauter toutes les étapes, pas seulement celles interactives. Certaines tâches exécutent automatiquement des scripts qui ne sont pas toujours souhaités.
Wolph

Réponses:

8

Comment demander à apt-get d'ignorer les étapes de configuration interactive post-installation?

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

Edit : oui, c'était pour sauter (enfin, automatiser) les questions post-installation , vrai - désolé.

Il n'y a aucun moyen d'ignorer les scripts post-installation . La politique officielle de Debian consiste à modifier le script pour renvoyer une erreur non terminale ou à corriger le script. Voir http://www.debian-administration.org/articles/251

Il semble que vous automatisiez cela pour de nombreux serveurs, auquel cas, vous souhaiterez probablement créer votre propre version du package et la déployer. Une autre option consiste à envoyer un e-mail au responsable du package et à discuter si un échec au démarrage doit être une erreur de terminal pour la post-installation (je ne pense pas que ce soit pour d'autres packages comme apache ou lighttpd, par exemple, mais je peux me tromper .)

Brett Dikeman
la source
C'est juste pour sauter les étapes interactives. Ce n'est pas le problème ici, ce sont les post-installétapes non interactives qui échouent en cas d' service rabbitmq-server startéchec.
Wolph
Mis à jour. Est ce que ça aide?
Brett Dikeman
ça le fait, mieux vaut savoir que ce n'est pas possible que de se demander si c'est :) Merci pour l'aide.
Wolph
Si vous utilisez sudo, l'exportation de la variable d'environnement ne fonctionnera pas, mais vous pouvez le faire de cette façon:sudo DEBIAN_FRONTEND=noninteractive apt-get -y [packagename]
aculich
4

Ce que vous voudrez peut-être faire, c'est quelque chose avec le policy-rc.d . Voir la page de manuel pour invoke-rc.d. Vous pouvez définir une stratégie pour que les services ne soient pas démarrés automatiquement.

Zoredache
la source
C'est une façon de contourner cela, mais ce serait une mesure temporaire, je suppose? Au moins ... Je pense que de cette façon, vous désactiveriez globalement tous les démarrages de service.
Wolph
2

cela devrait fonctionner

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
la source
Un peu hacky et très spécifique à ce cas, mais ça aide beaucoup! Merci :)
Wolph