Next: , Previous: , Up: 打包指导   [Contents][Index]


22.8.2 软件包命名

一个软件包事实上有两个名字:第一个是Scheme变量的名字,即用define-public定义的名字。通过这个名字,软件包可以被Scheme代码找到,如用作其它软件包的输入。第二个名字是软件包定义里的name属性的字符串值。这个名字用于软件包管理命令,如:guix packageguix build

两个名字通常是相同的,常是上游项目名字转成小写字母并把下划线替换成连字符的结果。比如,GNUnet转成gnunet,SDL_net转成sdl-net

这条规则有一个值得注意的例外,那就是当工程名只有一个字符,或与它同名的一个旧工程已经存在——不论是否已经被打为 Guix 包。你应该动用常识来让这些名字无歧义且有意义。比如说,上游称为 “s” 的 shell 程序在 Guix 中称为 s-shell不是 s。你可以随便问问你的黑客伙计们来获得一些启发。

我们不给库软件包添加lib前缀,除非它是项目官方名字的一部分。但是see Python模块Perl模块有关于Python和Perl语言的特殊规则。

字体软件包的名字处理起来不同,see 字体.