RPM包rpmbuild SPEC文件深度说明(3)


rpm xxx.rpm --relocate=/usr=/opt/usr --relocate=/etc=/usr/etc
3、制作补丁
详细看参考: [原]使用diff同patch工具 

4、如何编写%file段
由于必须在%file中包括所有套件中的文件,所以,我们需要清楚编译完的套件到底包括那些文件?
常见的做法是,人工模拟一次编译的过程:


./configrue --prefix=/usr/local/xxx
make
make DESTDIR=/usr/local/xxx install

make prefix=/usr/local/xxx install
这样,整个套件的内容就会被放到/usr/local/xxx中,可根据情况编写%file和%exclude段。
※当然,这���只能对源码按GNU方式编写,并使用GNU autotool创建的包有效,若自定义Makefile则不能一概而论。
5、关于rpm中的执行脚本
如果正在制作的rpm包是准备作为放到系统安装光盘中的话,则需要考虑rpm中定义的脚本是否有问题。由于系统在安装的时候只是依赖于一个小环境进行,而该环境与实际安装完的环境有很大的区别,所以,大部分的脚本在该安装环境中都是无法生效,甚至会带来麻烦的。
所以,对于这样的,需要放到安装光盘中的套件,不加入执行脚本是较佳的方法。
另外,为提供操作中可参考的信息,rpm还提供了一种信号机制:不同的操作会返回不同的信息,并放到默认变量$1中。


引用0代表卸载、1代表安装、2代表升级
可这样使用:


引用%postun
if [ "$1" = "0" ]; then
/sbin/ldconfig
fi

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/18658.html