如何通过对 .deb 文件调用“dpkg -i”列出将安装的所有文件(及其未来位置)?源包的哪个 makefile 目标决定了这些(它是默认的“安装”目标吗?)
(问题的第二部分涉及包创建过程。我希望“make install”安装的文件列表和.deb 包安装的文件列表相同)
答案1
你可以通过运行以下命令列出 deb 文件的内容
dpkg-deb --contents package.deb
dpkg-deb
可以显示有关 deb 包的大量信息。您可以通过运行来查看其他选项dpkg-deb --help
。
不幸的是,您无法确定 Makefile 将安装哪些文件。但是,您可以通过设置变量来安装到临时目录中DESTDIR
。请注意,这主要适用于由脚本生成的 Makefile autotools
。./configure
例如:
cd sourcecode-1.2
./configure --prefix=/usr #Just the usual compiling stuff
make
mkdir /tmp/installedfiles #Create a temporary directory for the files
make DESTDIR=/tmp/installedfiles install
最后make
一行将安装 中的文件/tmp/installedfiles
。然后您可以看到将要创建的文件,尽管这些文件和目录都将与 configure 脚本中指定的前缀相关。换句话说,/tmp/installedfiles/bin/mainprogram
将安装为/usr/bin/mainprogram
。
我希望我回答了你的问题:)
答案2
deb 文件是一个存档文件,您可以提取它来查看其内容。
来自维基百科
从 Debian 0.93 开始,deb 文件被实现为 ar 档案。此档案的典型内容为三个文件:
debian-binary:deb 格式版本号。当前Debian 版本为“2.0” 。control.tar.gz:所有包元信息。
data.tar、data.tar.gz、data.tar.bz2、data.tar.lzma 或 data.tar.xz:实际可安装的文件。
debian-binary 文件必须是档案中的第一个条目,否则它将不会被识别为 Debian 包。
因此,当您提取 deb 文件时,您将获得一个数据文件,即 data.tar/data.tar.gz/data.tar.lzma/data.tar.xz。提取此文件,您将获得此 deb 将创建或将文件放入的所有文件/目录。