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 https://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:https://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 : https://www.ffmpeg.org
Summary : ffmpeg is a famous open sources bit images dev tools.
Description :
It is a ffmpeg tools...
5、参考链接:
https://cn.linux.vbird.org/linux_basic/0520rpm_and_srpm.php
评论