rpm 制作实例

首先,确定/etc/rpmrc(也可能是/usr/lib/rpm/rpmrc)已经正确设定。rpmrc文件控制几乎所有RPM的行为。如果你想重载一个或多个全局设置,可以在~/.rpmrc文件中包含你的定制。可以使用rpm--showrc来显示RPM的当前设置。大多数情况下,rpmrc 文件的设置不需要改变。
在/usr/src/packages/SOURCES下新建一个hellow目录,在hellow目录下新建hellow.c Makefile README文件,内容可参考下面:
hellow.c
#i nclude <stdio.h>
int main()
{
  printf("hellow\n");
}
 
Makefile
all:
        gcc hellow.c -o hellow
install:
        cp hellow /bin/hellow
uninstall:
        rm -rf /bin/hellow
clean:
        rm -rf hellow
 
README
run /bin/hellow in shell, you will get a string "hellow"
 
然后在/usr/src/packages/SOURCES下
tar czvf  hellow-0.1-1.tar.gz  hellow
 
搞定后就可以进入rpm包制作的关键步骤了――写一个spec,如果你对spec没有任何了解也不要紧,简单来说,它就是一个rpm包的信息列表和生成指南。
在/usr/src/packages/SPECS下vi 一个hellow-0.1-1.spec,内容可参考下面:
Summary: the First RPM of inode
Name: hellow
Version: 0.1
Release: 1
Vendor: inode
License: Share
Group: Applications/Text
Source0:hellow-0.1-1.tar.gz
#Patch0:hellow-0.1-1.patch
%description
print hello world for you
%prep
tar xzvf $RPM_SOURCE_DIR/hellow-0.1-1.tar.gz -C $RPM_BUILD_DIR/
#%patch -p0
%build
cd $RPM_BUILD_DIR/hellow
make
%install
cd $RPM_BUILD_DIR/hellow
make install
%clean
rm -fr $RPM_BUILD_DIR/hellow
%files
%defattr(-,root,root)
/bin/hellow
%doc $RPM_BUILD_DIR/hellow/README
%changelog
 
完成spec文件后如果不出意外,就可以生成rpm包了,在SPECS目录下rpmbuild –ba hellow-0.1-1.spec顺利的话可以分别在RPMS和SRPMS目录下找到ix86.rpm和src.rpm
 
接下来谈谈patch的问题,在软件发布时,可能存在这样或那样的问题,如在上述hellow-0.1-1.rpm中,程序执行时输出Hellow(有这个词吗!!),笔者开始竟然没有发现,所以就需要做一个patch来纠正这个错误,在SOURCES目录下新建一个hellow1目录,执行以下操作:
cd hellow/
cp Makefile hellow.c README ../hellow1
 
然后修改hellow.c的printf语句:Printf(“Hello,World\n”) ,如果无聊的话,可以顺便改一下README
cd ..
diff –uNr hellow hellow1 > hellow-0.1-1.patch
现在大家回头去看看我的spec文件把Patch0和%patch前面的注释去掉吧,然后再次用rpmbuild生成rpm包,分别用rpm -qpi 和rpm -qpl 看一下吧
rpm –qpi  hellow-0.1-1.i586.rpm
rpm –qpl  hellow-0.1-1.i586.rpm
 
注:以上步骤在SuSE SLES-9 上测试通过,如在RedHat下需修改一些路径,/usr/src/packages/改为/usr/src/redhat/,另外$RPM_SOURCE_DIR,$RPM_BUILD_DIR等定义在/usr/lib/rpm/macros中,不同的linux版本可能名称有些出入。


原文地址:http://zhguiqiang.blog.163.com/blog/static/9993752200610143349284/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值