我如何在.deb包上声明非.deb二进制依赖?

时间:2010-12-20 10:18:15

标签: couchdb packaging apt-get deb

我正在创建一个.deb包,我已经到了可以表达我的大多数依赖项的地步。遗憾的是,还有一些依赖项,目前没有.deb包(例如wdfs,或者.db文件太落后了,而且还有一个较新版本的版本尚未存在),但可以在运行时确定。 / p>

表达此包依赖项的最佳方法是什么? pos安装脚本?

http://www.debian.org/doc/debian-policy/ch-relationships.html

2 个答案:

答案 0 :(得分:2)

正确的解决方案是为缺少的组件创建.deb包,可能只是在您的私有存储库中。还有equivs允许您构建虚拟包,例如以满足有问题的依赖关系,即基本上“我知道我在做什么;只是假设这个包正确安装”。对于一次性工作,您还可以使用dpkg调用--force-depends以获得相同的结果。

答案 1 :(得分:1)

假设所需的缺失软件包不在后端或其他地方,最好的解决方案是为尚不存在的软件包创建Debian软件包。

kludge,如您所料,用于测试postinst文件的configure部分中的包,例如,如果您的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文件。