web-dev-qa-db-ja.com

pbuilderビルドでローカルの.debファイルを使用するにはどうすればよいですか?

多くの場合、別のパッケージが依存するパッケージを作成する必要があります(つまり、ビルドの依存関係)。これらのすべてのパッケージを最初にppaでビルドするのではなく(時間がかかることがあります)、pbuilderの結果ディレクトリをpbuilder自体のソースとして使用したいと思います。

これどうやってするの?フックを介してこれを行うことはできますか?

9
txwikinger

Dpkg-scanpackagesで作成されたシンプルなリポジトリにそれらを貼り付け、Apache経由で利用可能にすることができます。次に、pbuilderのapt設定を更新して、リポジトリを使用します。

5

これにはいくつかの方法があります。 adolが述べたように、Ubuntu wikiには、mini-dinstallでローカルリポジトリを作成し、pbuilder構成に追加することでこれを行う方法の 素晴らしい例 があります。 dpkg-scanpackagesの使用に関するDennisの回答も同様に機能します。

私は最近apt-ftparchiveでこれをやっています。私は非常に軽量だと思うので、このアプローチが好きです。注釈付きの例を次に示します。

# From my ~/.pbuilderrc file

# Location of the dir where you keep pbuilder hook scripts.
HOOKDIR="/home/andrew/.pbuilder-hooks"

# Path to your local repo to be used as a mirror written as apt source line.
OTHERMIRROR="deb file:///home/andrew/pbuilder/local_repo ./"

# Path to your local repo. This tells pbuilder to mount this directory so it is available in the chroot.
BINDMOUNTS="/home/andrew/pbuilder/local_repo"

# As we need to have the apt-ftparchive command, we need to insure this package is installed.
EXTRAPACKAGES="apt-utils"

Pbuilderフックも必要です:

# From my ~/.pbuilder-hooks/D5update-local-repo file

# Path to the local repo.
LOCAL_REPO="/home/andrew/pbuilder/local_repo"

# Generate a Packages file.
(cd $LOCAL_REPO ; apt-ftparchive packages . > Packages)

# Update to include any new packages in the local repo.
apt-get update

これで、パッケージをローカルリポジトリにドロップするだけで、pbuilderで利用できるようになります。依存関係の文字列をチェーンビルドしようとしている場合、ローカルリポジトリディレクトリとしてpbuilder結果ディレクトリを作成できます。

これに関する他のバリエーションを想像できるでしょう。たとえば、フックを使用する代わりに、post_upload_commandでdputを使用してパッケージファイルを生成できます。

この Debian wikiページ も参考になります。

6
andrewsomething