最近自己写了一个c的程序,并且写好了Makefile文件,老大说要用rpm,就研究了一下rpm打包。这里记一下,以便以后用
具体的过程就不说了,基本上就是参照这边ibm的文档来的。
说说问题。
首先是spec文件。里面的files字段,我已开始都没有理解,原来这个字段就是rpm包安装完成之后,安装目录下的文件和文件夹,所以要把要安装的文件给写全了。
然后是执行文档中说的rpm -ba filename.spec的时候,报错rpm没有ba参数。后来查了查,发现可能是文档写错了,应该是rpmbuild -ba filename.spce
之后就是生成rpm包的时候老是报错find: invalid predicate `'
上网查了一下,解决方案在这里:。我因为没有在相应的sh文件中找到有非法的字符。所以就用了第二种方法。
接下来,打包正常。然后从/usr/src/redhat/RPMS/i386/和/usr/src/redhat/SRPMS/中分别把相应的rpm包拿出来,放到了测试机上。在测试机上执行rpm -ivh命令,显示执行了100%,可是在相应的目录里发现,程序并不存在,即没有安装成功。然后我又rpm -qa | grep xxx也验证了,此rpm包没有安装成功。对此我纠结了好久,最后发现原来我跑的是src的rpm包,而不是i386的rpm,傻x了。
之后再次运行i386的rpm包,发现正常安装了。
阅读(1461) | 评论(0) | 转发(0) |