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就可以了