我为我的 PPA 制作了一个包并上传了它。它构建没有任何问题。
然后我制作了另一个依赖于第一个包的包并上传了它。它失败了,因为它找不到第一个包中的文件。这让我相信第一个包甚至没有安装。
在尝试构建第二个包之前,如何确保第一个包已安装?
第一个包(libjsoncpp)的控制文件:
来源:jsoncpp 优先级:额外 维护者:Nathan Osman 构建依赖:debhelper(>= 7) 标准版本:3.8.3 部分:libs 主页:http://jsoncpp.sf.net 软件包:jsoncpp-dev 部分:libdevel 建筑类型:任意 依赖:libjsoncpp(= ${binary:Version}) 描述:C++ 的 JSON 解析库 jsoncpp 是一个 C++ 库,可以很容易地 读取/写入 JSON 数据。 。 该软件包包含必要的开发工具 创建使用 jsoncpp 的应用程序。 软件包:libjsoncpp 部分:libs 建筑类型:任意 依赖:${shlibs:Depends}、${misc:Depends} 描述:C++ 的 JSON 解析库 jsoncpp 是一个 C++ 库,可以很容易地 读取/写入 JSON 数据。
第二个控制文件(libsopp):
来源:sopp 优先级:额外 维护者:Nathan Osman 构建依赖:debhelper(>= 7) 标准版本:3.8.3 部分:libs 主页:http://stackoverflow.quickmediasolutions.com 软件包:sopp-dev 部分:libdevel 建筑类型:任意 依赖:libsopp(= ${binary:Version})、jsoncpp-dev 描述:用于与 StackExchange 网站交互的 C++ 库。 so++ 是一个 C++ 库,它包装了 StackOverflow 的功能 API。它提供对所有 StackExchange 站点的访问。 。 该软件包包含编写软件所需的开发文件 使用 so++。 软件包:libsopp 部分:libs 建筑类型:任意 依赖:${shlibs:Depends}、${misc:Depends}、libjsoncpp 描述:用于与 StackExchange 网站交互的 C++ 库。 so++ 是一个 C++ 库,它包装了 StackOverflow 的功能 API。它提供对所有 StackExchange 站点的访问。
答案1
你的第二个包(sopp)需要指定它需要第一个包建造;您指定的依赖项(使用Depends:
)将仅处理安装。
Source:
要添加构建依赖项,请将其添加到控制文件的顶部( )部分:
构建依赖:jsoncpp-dev
然后您应该能够从该Depends
行中删除 jsoncpp,因为shlibs:Depends
宏应该可以自行解决这个问题。