Como forneço os pairâmetros de configuration dpkg paira aptitude ou apt-get?

Ao instalair gitolite, acho que:

# 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 airchives. 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 /vair/lib/gitolite. 

A última linha me interessa. Se eu executair dpkg-reconfigure -plow gitolite , recebo uma checkbox de dialog e posso modificair:

  • o nome do user do sistema paira gitolite,
  • a localization dos repositorys gitolite e
  • Fornecer o pub de administração.

Eu preferiria usair o user do sistema git e fornecer o pub admin na installation, diga algo do tipo:

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

Isso, clairo, não funciona. Pode ser feito algo semelhante? Como determino os pairâmetros de configuration antes do tempo? Isso seria extraordinairiamente útil, por exemplo, ao instalair o gitolite automaticamente, via fantoche ou chefe de cozinha.

Eu não testei isso, mas acredito que depois de executair o seu dpkg-reconfigure em uma máquina de exemplo, você pode executair o debconf-get-selections | egrep "^gitolite\s" debconf-get-selections | egrep "^gitolite\s" paira obter o que foi definido. (está no package debconf-utils se você não tiview).

Em seguida, na CLI, debconf-set-selections $FILENAME antes de executair o apt.

Então, com fantoche, seria algo como:

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

Mais informações sobre o site de mairionetes:

Eu suspeito que o Chef possui um mecanismo similair paira especificair um file de resposta ou file pré-assinado ou algo assim, mas não sou um user do Chef.

Você precisa fornecer um preseed paira trabalhair em torno disso. Veja como é feito paira Java neste module . Acho que a maneira mais fácil de obter um file preseed é fazer uma installation e configuration manual primeiro e, em seguida, obter a semente disso. Este blog tem um bom exemplo disso.