QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3989|回复: 17

请高手指点一下rpmbuild的用法

[复制链接]
发表于 2002-11-19 16:33:26 | 显示全部楼层 |阅读模式
对于redhat 来说其发行版的rpm包都是针对所有类型的x86系统(i386),从稳定的角度来说,是很应该的,但速度得不到保障。我知道有个命令rpmbuild可以重新编译包,但不太清楚怎么用,我想至少应该能够按照优化的编译方式编译出i686的包。把包全部重新编译,然后update,我想redhat 不比gentoo慢多少。
迫切希望解决。谢谢
发表于 2002-11-19 16:50:09 | 显示全部楼层
我只知道rpmbuild -rebuild xxx.src.rpm和rpmbuild -bb xxx.spec
回复

使用道具 举报

 楼主| 发表于 2002-11-19 16:55:01 | 显示全部楼层

怎么修改配置文件

好像/usr/lib/rpm/rpmrc配置文件,中间有很多选项,不太明白,但看起来好像可能达到定制编译的目的,所以才请高手指点,让越来越严密包装的redhat也能享受diy 的乐趣,希望能有人指点。要不redhat 像一块大蛋糕,太甜有点腻。
回复

使用道具 举报

发表于 2002-11-19 17:19:31 | 显示全部楼层
找到了,见贴图的地方:我的系统是rh8.0,cpu是塞扬2 1G,也就是i686的,编辑/usr/lib/rpm/rpmrc,将图中地方的i686:i386改成i686:i686就可以了,如果你是athlon的cpu,也得改动相应的地方为i686吧;如果你的是i586的,那就改成i586好了,千万别乱改;然后用rpmbuild --showrc就可以看见所有的优化选项为i686了,而且,rebuild出的rpm包也放在i686目录下,当然,后缀也变成了i686的类型
你找到光盘上的src.rpm,重新一个个rebuild吧,我曾rebuild过xfree86,用了2个小时多

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

发表于 2002-11-19 17:36:11 | 显示全部楼层
原来 rh 7.3 的 rpm 4.0 可以 rpm --recompile[rebuild] filr.src.rpm。

现在 rh 8.0 的 rpm 4.1 则必须 rpmbuild --recompile[rebuild] filr.src.rpm
回复

使用道具 举报

发表于 2002-11-19 17:40:23 | 显示全部楼层
其实 假若有优化的选项的,也是在 ./configure 里面。这不是 rpm 所解决。

后缀名为 .i686.rpm 则是表示 在 ./configure 里指定了为 i686 优化。

后缀名也可在 spec 里面修改,或者你 直接修改 其后缀名 ?
回复

使用道具 举报

发表于 2002-11-19 18:45:07 | 显示全部楼层
你自己rebuild几个src.rpm不就知道了,拿你的mplayer的src.rpm试试,看按上面改动后生成的rpm的后缀是什么
回复

使用道具 举报

发表于 2002-11-20 07:48:09 | 显示全部楼层
我试一试,直接修改 spec 文件。
回复

使用道具 举报

 楼主| 发表于 2002-11-20 08:18:30 | 显示全部楼层

感谢耐心查找

我看了那一文件,以及整个目录,发现里面大量的脚本文件,来作为编译的选项的配置.不知道那位大侠能破解,我想这一定是优化redhat的关键问题,应该是大家共通关心的问题,为了FREE和SPEED
回复

使用道具 举报

发表于 2002-11-20 08:50:16 | 显示全部楼层
export  RPM_OPT_FLAGS="-O2 -march=i686 -mcpu=i686" (可能不需要)


rpmbuild -ba --target=i686 mplayer.spec

...

gcc -c -O4 -march=i686 -mcpu=i686 -pipe -ffast-math -fomit-frame-pointer -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -I. -Inative -I.. -I../libmpdemux -I../loader -I-I/usr/include -I/usr/include/dvdnav -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include -o vd_xanim.o vd_xanim.c
gcc -c -O4 -march=i686 -mcpu=i686 -pipe -ffast-math -fomit-frame-pointer -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -I. -Inative -I.. -I../libmpdemux -I../loader -I-I/usr/include -I/usr/include/dvdnav -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include -o vd_xvid.o vd_xvid.c
gcc -c -O4 -march=i686 -mcpu=i686 -pipe -ffast-math -fomit-frame-pointer -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -I. -Inative -I.. -I../libmpdemux -I../loader -I-I/usr/include -I/usr/include/dvdnav -I/usr/include/gtk-1.2 -I/usr/include/glib-1.2 -I/usr/lib/glib/include -I/usr/X11R6/include -o vd_libdv.o vd_libdv.c

『说明 configure 指定 i686 选项,rpm 只是提供参数给它罢了 !』
....

Requires: libdvdread gtk+ SDL divx4linux lame libvorbis alsa-lib aalib lirc libdv arts
Checking for unpackaged file(s): /usr/lib/rpm/check-files /var/tmp/mplayer-root
Wrote: /usr/src/redhat/SRPMS/mplayer-0.90pre10-gugong.src.rpm
Wrote: /usr/src/redhat/RPMS/i686/mplayer-0.90pre10-gugong.i686.rpm
Executing(%clean): /bin/sh -e /var/tmp/


OK ! i686.rpm 的包生成了。

我再认真作一遍,然后形成一个更好的 rpm 包 ,提供给大家 !
回复

使用道具 举报

发表于 2002-11-20 09:18:21 | 显示全部楼层
2002年11月20日上午09时15分09秒[root@gugonghcs tmp]# g 86 *
rpm-tmp.13206:  RPM_OPT_FLAGS="-O2 -march=i686"
rpm-tmp.13206:  RPM_ARCH="i386"
rpm-tmp.13206:  --target=i686-redhat-linux-gnu \

rpm-tmp.21876:  RPM_OPT_FLAGS="-O2 -march=i386 -mcpu=i686"
rpm-tmp.21876:  RPM_ARCH="i386"
rpm-tmp.21876:  --target=i386-redhat-linux-gnu \

上面是  rpmbuild -ba --target=i686 mplayer.spec
下面是  rpmbuild -ba mplayer.spec

RPM_ARCH="i386" 则表示 不管是 AMD、INTEL 奔腾「或者更低」系列、VIA 的 CPU,都是 i386 架构。
回复

使用道具 举报

发表于 2002-11-20 10:16:53 | 显示全部楼层
OK ! 完成。

http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&p=22864#22864
回复

使用道具 举报

 楼主| 发表于 2002-11-20 11:17:23 | 显示全部楼层

看来我的贴有效果了

不了解的东西仍然很多,但至少多知道了一点。高兴
回复

使用道具 举报

发表于 2002-11-20 12:45:02 | 显示全部楼层
我觉得还是修改rpmrc好,那样就默认是i686优化了,不需每次rebuild都要改动spec或./configure或自己指定参数
回复

使用道具 举报

 楼主| 发表于 2002-11-20 14:14:50 | 显示全部楼层
人的精力是有限的,所以你需要选择。在你选择发行版的时候需要考虑的东西很多,例如:可用性、稳定性、可定制性、兼容性等等问题。我现在使用REDHAT,其他方面都没问题,就是可定制性上,越来越差。所以就想通过学习RPM与RPMBUILD来提高REDHAT在速度上的可定制性,和软件包的可定制性。我想DEBIAN是想要什么就装什么。REDHAT 是想不要什么就删什么。看来也只能这样了。
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-15 06:48 , Processed in 0.108306 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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