如何声明对 .deb 包的非 .deb 二进制依赖?
Posted
技术标签:
【中文标题】如何声明对 .deb 包的非 .deb 二进制依赖?【英文标题】:how do i declare a non .deb binary dependency on a .deb package? 【发布时间】:2010-12-20 10:18:15 【问题描述】:我正在创建一个 .deb 包,我已经到了可以表达大部分依赖项的地步。不幸的是,还有一些依赖项目前没有 .deb 包(例如 wdfs 或 couchdb,其中 .deb 文件太落后,并且尚不存在具有较新版本的文件),但可以在运行时确定。
表达这种包依赖关系的最佳方式是什么? pos 安装脚本?
http://www.debian.org/doc/debian-policy/ch-relationships.html
【问题讨论】:
这不是一个真正的编程问题。您可以询问 Debian 邮件列表之一。 【参考方案1】:正确的解决方案是为缺少的组件创建 .deb 包,也许只是在您的私有存储库中。还有equivs
允许您构建虚拟包,例如以满足有问题的依赖关系,即基本上“我知道我在做什么;只要假设这个包已正确安装”。对于一次性作业,您还可以调用 dpkg
和 --force-depends
以达到相同的结果。
【讨论】:
【参考方案2】:假设所需的缺失包不在后端或其他地方,最好的解决方案是为不存在的包创建 Debian 包。
正如您所料,在 postinst 文件的配置部分测试包,例如,如果您的 postinst 是 #!/bin/bash
:
REQUIREDPACKAGE='python'
REQUIREDVERSION='Python 2.6.6'
if [ -z "$(which $REQUIREDPACKAGE)" -o "$($REQUIREDPACKAGE --version 2>&1)" != "$REQUIREDVERSION" ]; then
echo "$REQUIREDPACKAGE @$REQUIREDVERSION is required"
exit 99;
fi
如果您使用 kludge,则应在 README 中添加所有必需的非 debian 软件包,并可能在 INSTALL 文件中添加安装说明。
【讨论】:
以上是关于如何声明对 .deb 包的非 .deb 二进制依赖?的主要内容,如果未能解决你的问题,请参考以下文章