如何向 Debian 包添加多个依赖项?

如何向 Debian 包添加多个依赖项?

下面是使用创建 Debian 软件包时的工作控制文件关联。我保留了一个依赖项并且它正在创建 deb 文件。

Package: my-program
Version: 1.0
Architecture: all
Essential: no
Priority: optional
Depends: default-jdk
Maintainer: Your Name
Description: A short desc

但如果我保留多个依赖项,就会出现错误。我保留的依赖项不是实际的,只是为了测试。

Package: my-program
Version: 1.0
Architecture: all
Essential: no
Priority: optional
Depends: default-jdk;net-tools
Maintainer: Your Name
Description: A short desc

dpkg-deb --build my-program_version_architecture/ dpkg-deb: 错误: 解析文件“my-program_version_architecture//DEBIAN/control”第 6 行附近软件包“my-program”:“Depends”字段,软件包名称“default-jdk;net-tools”无效:不允许使用字符“;”(只能使用字母、数字和字符“-+._”)

即使对于使用单一依赖项创建的 deb 文件,当我尝试安装时,对于我保存在 DEBIAN 文件夹中用于安装的文件夹,我也收到如下错误。

dpkg:错误处理存档 /home/azureuser/my-program_version_architecture.deb (--unpack):无法打开文件“/var/lib/dpkg/tmp.ci//testing”:是一个目录

答案1

从语法上讲,;不是正确的分隔符,而是,。因此,它被视为包名称的一部分。从声明包之间的关系,重点是我的:

这些字段都有统一的语法。它们是包名称的列表被逗号隔开

在 包的Depends、  Recommends、  Suggests、 和 控制字段 中  ,声明了对其他包的依赖关系,列出的包名称可能还包括备选包名称列表,以竖线(管道)符号 分隔 Pre-Depends。 在这种情况下,依赖关系的这一部分可以由任何一个备选包来满足。Build-DependsBuild-Depends-IndepBuild-Depends-Arch|

他们还举例说明:

Package: mutt 
Version: 1.3.17-1 
Depends: libc6 (>= 2.2.1), default-mta | mail-transport-agent

看看控制文件的语法

相关内容