Ubuntu

如何向 debian 包添加多個依賴項?

  • February 28, 2021

下面是使用連結創建 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’:是一個目錄

在語法上, the;不是正確的分隔符,而是,. 因此,它被視為包名稱的一部分。從聲明包之間的關係,重點是我的:

這些欄位都有統一的語法。它們是用逗號分隔的包名稱列表。

在聲明對其他包的依賴關係的包的 Depends、  Recommends、  Suggests、  Pre-Depends、  和 控製欄位中Build-Depends,  列出的包名稱還可能包括替代包名稱列表,由豎線(管道)符號分隔 。在這種情況下,任何一個替代包都可以滿足這部分依賴關係。Build-Depends-Indep``Build-Depends-Arch``|

他們還舉了例子:

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

看看控製文件的語法也很好。

引用自:https://serverfault.com/questions/1055356