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

Couchdb 如何在.deb包上声明非.deb二进制依赖关系?,couchdb,packaging,apt-get,deb,Couchdb,Packaging,Apt Get,Deb,我正在创建一个.deb包,我已经可以表达我的大部分依赖项了。不幸的是,还有一些依赖项目前没有.deb包(例如wdfs或couchdb,其中.deb文件太落后,并且一个更新版本的文件还不存在),但可以在运行时确定 表达此包依赖关系的最佳方式是什么?pos安装脚本 假设所需缺少的包不在后台端口或其他地方,最好的解决方案是为不存在的包创建Debian包 正如您所期望的那样,kludge将测试postinst文件的configure部分中的包,例如,如果您的postinst是#/bin/bash: RE

我正在创建一个.deb包,我已经可以表达我的大部分依赖项了。不幸的是,还有一些依赖项目前没有.deb包(例如wdfs或couchdb,其中.deb文件太落后,并且一个更新版本的文件还不存在),但可以在运行时确定

表达此包依赖关系的最佳方式是什么?pos安装脚本


假设所需缺少的包不在后台端口或其他地方,最好的解决方案是为不存在的包创建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,则应在自述文件中添加所有必需的非debian软件包,并可能添加带有安装说明的安装文件。

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

这实际上不是编程问题。您可以询问Debian邮件列表中的一个。