1、 自定义工作目录(或车间,即%_topdir)
vi ~/.rpmmacros
%_topdir /tmp/rpmbuild ##目录可以自定义
mkdir /tmp/rpmbuild
2、 在topdir下建立需要的目录
cd /tmp/rpmbuild
mkdir -pv {BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
3、 把收集的源码放到SOURCES下
cp /usr/local/ffmpeg-2.8.6.tar.gz /tmp/rpmbuild/SOURCES/
4、 在SPECS下建立重要的spec文件
cd SPECS
vi ffmpeg.spec ##内容见sepc文件编写样例
5、 用rpmbuild命令制作rpm包,rpmbuild命令会根据spec文件来生成rpm包
1. rpmbuild
2. -ba 既生成src.rpm又生成二进制rpm
3. -bs 只生成src的rpm
4. -bb 只生二进制的rpm
5. -bp 执行到pre
6. -bc 执行到 build段
7. -bi 执行install段
8. -bl 检测有文件没包含
下面是一个完整的spec文件样例:
Name: ffmpeg Version: 2.8.6 Release: 1%{?dist} Summary: ffmpeg is a famous open sources bit images dev tools. License: GPLv2 URL: http://www.ffmpeg.org Packager: Kotei <[email protected]> Vendor: Kotei-info.com Source0: %{name}-%{version}.tar.gz #patch0: a.patch #BuildRoot: %_topdir/BUILDROOT BuildRoot: /tmp/rpmbuild/BUILDROOT BuildRequires: gcc,make #Requires: pcre,pcre-devel,openssl,chkconfig %description It is a ffmpeg tools... %prep %setup -q #%patch0 -p1 %build ./configure --enable-shared --prefix=/usr/local/ffmpeg --disable-yasm make %{?_smp_mflags} %install rm -rf %{buildroot} make install DESTDIR=%{buildroot} ### 4.1 scripts section %pre #if [ $1 == 1 ];then #$1==1 # /usr/sbin/useradd -r nginx 2> /dev/null #fi %post %preun #if [ $1 == 0 ];then # /usr/sbin/userdel -r nginx 2> /dev/null #fi %postun ### %clean rm -rf %{buildroot} %files %defattr (-,root,root,0755) /usr/local/ffmpeg/ %changelog * Fri Dec 29 2012 2.8.6-1 - initial verison...
具体的spec文件编写详解可以参照:
http://laoguang.blog.51cto.com/6013350/1103628
https://www.ibm.com/developerworks/cn/linux/l-rpm/