如何将带有依赖关系的软件包上传到我的PPA?

我为我的PPA制作了一个软件包并上传了它。它顺利构建,没有任何问题。
然后我制作了另一个依赖于第一个软件包的软件包,并上传了它。但是它失败了,因为找不到第一个软件包中的文件。这让我相信第一个软件包甚至没有被安装。
我应该如何确保在构建第二个软件包之前先安装第一个软件包呢?
第一个软件包(libjsoncpp)的控制文件:
源码:jsoncpp
优先级:额外
维护者:Nathan Osman
构建依赖:debhelper(>= 7)
标准版本:3.8.3
部分:库
主页:http://jsoncpp.sf.net
软件包:jsoncpp-dev 部分:开发库 架构:任意 依赖:libjsoncpp (= ${binary:Version}) 描述:用于C++的JSON解析库 jsoncpp是一个简化读取/写入JSON数据的C++库。 . 此软件包包含创建使用jsoncpp的应用程序所需的开发工具。
软件包:libjsoncpp 部分:库 架构:任意 依赖:${shlibs:Depends}, ${misc:Depends} 描述:用于C++的JSON解析库 jsoncpp是一个简化读取/写入JSON数据的C++库。
第二个控制文件(libsopp):
源码:sopp
优先级:extra
维护者: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网站的访问。

这两个软件包都在同一个PPA中吗? - Jeremy Kerr
@Jeremy: 是的,他们是。 - Nathan Osman
第二个软件包需要第一个软件包来构建吗?(即它使用的库的 a *-dev 软件包) - txwikinger
@txwikinger:是的,需要看控制文件吗? - Nathan Osman
@txwikinger:没事了。我已经添加了它们。 - Nathan Osman
1个回答

你的第二个软件包(sopp)需要指定它需要第一个软件包来构建;你已经使用Depends:指定了依赖关系,但这只能处理安装问题。
要添加一个构建依赖项,请将以下内容添加到控制文件的顶部(Source:部分):
Build-Depends: jsoncpp-dev
然后你应该可以从Depends行中删除jsoncpp,因为shlibs:Depends宏应该会自动解决这个问题。