私は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が述べたように、ビルドシステムにパッケージ化されています。