zhmg23

我们是如此的不同
资深运维工程师互荐群: 102123162

RHEL7下制作rpm包

1、制作准备

制作工具安装

# yum install rpmbuild

# yum install rpmdevtools

执行如下命令来生成rpmbuild的工作目录

# rpmdev-setuptree

通过rpmbuild --showrc | grep topdir 查看你系统默认的工作车间 

#  rpmbuild --showrc | grep topdir

-14: _builddir%{_topdir}/BUILD

-14: _buildrootdir%{_topdir}/BUILDROOT

-14: _rpmdir%{_topdir}/RPMS

-14: _sourcedir%{_topdir}/SOURCES

-14: _specdir%{_topdir}/SPECS

-14: _srcrpmdir%{_topdir}/SRPMS

-14: _topdir%{getenv:HOME}/rpmbuild

注:我当前使用的制作系统为Red Hat Enterprise Linux Server release 7.2

RHEL7下的默认工作目录在/root/rpmbuild/下,当然也可以自定义工作目录

自定义工作目录(或车间,即%_topdir) 

vi ~/.rpmmacros  

%_topdir        /data/rpmbuild

mkdir -p /data/rpmbuild

在topdir下建立需要的目录 

cd /data/rpmbuild 

mkdir -pv {BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}  

├── BUILD (打包过程中的工作目录)

├── RPMS (存放生成的二进制包, 不同硬件平台存放在不同文件夹)

├── SOURCES (存放打包资源, 包括源码打包文件和补丁文件等)

├── SPECS (存放SPEC文档)

└── SRPMS (存放生成的源码包)

我没有自定义,直接使用的默认工作目录

2、把收集的源码放到SOURCES下 

cd /data/rpmbuild/SOURCES/ 

wget http://ffmpeg.org/releases/ffmpeg-2.8.13.tar.bz2

3、在SPECS下建立重要的spec文件 

其实在整个制作过程中,这一步最关键,成败于此

vi /data/rpmbuild/SPECS/ffmpeg.spec 

Name:ffmpeg

Version:2.8.13

Release:1%{?dist}

Summary:ffmpeg is a famous open sources bit images dev tools.

Group:Development/Tools

License:GPLv2

URL:http://www.ffmpeg.org

Source0:%{name}-%{version}.tar.bz2

BuildRequires:gcc,make

#Requires:

%description

It is a ffmpeg tools... 

%prep

%setup -q

%build

./configure --enable-libmp3lame --disable-yasm

make %{?_smp_mflags}

%install

rm -rf %{buildroot}    

make install DESTDIR=%{buildroot}

%files

%defattr (-,root,root,0755)  

/usr

%changelog

*  Thu Oct 12 2017 <zhmgz#qq.com> - 2.8.13-1

-  initial verison...

注意:第一次直接编辑此文件时,可以根据提示输入即可

4、用rpmbuild命令制作rpm包,rpmbuild命令会根据spec文件来生成rpm包 

# rpmbuild -ba ffmpeg.spec

相关重成参数

-ba 既生成src.rpm又生成二进制rpm  

-bs 只生成src的rpm  

-bb 只生二进制的rpm  

-bp 执行到pre  

-bc 执行到 build段  

-bi 执行install段  

-bl 检测有文件没包含  

rpm -qpi   /root/rpmbuild/SRPMS/ffmpeg-2.8.13-1.el7.src.rpm  输出 RPM 详细信息

# rpm -qpi   /root/rpmbuild/SRPMS/ffmpeg-2.8.13-1.el7.src.rpm 

Name        : ffmpeg

Version     : 2.8.13

Release     : 1.el7

Architecture: x86_64

Install Date: (not installed)

Group       : Development/Tools

Size        : 8596063

License     : GPLv2

Signature   : (none)

Source RPM  : (none)

Build Date  : Thu 12 Oct 2017 07:09:43 PM CST

Build Host  : h0082107

Relocations : (not relocatable)

URL         : http://www.ffmpeg.org

Summary     : ffmpeg is a famous open sources bit images dev tools.

Description :

It is a ffmpeg tools...

5、参考链接:

http://cn.linux.vbird.org/linux_basic/0520rpm_and_srpm.php


评论