如何创建具有不相交/替代依赖项的 Debian 软件包?

jbe*_*rd4 5 packaging deb

我已经编写了一个应用程序,现在我对创建 Debian 软件包和设置 PPA 感兴趣。该应用程序主要是用 XSLT 编写的,包括一个非常瘦的前端,可以用任何可以访问 XSLT 处理器的语言编写。我目前有用 JavaScript(能够在浏览器客户端中运行,并从 Rhino 下的命令行)和 Python 编写的前端。我还想完全用 bash 编写前端,并且只需使用 apt 中可用的命令行 XSLT 处理器之一。

有几个可以通过 apt 获得,包括 xsltproc、xalan 和 4suite 的 xslt 处理器。我想让 bash 前端变得灵活,以便它能够使用这些命令行客户端中的任何一个,并且只使用可用的任何一个。

我怎样才能最好地根据 Debian 的软件包依赖系统来表达我的软件包与这三个其他软件包之间的关系,即逻辑分离(OR 关系)?

我的包依赖xsltprocOR 4suiteOR xalan。理想情况下,当我的包安装时,应该提示用户选择这三个包中的任何一个作为依赖项安装;如果安装我的软件包时系统上已经安装了这些软件包之一,则不应安装其他依赖项。Debian 软件包可以实现这样的事情吗?

ajm*_*tch 10

OR 关系可以像xsltproc | 4suit | xalan在 debian/control 中的二进制包的 Depends: 字段中一样表达。当系统上当前没有任何包时,将优先选择列表中的第一个包。

有关更多详细信息,请参阅http://www.debian.org/doc/debian-policy/ch-relationships.html