つまり、バックポートリポジトリで直接Debianパッケージの依存関係を定義することは可能ですか?
パッケージのインストール時に独自に構築されるカスタム Debian パッケージを作成しようとしています。ただし、そのパッケージをビルドするには、linux-headers
バックポートリポジトリ(または)でのみ利用可能な最新のパッケージが必要ですlinux-compiler
。カーネルもバックポートからインストールされるからです。
パッケージにカスタムAPT設定ファイルを含めようとしましたが、役に立ちませんでした。apt
進行中のインストールプロセス中に設定ファイルを再度読み取らないので、どのような方法が適していますか?基本設定ファイルの内容は次のとおりです。手動でインストールすると正しいバージョンが提供されます。
Package: linux-headers-amd64 linux-compiler-gcc-6-x86
Pin: release n=stretch-backports
Pin-Priority: 1000
それでは、言葉だけですべてのことを順調に進める方法はないでしょうかapt install my-custom-package
。
答え1
パッケージ自体のパッケージ依存関係でパッケージをインストールするためにリポジトリを指定することはできません。あなたができる唯一のことは最小バージョンを指定することです:
Depends: linux-headers-amd64 (>= 4.19)
パッケージに設定ファイルを提供することはできますが、あなたが言ったように、apt
インストール中には考慮されません。また、パッケージのインストールは依存関係を使用しない限り他のパッケージのインストールを要求できないため、新しいリポジトリを設定してからインストールすることはできapt-get install
ませんpostinst
。
おそらく最善のアプローチは、バックポートリポジトリを構成するパッケージを提供することです(必要に応じてピンの優先順位を追加せずに質問で行った方法で変更すると、最終的にユーザー設定が破損する可能性があります)。それから実際のパッケージをインストールしてください(とにかく指定する必要があります-t stretch-backports
)。またはを使用できますdkms
。
ところで、カーネルコンパイラパッケージに依存してはいけません。特定のヘッダーパッケージには適切な依存関係があるため、必要に応じてコンパイラパッケージが遷移的にプルされます。