launchpad.net:同一个大型项目中的多个依赖项......?

时间:2013-12-02 16:57:38

标签: linux ubuntu debian deb launchpad

我有一个大项目,其中包含主二进制文件所依赖的许多库。我想知道在启动板中处理这个的正确方法是什么,所以我可以构建库,然后是主二进制文件,并在每个ppa上提供每个debian pacakge。

您可以在lp:snapcpp(https://code.launchpad.net/snapcpp/)查看相关项目。在snacpp中,我们有“snapwebsites”,这是一个C ++ CMS系统,通过我们的库“libQtCassandra”连接到Cassandra数据库。 “snapwebsites”依赖于libQtCassandra,就像libltd和其他人一样。这些库中的每一个都需要是独立的debian软件包。每个项目都有自己的“debian”文件夹,但目前没有root debian文件夹。

如何让它在启动板上运行,这需要一个root debian文件夹?我是否需要在根目录下构建一个debian项目,列出每个依赖项?如果没有,我是否需要使用bzr将每个项目拆分为自己的分支?如果我执行后者,我如何调用构建的依赖性debs(换句话说,如何告诉snapwebsites的配方需要安装libQtCassandra及其依赖包)?

谢谢!

1 个答案:

答案 0 :(得分:1)

我自己发现的解决方案是使用配方命令“nest-part”,它允许您从bzr分支中取出一个文件夹并将其映射到您的项目中。但是,它不能映射到分支的根目录。

我所做的是创建一个只包含打包信息的分支,以及一个包含“add_subdirectory(src)”的CMakeLists.txt文件。然后我从主代码分支(lp:snapcpp)映射,但只有相关项目。例如,以下是snapcpp中“controlled_vars”项目的配方:

# bzr-builder format 0.3 deb-version {debupstream}+{revno}
lp:~snapcpp/snapcpp/controlled_vars
nest-part src lp:snapcpp controlled_vars src

每个子项目都需要有一个包装信息分支,但这是一次性设置问题。