在 Debian 归档文件中,软件包名称和版本字符串通常用下划线分隔,例如foo-bar_1.2.3.tar.gz
。另一方面,存档中的顶级目录有一个连字符而不是下划线,例如foo-bar-1.2.3
。这是什么原因?这个约定在哪里描述?
答案1
这对于构成 Debian 源代码包的 和其他文件的名称.tar.gz
统一非常有帮助,因为它们最终以固定的结构安装在镜像站点上。这里,使用下划线是为了消除歧义:包名称和版本中都允许使用连字符,因此如果连字符也用作分隔符,那么就不清楚哪个是哪个。命名(非规范地)在Debian 政策手册附录,尽管该附录中有关哪些文件构成源包一部分的一些详细信息已过时,并且dpkg 源(1)那里有更好的参考。
我不记得曾经看到过为什么dpkg-source
将源包解压到<package>-<upstream_version>
而不是到的明确原因,尽管我最好的猜测是这只是因为这是上游维护者分发的 tarball 在编写<package>_<upstream_version>
时如何解压的通常约定(dpkg-source
并且在很大程度上仍然如此),所以这让事情看起来最不令人惊讶。