这个东西涉及的内容较多,根据下面这些文章慢慢学习
一个简单的例子
http://blog.csdn.net/king_on/article/details/7169384
按照文章中的步骤来,打包之后,使用rpm进行安装,在终端输入hello,终端会输出一些信息
此处先摘抄上述作者的文章,后期会结合使用过程进行修改,打包过程如下:
步骤一:准备工作
(1)rpm打包需要特定的目录,创建该目录的命令如下:
mkdir -pv ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
(2)接下来需要对rpm进行配置,命令如下:
echo ~/rpmbuild > ~/.rpmmacros
该命令将"~/rpmbuild"作为rpm打包目录
步骤二:准备程序源代码文件以及spec文件
(1)新建程序源代码文件(文件名为:hello.c)
#includeint main() { printf("Hello, World!\n"); return 0; }
(2)新建.spec文件(文件名为:hello.spec)
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root # 不明白这样定义啥意思 Summary: hello world rpm package Name: hello Version: 0.1 Release: 1 Source: hello-0.1.tar.gz License: GPL Packager: wangdonglei Group: Application %description This is a simple example for rpm package! %prep %setup -q %build gcc -o hello hello.c %install mkdir -p %{buildroot}/usr/local/bin install -m 755 hello %{buildroot}/usr/local/bin/hello %files # 这里的路径是在buildroot虚拟根基础上的,即%{buildroot}/%{name}-%{version}-%{release}-root/usr/local/bin/hello /usr/local/bin/hello
(3)通过下面的命令将程序源代码文件以及.spec文件放入相应位置
# 将hello.c放入目录hello-0.1并打包该目录 tar zcvf hello-0.1.tar.gz hello-0.1 # 将hello-0.1.tar.gz 放入SOURCES下 mv hello-0.1.tar.gz /root/rpmbuild/SOURCES
(4)打包
rpm -ba rpmbuild/SPECS/hello.spec
执行打包命令后,系统运行hello.spec文件的内容,最终生成两个文件,一个包含源码的rpm包和一个二进制rpm包。
rpmbuild/SRPMS/hello-0.1-1.src.rpm
rpmbuild/RPMS/i386/hello-0.1-1.i386.rpm
这个案例虽然是针对C/C++的,但是打包java程序的思路是一样
【未完待续】
============此处贴一些当时看过的相关文章,后面有时间了我再整理当时自己的实现过程===========
一些命令
http://www.worldhello.net/2011/04/02/2405.html
上文提供了一些命令来查看系统默认的打包目录,介绍了如何自定义打包目录等 ,通过这篇文章,对rpm打包的理解会更深入一些
rpm简单介绍
http://blog.chinaunix.net/uid-7530389-id-2050100.html
%install部分使用的是绝对路径,而%file部分使用则是相对路径,虽然其描述的是同一个地方
系统中的一些信息
/
usr
/
lib
/
rpm
/
marcros,通过cat命令查看
简单介绍
http://blog.sina.com.cn/s/blog_5d867af101019b7i.html
明白可通过不同方式构建rpm包,目前只关注从spec文档建包
rpmbuild命令的基本格式:rpmbuild [options] [spec文档|tarball包|源码包]
RPM的一些用法:
查询功能:
1、对系统中已经安装的软件查询:rpm -q softwarename
2、查询系统中已安装的包:rpm -qa [softwarename]
3、查询已安装软件包都安装到何处:rpm -ql softwarename
安装,删除 rpm -ivh softwarename.rpm rpm -e softwarename
其余更多的用法参照man rpm
更多rpm相关命令
http://blog.csdn.net/taiyang1987912/article/details/40145101