rpm 制作实例
2012-09-18 16:41
330 查看
首先,确定/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/
在/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/
相关文章推荐
- 制作PHP的RPM包实例
- 简单制作RPM二进包实例(转)
- 以一个实例说明在AIX上RPM包的制作过程
- 制作PHP的RPM包详解及实例
- rpm制作实例 简单打包
- rpm制作实例 简单打包
- NSIS制作安装包实例
- 非常经典的asp.net验证码制作实例代码详解
- rpm包制作
- 实例一 LINUX OS 简单制作 JAVA WEB + TOMCAT7.0 RPM 安装包
- linux 下制作rpm 软件包工具
- CSS3实例教程:CSS3制作玻璃瓶里的水母
- linux下用latex中的beamer制作slides的实例
- CSS制作网页布局实例:隐藏input文字
- RPM包制作时注意的地方
- DTCMS插件的制作实例电子资源管理(一)插件目录结构
- 名片制作:25款现代名片设计实例及模板
- 【php增删改查实例】第二十六节 - 个人详情页制作
- 一堂课玩转rpm包的制作
- 制作RPM包