rpmbuild 制作 rpm 安装包 (一)

1、安装 rpmbuild

    sudo yum install -y rpm-build rpmdevtools

2、创建工作目录 

    rpmdev-setuptree (假设当前用户名为 rpmtt)

    该命令将会在用户目录下创建如下文件夹

rpmbuild/
    |--- BUILD
    |--- BUILDROOT
    |--- RPMS
    |--- SOURCES
    |--- SPECS
    |--- SRPMS

3、目录介绍

文件夹 默认路径 路径宏定义 说明
BUILD ~/rpmbuild/BUILD %_builddir 源码解压并编译的临时目录
BUILDROOT ~/rpmbuild/BUILDROOT %_buildrootdir 编译安装(%install)阶段的临时目录
RPMS ~/rpmbuild/RPMS %_rpmdir 最终生成二进制 RPM 安装包
SOURCES ~/rpmbuild/SOURCES %_sourcedir 所有源码包(.tar.gz)及需要的补丁文件
SPECS ~/rpmbuild/SPECS %_specdir *** 配置文件 ***
SRPMS ~/rpmbuild/SRPMS %_srcrpmdir 最终生成的源码rpm包

4、rpmbuild指令执行的重要阶段

    1)%prep

     读取 %_sourcesdir 目录下的源代码及补丁,将源代码解压到 %_builddir 并进行打补丁操作

    2)%build

    对 %_builddir 目录下的文件进行编译

    3)%install

    安装目录到 %_buildroot 目录下

5、rpmbuild 命令

    1)rpmbuild -bp xxx.spec   执行到 %prep 阶段

    2)rpmbuild -bc xxx.spec  执行到 %build 阶段

    3)rpmbuild -bi xxx.spec   执行到 %install 阶段

    4)rpmbuild -bl xxx.spec

    5)rpmbuild -bs xxx.spec   仅仅生成 src 的 rpm 包

    6)  rpmbuild -bb xxx.spec   仅仅生成 二进制 的 rpm 包

    7)rpmbuild -ba xxx.spec   生成 src 和 二进制 rpm 包

6、spec 文件说明

    标签 Name (宏 %{name}) : 软件包名,与spec的文件名保持相同。

    标签 Version(宏 %{version}): 版本号

    标签 Release (宏%{release}): 发行编号,初始值为 1%{?dist},后期制作新版本时,递增该值。若Version发布新版本,                       该值重新设置为1。

    标签 Summary : 软件包介绍(简洁)。

    标签 Group : 软件包组。

    标签 License :软件授权协议。

    标签 Sources0 :源码包名称,若有多个源码包,增加标签Sources1、Sources2...

    标签Patch0 : 补丁文件

    %description : 详细描述

    %prep、%build、%install (详见 《4、rpmbuild指令执行的重要阶段》)

    %clean :清理安装目录

    %files :列出所有需要安装的文件和目录

    %defattr:设置文件权限(在%files开头设置),格式为:%defattr(<文件权限>, <用户>, <用户组>, <目录权限>)

    ......

   7、其他参考教程

   How to create an RPM package 

   rpmbuild 中文手册

你可能感兴趣的:(Linux,c/c++)