web-dev-qa-db-ja.com

debian / controlのバージョン範囲

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に依存しますか?

1
PierreBdR

<<の例でそれを行うことができます:

 libvtk6-dev (>= 6.0.0),  libvtk6-dev (<< 6.2.0)

このようにして、6.0.0〜6.1.0の範囲をロックしました。各パッケージに個別に指定する必要があるのと同じ方法で、この依存関係がこれであるかどうかを尋ねます。

1
Videonauth
  • それでは分解しましょう:

    _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
    _

    読み方:

    1. libvtk6-dev (>= 6.0.0)が必要です
    2. NOT libvtk6-dev (>= 6.2.0) then _libpython2.7-dev_
    3. NOT libvtk6-dev (<< 6.2.0) then _libproj-dev_

おもしろいことに、この方法はエレクトロニクスの [〜#〜] nor [〜#〜] (または [〜#〜] nand [〜#〜] )ロジックに似ています。これらのいずれかがある場合は、そこからすべての論理演算を作成できます。

0
user.dz