debian/control
で依存関係を宣言してパッケージを作成する場合、バージョンの下限または上限を指定できます。たとえば、libvtk6-dev
が少なくともバージョン6.0.0
であることに依存している場合、Depends
行に次のように記述できます。
libvtk6-dev (>= 6.0.0)
しかし、範囲を指定することは可能ですか?たとえば、パッケージのバージョン6.0または6.1に依存しているが、6.2または5.9に依存していない場合、どのように指定しますか?
より複雑な例は、パッケージの依存関係がバージョンに応じて変化する場合です。たとえば、libvtk6-dev
には依存関係がありませんが、これはインストールされているパッケージのバージョンによって異なります。 libvtk6-dev
がバージョン6.0または6.1の場合はlibpython2.7-dev
にも依存し、バージョンが6.2以上の場合はlibproj-dev
に依存しますか?
<<
の例でそれを行うことができます:
libvtk6-dev (>= 6.0.0), libvtk6-dev (<< 6.2.0)
このようにして、6.0.0〜6.1.0の範囲をロックしました。各パッケージに個別に指定する必要があるのと同じ方法で、この依存関係がこれであるかどうかを尋ねます。
それでは分解しましょう:
_libvtk6-dev (>= 6.0.0), libvtk6-dev (<< 6.2.0), libpython2.7-dev
_
OR(論理演算)
_libvtk6-dev (>= 6.2.0), libproj-dev
_
_,
_の_Depends:
_は、AND(論理演算)に似ています。 _|
_はOR(論理演算)ですが、同じ順序/フォームでブラケットを直接結合する優先順位が同じではありません。
ここに私が来ることができるもの:
_libvtk6-dev (>= 6.0.0), libvtk6-dev (>= 6.2.0) | libpython2.7-dev, libvtk6-dev (<< 6.2.0) | libproj-dev
_
読み方:
libvtk6-dev (>= 6.0.0)
が必要ですlibvtk6-dev (>= 6.2.0)
then _libpython2.7-dev
_libvtk6-dev (<< 6.2.0)
then _libproj-dev
_おもしろいことに、この方法はエレクトロニクスの [〜#〜] nor [〜#〜] (または [〜#〜] nand [〜#〜] )ロジックに似ています。これらのいずれかがある場合は、そこからすべての論理演算を作成できます。