Come posso fornire i parametri di configurazione di dpkg a aptitude o apt-get?


8

Quando installo gitolite trovo che:

# aptitude install gitolite
The following NEW packages will be installed:
  gitolite 
0 packages upgraded, 1 newly installed, 0 to remove and 29 not upgraded.
Need to get 114 kB of archives. After unpacking 348 kB will be used.
Get:1 http://security.debian.org/ squeeze/updates/main gitolite all 1.5.4-2+squeeze1 [114 kB]
Fetched 114 kB in 0s (202 kB/s)
Preconfiguring packages ...
Selecting previously deselected package gitolite.
(Reading database ... 30593 files and directories currently installed.)
Unpacking gitolite (from .../gitolite_1.5.4-2+squeeze1_all.deb) ...
Setting up gitolite (1.5.4-2+squeeze1) ...
No adminkey given - not initializing gitolite in /var/lib/gitolite.

L'ultima riga mi interessa. Se corro dpkg-reconfigure -plow gitolitemi viene presentata una finestra di dialogo e posso modificare:

  • il nome utente di sistema per gitolite,
  • la posizione dei depositi di gitolite e
  • fornire l'amministratore pubkey.

Preferirei usare l' gitutente di sistema e fornire l'amministratore pubkey all'installazione, dire qualcosa del genere:

# aptitude install gitolite --user git --admin-pubkey 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDAc7kCAi2WkvqpAL1fK1sIw6xjpatJ+Ms2nrwLJPhdovEY3MPZF7mtH+rv1CHFDn66fLGiWevOFp...'

Questo, ovviamente, non funziona. Si può fare qualcosa di simile? Come posso determinare in anticipo i parametri di configurazione? Ciò sarebbe estremamente utile, ad esempio, quando si installa automaticamente gitolite, tramite burattino o cuoco.

Risposte:


14

Non l'ho testato, ma credo che dopo aver eseguito il tuo dpkg-reconfiguresu un esempio di macchina, è possibile eseguire debconf-get-selections | egrep "^gitolite\s"per ottenere ciò che è stato impostato. (è nel debconf-utilspacchetto se non lo hai).

Quindi sulla CLI, debconf-set-selections $FILENAMEprima di eseguire apt.

Quindi con le marionette sarebbe qualcosa del tipo:

file {
  "/var/cache/debconf/gitolite.preseed":
     source => '...'; # someplace with that output
}
package {
  "gitolite":
    require      => File["/var/cache/debconf/gitolite.preseed"],
    responsefile => "/var/cache/debconf/gitolite.preseed";
}

Maggiori informazioni sul sito delle marionette:

Sospetto che Chef abbia un meccanismo simile per specificare un file di risposta o un file preconfigurato o qualcosa del genere, ma non sono un utente Chef.


5

È necessario fornire un preconfigurato per aggirare questo. Guarda come viene fatto per Java in questo modulo . Trovo che il modo più semplice per ottenere un file preconfigurato sia prima fare un'installazione e una configurazione manuali, e poi ottenere il seme da quello. Questo blog ne ha un buon esempio.

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.