lintian是一个Debian包检查工具。它可以用来检查二进制和源代码包,使之符合Debian政策以及发现其他常见的打包错误。
lintian使用存档目录,名为laboratory,它能够保存所检查包的信息。
将包集成进入版本的时候,上游对包的检查非常严格,无论是命名还是源码包中规则文件的使用。
在保证deb功能正确性的同时,如何能够确定打包的正确性?
有人可能会说,能够生成deb包,正确安装使用就可以啦。其实这是最最基本的要求。
自己在本地测试、使用,如果命名不规范,不会影响到其他人,没有关系。但是要将包做进版本,供大家使用,就不可以随便的命名,就要遵守一定的规范。
没有规矩不能方圆,在这里道理也是如此。
经历过一番折腾后,我深深的认识到规范的重要性。
当我的包要进入版本的时候,传给上游进行审核,反馈了很多问题。
看到反馈的diff文件,我才意识到自己做事情是多么的粗心大意~~~
不是这里忘了修改,就是哪里不符合规则,看着这些意见,羞愧难当。。。
现总结如下:
1、无论是修改还是开发一个新的debian包,首先需要注意的是包的命名,版本号(这其中有很多学问哦~~~我还不是很清楚。。。)
2、编包。新下载的包,首先要编译,看看此包是否能够正常编译。这就涉及到编译命令,刚刚开始打包的使用,使用的是dpkg-buildpackage -rfakeroot -b
生成一个deb包很容易,本地安装测试没有问题。当集成进版本的时候,上游使用的是自己的命令(debuild/sbuild)进行编译,我的包就出问题了。
反馈的时候,人家非常热情的建议我们在本地使用debuild/sbuild进行编译,目的就是要统一,便于发现问题。而且使用debuild命令的好处是能够进行包的规范
性检查(使用lintian),发现潜在的问题。这样生成的包无论功能如何,至少是规范化的。
3、不要默守成规,认为上游包都是对的。其实大家都在尝试,比方说debian源码包中的control文件,包含了一些字段。因为我懂的不多,所以把上游的版本当成了标准,认为都是对的,有些字段也不知道是做什么的,在报错的时候不知道如何处理。经过一番折腾之后,知道有些可以去掉,比如Breaks,Replaces(可能需要的时候自然会用到吧~~),有些可以修改。但有些文件格式要求很严格,比如copyright。所以要灵活运用。
4、上传包要简洁。使用bzr将源代码上传到lp上时,要保证源码包的简洁性。将一些中间文件去掉,这样便于大家浏览。养成这个习惯是很重要的。
5、有想法的时候就要勇于尝试,开始遇到问题的时候我自己有想过,没有验证就急于问别人。别人试验一番找到问题的时候,证实了自己想法。与其这样,又何必麻烦别人呢~~~