[quote:bf160262ca="casper"]现在再用llc的spec建包成功了,而且可以卸载,以前我把%file里的内容注释了以后,能安装,但是卸载了以后,helloworld还是在。不过用llc的spec文件建包卸载的时候还是有什么东西没有卸干净,因为我卸载了以后,再运行,提示的是“bash: /usr/local/bin/helloworld: 没有那个文件或目录”,而不是“bash: dfw: command not found”,这个建包的相对路径和绝对路径真是很迷糊人,不知道%install里面那个路径和%file里的路径是否相同,也是相对于buidroot的路径,我现在还在努力学习中,就是spec的文件太少,再问几个问题:
1查看包里的文件用什么命令?我用rpm -l helloworld-1.0-1.i386.rpm 好象没有用
2.install都有什么参数,执行了什么命令?
3.看到别的spec里的$RPM_BUILD_ROOT,这种东西是指的什么
这种拷贝单个文件的包比较麻烦,我觉得要是作者写好了makefile的比较好一点,就是%file的东西不太好写,都有利有弊呀
最后,非常感谢大家的热情帮助:)[/quote]
按你原来的spec注销了%file段的helloworld,那么build出来的rpm包里就不包含hellworld,但build的过程中,由于spec里%install段的作用将helloworld安装到/usr/local/bin下,因此你安装了自己build好的rpm包再卸载,也没有删除/usr/local/bin/helloworld,也就是helloworld还在;不过奇怪的是,用我上面贴出的spec建好的包包括了/usr/local/bin/helloworld,卸载后helloworld应该是被卸载才对,你说的"bash: /usr/local/bin/helloworld: 没有那个文件或目录"想不通是什么回事,除非你先前在/usr/bin下建立过helloworld的链接
$RPM_BUILD_ROOT等于BuildRoot的定义