rpm

rpm制作--简易版

                                       1.
接上面的autoconf。
这里要注意的是,前面Makefile.am里面的SOURCE部分没有写.h文件,这样的话编译没问题,但会导致打包的时候无法将.h文件打入tar.gz 包里。
所以添加.h文件

2.
然后make dist
生成 hello-1.0.tar.gz

tar tzf hello-1.0.tar.gz
查看是否文件齐全

3.
cp hello-1.0.tar.gz /usr/src/***/SOURCES/
rpm的制作要求有五个目录,方便起见用默认的目录

vi /usr/src/***/SPECS/hello.spec

4.
# hello.spec
%define _prefix /usr/

Summary: hello
Name: hello
Version: 1.0
Release: 1
Vendor : LCY
Packager: LCY
Group: LCY
License: GPL
Source0: %{name}-%{version}.tar.gz

BuildRoot: /var/tmp/hello
BuildArch: i386

%description
Msg hello

%prep
%setup


%build
[ ! -f Makefile ] || make distclean
%configure
make

%install
[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT

%makeinstall
for doc in ABOUT-NLS AUTHORS README COPYING INSTALL NEWS TODO ChangeLog; do
rm -f $RPM_BUILD_ROOT%{_prefix}/doc/nothing/$doc;
done;

%clean
[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root)
/usr/bin/hello


5.
cd /usr/src/***/SPECS
rpmbuild -ba hello.spec

这里的 -ba 可以被其他所替换, a是all的意思,解包--编译--生成都作

6.
cd /usr/src/***/RPMS/i386
ls
可见 hello-1.0-1.tar.gz

http://www-128.ibm.com/developerworks/cn/linux/management/package/rpm/part1/

rpm包在其他目录制作的方法
mkdir /code/rpm
cd /code/rpm
mkdir -p RPMS/i386 SRPMS BUILD SPECS SOURCES
vi ~/.rpmmacros


# rpmmacros

%_distribution Linux Program lcy
%_require_distribution 1
%_vendor Software test
%_require_vendor 1
%_topdir /code/rpm/
%_builddir /code/rpm/BUILD
%_rpmdir /code/rpm/RPMS //该行以下可以省
%_srcrpmdir /code/rpm/SRPMS
%_specdir /code/rpm/SPECS
%_SOUrcedir /code/rpm/SOURCES

然后把tar.gz 放到 /code/rpm/SOURCES下
spec 放到 /code/rpm/SPECS下 , 进入该目录rpmbuild就可以了
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值