web-dev-qa-db-ja.com

aptitudeまたはapt-getにdpkg構成パラメーターを提供するにはどうすればよいですか?

Gitoliteをインストールすると、次のことがわかります。

# 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.

最後の行は私にとって興味深いものです。 dpkg-reconfigure -plow gitoliteダイアログが表示され、変更できます:

  • gitoliteのシステムユーザー名、
  • ジトールリポジトリの場所と
  • 管理pubkeyを提供します。

gitシステムユーザーを使用し、インストール時にadminpubkeyを提供したいと思います。

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

もちろん、それは機能しません。同様のことができますか?構成パラメーターを事前に決定するにはどうすればよいですか?これは、たとえば、人形やシェフを介してgitoliteを自動的にインストールする場合に非常に役立ちます。

8
troutwine

私はこれをテストしていませんが、サンプルマシンでdpkg-reconfigureを実行した後、debconf-get-selections | egrep "^gitolite\s"を実行して設定内容を取得できると思います。 (お持ちでない場合はdebconf-utilsパッケージに含まれています)。

次に、CLIで、aptを実行する前にdebconf-set-selections $FILENAMEを実行します。

次に、人形を使用すると、次のようになります。

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";
}

人形のサイトの詳細:

Chefには、応答ファイルやpreseedファイルなどを指定するための同様のメカニズムがあると思いますが、私はChefユーザーではありません。

14
freiheit

これを回避するには、 preseed を指定する必要があります。 Java in this module でどのように実行されるかを確認してください。preseedファイルを取得する最も簡単な方法は、最初に手動でインストールと構成を行い、次にそこから種を取得します。 このブログ これの良い例があります。

5