2

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

表达这种包依赖性的最佳方式是什么?pos安装脚本?

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

4

2 回答 2

2

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

于 2011-09-08T10:19:21.720 回答
1

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

正如您所料,kludge 用于测试 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 文件中添加安装说明。

于 2011-03-02T02:50:30.583 回答