我最近的工作涉及大量的Debian软件包管理,我正在使用Debian新维护者指南作为我的主要参考文献。
我还没有完全理解
我还查看了《Debian政策手册》中的"8.6.4. The shlibs system"部分,它提供了一些信息来源,但似乎仍然没有详细讲述具体步骤。
我可以深入研究
谢谢!
我还没有完全理解
${shlibs:Depends}
是如何被解析成具体的软件包和版本的。我所指的"如何"是指从变量${shlibs:Depends}
到Depends
字段中的最终软件包列表的详细步骤。
第4章说:
我想我真正感兴趣的是"为每个二进制软件包生成一个ELF可执行文件和共享库列表"的详细步骤,比如使用了哪些信息来源。dh_shlibdeps(1)计算二进制软件包的共享库依赖项。它为每个二进制软件包生成了一个ELF可执行文件和共享库列表。这个列表用于替换${shlibs:Depends}。
我还查看了《Debian政策手册》中的"8.6.4. The shlibs system"部分,它提供了一些信息来源,但似乎仍然没有详细讲述具体步骤。
我可以深入研究
dh_shlibdeps
脚本来弄清楚它是如何实现的,但我不愿意这样做,因为我还没有学习Perl,所以我想知道是否有其他我不知道的参考资料已经涵盖了这个问题。如果没有这样的参考资料,我肯定会阅读代码。谢谢!
${shlibs:Depends}
似乎是由dpkg-shlibdeps
(或dh_shlibdeps
)使用文件debian/shlibs.local
来解析的(参见这里),其格式由deb-shlibs(5)
定义。换句话说,如果一个Debian软件包没有debian/shlibs.local
,${shlibs:Depends}
可能会被解析为空列表。(“提示”意味着上面的信息可能有助于找出详细的过程,但我还没有验证我上面所说的。) - yaobin