debian 上从源代码编译的包的路径在哪里?
例如:
git clone git://github.com/lightspark/lightspark.git
cd lightspark
dpkg-buildpackage
[...long output...]
dpkg-buildpackage: full upload; Debian-native package (full source is included)
那么包就编译成功了,但是包(.deb)和源码包在哪里呢?
答案1
生成的二进制文件和源代码包将写入到顶级源目录的上一级目录中。在您的情况下,顶级源目录是lightspark
,因此它将位于上面的目录中lightspark
。然而,通过查看一些广泛的 Debian 打包文档,您可以轻松发现这一点。这Debian 新维护者指南, 例如。
提示。复制源码时,为每个源码包创建一个单独的目录,然后将源码放在子目录中。例如
/usr/local/src/lightspark$ git clone git://github.com/lightspark/lightspark.git
然后生成的 Debian 软件包将位于/usr/local/src/lightspark
.
答案2
如果您不知道在哪里查找有关某些内容的文档,如果您想查看进程正在处理哪些文件,Linux 上有一个非常有用的工具strace
(如果您使用的是 Solaris,则可以以truss
相同的方式使用)它将消息写入 stderr,您可以将其捕获到文件中:
$ strace -f dpkg-buildpackage 2> ../output
然后检查 ../output 文件中是否有以下条目:
[pid 6545] creat("../lightspark_0.7.2-0ubuntu1~ppa1_amd64.deb", 0644) = 3
[pid 6552] creat("../lightspark-common_0.7.2-0ubuntu1~ppa1_amd64.deb", 0644) = 3
[pid 6559] creat("../browser-plugin-lightspark_0.7.2-0ubuntu1~ppa1_amd64.deb", 0644) = 3
[pid 6566] creat("../lightspark-dbg_0.7.2-0ubuntu1~ppa1_amd64.deb", 0644) = 3
显示正在创建的文件。您还可以查找“开放”呼叫:
$ grep "\.deb\"" ../output | grep "open" | grep -v ENOENT
...
[pid 6591] open("../lightspark_0.7.2-0ubuntu1~ppa1_amd64.deb", O_RDONLY) = 3
...