Debian ビルド - パッケージではなくバイナリによって異なる

Debian ビルド - パッケージではなくバイナリによって異なる

私はRustアプリケーションを開発しており、Debian用のパッケージを提供したいと思います。以下にも同様の構成がありますdebian/controls

Source: com.github.yourname.yourrepo
Section: x11
Priority: extra
Maintainer: Someone
Build-Depends: cargo,
               debhelper (>= 9),
               libgtk-3-dev,
               libglib2.0-dev
Standards-Version: 3.9.3

Package: com.github.yourname.yourrepo
Architecture: any
Depends: ${misc:Depends}, ${shlibs:Depends}
Description: SomeApp
Some app developed in Rust

ところで、それでビルドしようとしたらdebuildないと言いましたねcargo。ところで、cargo端末に入力するとシステムに表示されます。理由は、パッケージがインストールされていないためですcargo。私は、人々がすでにそれを持っている場合、それをインストールすることを強制したくありません。 Debian以外のパッケージに強制的に依存関係を持つ方法はありますか?

答え1

いいえ、Debianバイナリパッケージではなくビルド(または他の)依存関係を適用する方法はありません。すべての依存関係、競合、およびその他のフィールド宣言間の関係バッグ

あなたできるequivsパッケージ化されたパッケージの代わりに独自のパッケージを使用したい場合は、偽のパッケージを作成してトリックを書き込むことができますが、cargo他のDebianユーザーのためにパッケージが正しく構築されていることを確認することはできません。

答え2

これらのBuild-Depends: ...パッケージはビルド時にのみインストールされます。これは、エンドユーザーがリストを表示できないことを意味します。

代わりに、Depends: ...エンドユーザーが以下を実行すると、コンテンツは自動的にインストールされます。

apt install ./<package>.deb

cargoしたがって、ビルド時にもパッケージをインストールできます。これただこれを行わない理由は、ビルドシステムで最新バージョンのパッケージを表示できず、最新バージョンが必要な場合です。この場合、cargoまずパッケージを自分で作成してから使用する必要があります。特別なStephen Kittが述べたように、ビルドシステムにパッケージ化されています。

関連情報