Domanda

Sto cercando di creare uno script che scarica automaticamente i pacchetti per nuovi server. Tuttavia, alcune cose come 'mysql-server' non possono automaticamente installato causa è necessario configurarli nell'interfaccia ncurses prima. Ho guardato attraverso le pagine man e non riesco a trovare niente di appropriato.

Non mi interessa se devo caricare / modificare un file di configurazione in seguito -. Ho solo bisogno i pacchetti appropriati installati

Qualcuno sa cosa fare oltre afferrare tarball e costruire io stesso?

UPDATE scoperto che per cose come mysql-server che si può fare solo:

DEBIAN_FRONTEND='noninteractive' apt-get install -yq mysql-server

tuttavia aspettarsi assomiglia a qualcosa che avrò bisogno per sun-java6-jdk; non hanno ancora valutato che

È stato utile?

Soluzione

Per i pacchetti che chiedono domande attraverso debconf (che è quello che mette il display ncurses), è possibile pre-rispondere alle domande. Per sun-java, le domande possono essere pre-risposta seguendo le istruzioni all'indirizzo http://www.davidpashley.com/blog/debian/java-license

Altri suggerimenti

Risposta da ossramblings.com :

Per prima cosa, installare il pacchetto normalmente; poi, estrarre le risposte di configurazione dal file di dati debconf:

sudo apt-get install debconf-utils
sudo debconf-get-selections | grep mypackage > something.seed

Poi, per altri impianti, è possibile applicare prima di installare il pacchetto:

sudo debconf-set-selections ./something.seed

Ogni pacchetto Debian che usa debconf per ottenere i valori di configurazione può essere eseguito senza sorveglianza. Il trucco è che debconf per prima cosa cercare di pre-installato risposte a qualsiasi configurazione di questione , che un determinato pacchetto ha.

Pre-install risposte config

Basta creare un file nel formato seguente,

# Use one line for each question
package-name question-name question-type answer
package-name question-name question-type really long \
answer here
package-name question-name question-type answer
...

e inserirlo nel sistema in questo modo:

$ debconf-set-selections my-selections-file

Ora, si è pronti per apt-get install, come al solito.

una tantum

Dal momento che questo comando legge anche dallo standard input, si può fare:

$ echo "man-db man-db/auto-update boolean true" | debconf-set-selections

Trovare le risposte predefinite

Come si fa a sapere quali pacchetti utilizzare queste risposte di configurazione? Beh, se avete già installato il pacchetto in questione in modo interattivo, è possibile interrogare il sistema locale per vedere quali valori sono attualmente configurate. debconf-get-selections stampa un elenco di tutte le risposte di configurazione per il sistema attuale. Ad esempio

$ debconf-get-selections | grep '^man'

restituisce il seguente sul mio sistema:

man-db  man-db/install-setuid   boolean false
man-db  man-db/auto-update      boolean true

Potrebbe essere necessario installare il pacchetto debconf-utils per rendere questo comando disponibile.

Esempio

# Preset values to questions which would otherwise be asked while
# installing packages.
# Use debconf-set-selections to install
openssh-server  openssh-server/permit-root-login        boolean false
man-db  man-db/install-setuid   boolean false
man-db  man-db/auto-update      boolean true

Fonti

Non sono sicuro di quello che di configurazione esigenze mysql-server, ma si potrebbe provare qualcosa di simile aspettare

Vorrei guardare in cron-apt . Non ho provato io stesso, ma è descrizione del pacchetto sembra promettente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top