RPM打包
一.Rpm-build 安装
1. $sudoyum install rpm-build
2. $sudoyum install fedora-rpmdevtools 执行完后,就会在HOME目录下生成rpmbuild目录,在 rpmbuild 目录底下又有 BUILD RPMS SOURCES SPECS SRPMS
五个子 目录也可以自己手动创建这五个目录:
mkdir -p~/{BUILD,RPMS,S{OURCE,PEC,RPM}S}
这些目录的作用如下
BUILD 编译时所用的暂存目录
RPMS 放置打包好的套件
SOURCES 放置套件的原始码及修补档等等
SPECS 放置 .spec 档 SRPMS 放置 Source RPMS (.src.rpm)
(我这里系统:CentOS Linux release 7.0.1406 (Core) , RPM-build安装在用户根目录~下有rpmbuild/SOURCES,SPECS,BUILD…)
二.例子验证
1. 在SOURCES目录下,创建main-0.1文件目录,并在main-0.1目录下创建创建Makefile(用于建立原始吗所需的make规则),原始码文件,这里是个
helloworld.c文 件。main-0.1目录及内容创建好后压缩为.tar.gz文件(rpm原始文件貌似只能是.tar.gz)具体步骤:
(1) Main-0.1内容创建
mkdir main-0.1 //main-0.1目录创建
(2) helloworld.c创建
vim helloworld.c
编辑内容
gcc –o helloworld helloworld.c
执行
./helloworld
(3) Makefile创建 //建立原始码所需make规则
vim Makefile
内容如下:
BS =-lm
OBJS =helloworld.o
main:${OBJS}
gcc -o helloworld ${OBJS} ${LIBS}
clean:
rm -f helloworld ${OBJS}
install:
install -m 755 helloworld $(RPM_INSTALL_ROOT)/usr/local/bin/main
( // main:下面的命令是用Tab键空隔开的 )
(4) 压缩main-0.1
tar –zcvfmain-0.1.tar.gz main-0.1
2. 新建*.spec的设置文件作为RPM 输入文件,该文件告诉 RPM 如何构建和打包您的软件,在SPECS目录下创建main.spec
vim main.spec
内容:
Summary: printf hello world
Name: main
Version:0.1
Release: 1
License: GPL
Group: SUN'sHome
Source:main-0.1.tar.gz
Url:http://linux.vbird.org
Packager: VSUN
BuildRoot:%{_tmppath}/%{name}-%{version}-%{release}-root
%description
This packagewill let you input your name and calculate sin cos value
%prep
%setup -q
%build
make
%install
rm -rf%{buildroot}
mkdir -p%{buildroot}/usr/local/bin
make installRPM_INSTALL_ROOT=%{buildroot}
%files
/usr/local/bin/main
%changelog
* Wed Jul 012009 VBird Tsai <vbird@mail.vbird.idv.tw>0.1
-build theprogram
3. 编译为RPM与SRPM
rpmbuild -bamain.spec
4. 安装/测试/查询
在RPMS/x86.64/目录下main-0.1-1.x86_64.rpm
Rpm –ivh main-0.1-1.x86_64.rpm //安装
在文件安装目录/usr/local/bin/main,查询main内容
rpm –qi main
进入main安装目录
rpm –ql main
执行可执行文件main
./main
输出hello world !
参考文献:
1. http://blog.chinaunix.net/uid-28216282-id-3405950.html
2. http://blog.chinaunix.net/uid-24347760-id-1989580.html
3. http://www.ibm.com/developerworks/cn/linux/management/package/rpm/part1/