pbuilder
を使用してPPAにアップロードしようとしています。パッケージは次のコマンドでokをビルドします:
Sudo pbuilder build <package>_<version>.dsc
しかし、アップロードはエラーで失敗します:
Source/binary (i.e. mixed) uploads are not allowed.
pdebuild
を使用してビルドする必要があると言われていますsource package
、ただしpdebuild
はビルドの依存関係を解決しません。このパッケージをビルドして、最終的にアップロードできるようにするにはどうすればよいですか?依存関係を手動でインストールしたくありません。
答えはそうではないということです。 pbuilder
はソースパッケージを取得し、バイナリをビルドします。また、ソースパッケージをビルドせずにソースコードを取得して、自分でホストするか、自分のdebianリポジトリシステムに追加して自分でホストするバイナリを作成することもできます。
それは、PPAに必要なものではありません。
あなたがやりたいこと、そして私が強くお勧めするのは、従来のパッケージ化手順に従い、ソースコードdebuild -S
を含むパッケージのディレクトリを使用して、コードに対してdebian/
を実行することです。フォルダ、およびその他すべて。
次に、debuild -S
でソースパッケージをビルドしたら、dput
を使用して、ソースディレクトリの1つ上のディレクトリにある.changes
ファイルをPPAにアップロードできます。 (この手順は LaunchpadのPPAアップロードのヘルプドキュメントで参照 )。
理論的には、pdebuilder
を使用してシステムをクリーンに保ち、chroot内でビルドできますが、以前の失敗の理由について、これに関する私の説明を読んでください。
コメントに従って、debhelperがautoreconf
プラグインを見つけられないことを正しく識別しました。
また、この回答に関するコメントで述べたように、pbuilder
とpdebuilder
はどちらも、debhelperの依存関係を判別するのに十分なほど賢くありません。
問題を解決してビルドできるようにするには、pbuilder
またはpdebuilder
を手動で使用してchrootにログインする必要があります。次に、手動でdh-autoreconf
をchrootにインストールする必要があります。通常、chrootにログインした後、apt-get install dh-autoreconf
を使用します。
これを実行し、chrootの状態を保存すると、パッケージをpbuilder
またはpdebuilder
できるようになります。
(ただし、私は伝統的にパッケージで作業することを好み、ビルドシステムが完全にクリーンであるかどうかは気にせず、実際にビルドするのはすべてソースパッケージであり、debhelperプラグインによってシステムが乱雑になることはありません)
pbuilder
は、ソースパッケージからバイナリパッケージをビルドするために使用されます。 PPAは、ソースパッケージからバイナリパッケージもビルドします。単にdput
the source.changes
を作成したときに作成したファイル<package>_<version>.dsc
ファイル。
pbuilder
を使用する際の主なポイントの1つは、公式アーカイブとPPAの両方でバイナリパッケージをビルドするために使用されるクリーンなchroot環境をローカルで模倣することです。