解压包含 tar.xz 的源 Debian 软件包

解压包含 tar.xz 的源 Debian 软件包

我已经下载了.tar.gz.dsc.diff.gz巴什来自 Wheezy 的包:https://packages.debian.org/wheezy/bash。然后我运行dpkg-source -xdsc文件来解压,结果如下:

$ ls -l
total 2696
-rw-rw-r-- 1 pgimeno pgimeno 2748840 Dec 30  2012 bash-4.2dfsg.tar.xz
drwxrwxr-x 3 pgimeno pgimeno    4096 Apr  3 23:36 debian

更新:我可以手动提取存档,问题不是这样。请仔细阅读下文。我对一些关键句子进行了强调。

这让我很困惑。我应该怎么做才能获得完全解压的存档应用了 Debian 补丁,这样我就可以处理源代码并生成一个可以构建的修改包?我必须自己拆开包装并手工贴上补丁吗?如果是这样,我应该将其解压到哪个目录?运行后默认tar -xf bash-4.2dfsg.tar.xzbash-4.2,我应该保持这样还是将文件移动到主目录?然后什么?

答案1

记录对源码包做什么的中心位置是debian/rules。它是一个 makefile,一些目标是强制性的或标准化的,包括build,它必须解压和修补任何源存档,以及patch,它应该解压和修补任何源存档。许多包使用帮助脚本,主要是德布帮助者dh_*以及较新的dh前端)和商业银行

wheezy 中的 bash 包使用一些 debhelper 脚本,并且不提供目标patch。它unpack也不提供目标(常见约定),但它确实提供了一些内部使用的目标:

make -f debian/rules bash_src=bash unpack-bash
make -f debian/rules bash_src=bash patch-bash

答案2

valdynirc.oftc.net帮助我找到了一个解决方案,即运行:

debian/rules bash-configure

它做了一些额外的工作并留下了一些不属于源代码的目录,但至少它解压了它并应用了补丁,这样我就可以现在处理修补的源代码了。正如我怀疑的那样,目标目录并不像bash-4.2手动解包那样,而只是bash.

但这感觉像是一个肮脏的黑客行为。我仍在寻找“正确”的解决方案,该解决方案只需让源代码为正常构建做好准备,同时仍然允许我像大多数包一样首先处理它,而不需要进行配置运行。

相关内容