|
|
1、非正式(SVN、git、cvs等)发布包:
这类包最大的问题就是起版本的标识以及命名。
对于版本标识,建议直接用SVN版本号作为pkgver。
对于命名,建议采用“软件名-svn”的方式。
为了解决对应的正式发布包的兼容性问题,以及其他依赖于这个包的软件的非正式发布包的依赖关系。我们建议
1)、加上provides=('软件包=最近的正式发布版本号' '软件包-svn=SVN版本号').
2)、对于依赖非正式发布版本的软件包,我们可以在依赖关系中使用depends=('软件包-svn>SVN版本号')来解决依赖关系。而对于可以依赖正式版本,也可以依赖非正式发布版本的情况,建议优先采用依赖正式发布版depends=('软件包>版本号')
2、软件官方版本号不规则:
在我们的包管理系统中,版本号是由小数点隔开大多组数字组成的。但是有些软件作者常常会采用一些字母(比如xxxrc、xxxalpha)甚至是连字符“-”。对于字母大情况,我们原样保留,对于连字符,需要替换成下划线“_”
然后在此后引用该版本号的时候,使用${pkgver//_/-}来取代${pkgver},即可自动替换为连字符,同时也规范了pkgver的编写
3、进入build函数后,makepkg会自动当前目录切换到src所在的目录,所以不用另加一个cd ${srcdir}
4、可以适当使用系统内置变量(比如PKGBUILD所在目录$startdir、源代码解压缩到的目录$srcdir、编译安装的目标目录(最后打包成软件包的目录)$pkgdir),但不推荐自己定义变量。
5、所有在source组中指定的源文件将会自动复制、链接到$srcdir,如果是压缩文件会自动解压缩到这里,不用做解压的工作。
6、建议在每步操作后面加上“ || return 1”来检查该操作是否正确完成
7、(扯淡,哈哈)软件包描述建议采用中文,软件包名在有官方和民间公认的情况下也可以采用中文,比如Firefox可以用“火狐”
8、如果你需要在软件包卸载的时候备份位于/etc的配置文件,可以在backup=('备份文件名1' '文件名2'),这些文件将会自动重命名为某某某.pacsave |
|