Come posso chiedere a apt-get di saltare tutti i passaggi di configurazione post-installazione?


11

Quando si installano alcuni pacchetti (come RabbitMQ) su macchine Debian / Ubuntu, il post-installpasso si avvia automaticamente all'avvio del servizio.

Anche se questo è ottimo nella maggior parte dei casi, in alcuni casi (ad esempio quando si dispone già di un servizio in esecuzione sulla porta necessaria), ciò fallisce e ciò fa apt-getfallire completamente.

C'è un modo per dire apt-getdi saltare tutti quei post-installpassaggi in modo che possa ancora essere installato correttamente?

Nota Non si tratta di domande durante l'installazione, anche nelle sessioni interattive queste installazioni falliscono perché il post-installpassaggio fallisce non viene gestito correttamente




1
Questa domanda è simile ma diversa. Si tratta di saltare tutti i passaggi, non solo quelli interattivi. Alcune attività eseguono automaticamente script che non sono sempre desiderati.
Wolph,

Risposte:


8

Come posso chiedere a apt-get di saltare qualsiasi passaggio interattivo di configurazione post-installazione?

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

Modifica : sì, era per saltare (bene, automatizzare) le domande post-installazione , vero - scusa.

Non è possibile saltare gli script post-installazione . La politica ufficiale di Debian è di modificare lo script per restituire un errore non terminale o correggere lo script. Vedi http://www.debian-administration.org/articles/251

Sembra che tu stia automatizzando questo per molti server, nel qual caso, probabilmente vorrai creare la tua versione del pacchetto e distribuirla. Un'altra opzione è quella di inviare un'e-mail al manutentore del pacchetto e discutere se un errore di avvio dovrebbe essere un errore terminale per post-installazione (non credo che lo sia per altri pacchetti come apache o lighttpd, ad esempio, ma potrei sbagliarmi .)


Questo è solo per saltare i passaggi interattivi. Questo non è il problema qui, questi sono i passaggi non interattivi post-installche falliscono se qualcosa di simile service rabbitmq-server startfallisce.
Wolph,

Aggiornato. Questo aiuta?
Brett Dikeman,

sì, meglio sapere che non è possibile che chiedersi se lo è :) Grazie per l'aiuto.
Wolph,

Se stai usando sudo, l'esportazione della variabile d'ambiente non funzionerà, ma puoi farlo in questo modo:sudo DEBIAN_FRONTEND=noninteractive apt-get -y [packagename]
aculich

4

Quello che potresti voler fare è qualcosa con policy-rc.d . Vedi la pagina man per invoke-rc.d. È possibile impostare una politica in modo che i servizi non vengano avviati automaticamente.


È un modo per aggirare il problema, ma sarebbe una misura temporanea presumo? Atleast ... Penso che in questo modo disabiliteresti globalmente tutti gli avvii di servizio.
Wolph,

2

questo dovrebbe funzionare

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

Un po 'confuso e molto specifico per questo caso, ma aiuta molto! Grazie :)
Wolph,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.