QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: casper

制作包的问题

[复制链接]
发表于 2004-5-25 15:56:50 | 显示全部楼层
rpm -qpl helloworld-1.0-1.i386.rpm
回复

使用道具 举报

发表于 2004-5-27 00:31:35 | 显示全部楼层
[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的定义
回复

使用道具 举报

发表于 2005-4-14 13:30:47 | 显示全部楼层
培训大纲在那里?我在用rpm打包前必须用automake 编译吗?我已经有可以运行的二进制文件了,但不是用automakezuo编译的所以没有configure 文件等,只有自己的二进制文件,该怎么进行呢?
回复

使用道具 举报

发表于 2005-4-18 14:03:15 | 显示全部楼层
[quote:aab9303f0b="softspider"]培训大纲在那里?我在用rpm打包前必须用automake 编译吗?我已经有可以运行的二进制文件了,但不是用automakezuo编译的所以没有configure 文件等,只有自己的二进制文件,该怎么进行呢?[/quote]又有人考古了。一年多前的帖子都有人翻出来?我写的 rpm 建包原理你看了没有?

对于现成的二进制文件,只需要保留 spec 文件里的 %install 段,手工用 install 命令完成安装过程。不过这样的东西打包还有什么意义!

automake 只在非常罕见的情况下使用,通常还要配合使用 autoconf 和 aclocal。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-4-20 16:10 , Processed in 0.137249 second(s), 12 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表