我已经编写了一个应用程序,现在我想创建一个 Debian 软件包并设置一个 PPA。该应用程序主要用 XSLT 编写,并包含一个非常精简的前端,可以用任何可以访问 XSLT 处理器的语言编写。我目前有使用 JavaScript(能够在浏览器客户端中运行,也可以从 Rhino 下的命令行运行)和 Python 编写的前端。我还想完全用 bash 编写一个前端,并简单地使用 apt 中提供的命令行 XSLT 处理器之一。
apt 提供了多种可用的客户端,包括 xsltproc、xalan 和 4suite 的 xslt 处理器。我希望让 bash 前端更灵活,这样它就可以使用任何这些命令行客户端,并且只需使用可用的客户端即可。
我怎样才能根据 Debian 的软件包依赖系统最好地表达我的软件包和这三个其他软件包之间的关系,这是一种逻辑上的分离(或关系)?
我的软件包依赖于xsltproc
OR 4suite
OR xalan
。理想情况下,安装我的软件包时,应提示用户选择这三个软件包中的任意一个作为依赖项进行安装;如果安装我的软件包时系统中已安装其中一个软件包,则不应再安装其他依赖项。Debian 软件包可以实现这样的功能吗?
答案1
或关系可以像 debian/control 中二进制包的 Depends: 字段那样表示xsltproc | 4suit | xalan
。当系统中当前没有包时,将优先使用列表中的第一个包。
有关详细信息,请参阅http://www.debian.org/doc/debian-policy/ch-relationships.html