SYNOPSIS

构建打包:

rpmbuild {-ba|-bb|-bp|-bc|-bi|-bl|-bs} [rpmbuild-options] SPECFILE ...

rpmbuild {-ta|-tb|-tp|-tc|-ti|-tl|-ts} [rpmbuild-options] TARBALL ...

rpmbuild {--rebuild|--recompile} SOURCEPKG ...

其他:

rpmbuild --showrc

rpmbuild 选项

[--buildroot DIRECTORY] [--clean] [--nobuild]
[--rmsource] [--rmspec] [--short-circuit] [--sign]
[--target PLATFORM]

DESCRIPTION

rpmbuild 是用来构建软件的二进制和源代码打包的。一个软件包 package 包括文件的归档以及用来安装和卸载归档中文件的元数据。元数据包括辅助脚本,文件属性,以及有关的描述性的信息。软件包有两种 package:二进制软件包,用来封装要安装的软件,源代码软件包,包含了源代码和要构建二进制打包需要的内容。

必须选择下列基本模式之一:0 Build Package, Build Package from Tarball, Recompile Package, Show Configuration.

一般的选项

这些选项可以用于所有不同的模式。

-?, --help
输出较长的帮助信息
--version
输出一行信息,包含 rpmbuild 的版本号
--quiet
输出尽可能少的信息 - 通常只有错误信息才会显示出来
-v
输出冗余信息 - 通常常规的进度信息都将被显示
-vv
输出大量丑陋的调试信息
--rcfile FILELIST
FILELIST 中冒号分隔的每个文件名都被 rpm 按顺序读取,从中获得配置信息。只有列表的第一个文件必须存在,波浪线将被替换为 $HOME。默认的 FILELIST/usr/lib/rpm/rpmrc:/usr/lib/rpm/redhat/rpmrc:/etc/rpmrc:~/.rpmrc
--pipe CMD
rpm 的输出通过管道送到命令 CMD
--dbpath DIRECTORY
使用 DIRECTORY 中的数据库,而不是默认的路径 /var/lib/rpm
--root DIRECTORY
DIRECTORY 作为根文件系统,进行所有操作。这意味着将使用 DIRECTORY 中的数据库来进行依赖性检测,任何小程序 (也就是安装中的 %post 和构建中的 %prep) 都将在一个 chroot(2) 到 DIRECTORY 之后执行。

构建选项

构建命令的一般形式是

rpmbuild -bSTAGE|-tSTAGE [ rpmbuild-options ] FILE ...

如果要用某个 spec 文件构建,使用 -b 参数。如果需要根据一个可能是压缩过的 tar 归档文件中的 spec 文件构建,就使用 -t 参数。第一个参数之后的字符 STAGE 指定了要完成的构建和打包的阶段,是下列其中之一:

-ba
构建二进制和源代码打包 (在执行 %prep, %build 和 %install 之后)
-bb
构建二进制打包 (在执行 %prep, %build 和 %install 之后)
-bp
执行 spec 文件的 "%prep" 阶段。通常,这会解包源代码并应用补丁
-bc
执行 spec 文件的 "%build" 阶段 (在执行了 %prep 阶段之后)。这通常等价于执行了一次 "make"
-bi
执行 spec 文件的 "%install" 阶段 (在执行了 %prep 和 %build 阶段之后)。这通常等价于执行了一次 "make install"
-bl
执行一次 "列表检查"。spec 文件的 "%files" 段落中的宏被扩展,检测是否每个文件都存在。
-bs
只构建源代码打包

还可以用下列选项:

--buildroot DIRECTORY
在构建时,使用目录 DIRECTORY 覆盖默认的值
--clean
在制作打包之后删除构建树
--nobuild
不执行任何构建步骤。用于测试 spec 文件
--rmsource
在构建后删除源代码 (也可以单独使用,例如 "rpmbuild --rmsource foo.spec")
--rmspec
在构建之后删除 spec 文件 (也可以单独使用,例如 "rpmbuild --rmspec foo.spec")
--short-circuit
直接跳到指定阶段 (也就是说,跳过指定阶段前面的所有步骤)。只有与 -bc-bi 连用才有意义。
--sign
在打包中包含 GPG 签名。签名可以用来校验打包的完整性和来源。参见 rpm(8) 的 "GPG 签名" 章节中的配置细节。
--target PLATFORM
在构建时,将 PLATFORM 解析为 arch-vendor-os,并以此设置宏 %_target, %_target_cpu, 和 %_target_os 的值。

重建和重编译选项

还有两种发起构建的方法:

rpmbuild --rebuild|--recompile SOURCEPKG ...

这样执行的话,rpmbuild 安装指定的源代码打包,然后进行准备,编译和安装。另外,--rebuild 构建一个新的二进制打包,在构建结束时,构建目录被删除 (就好像用了 --clean),源代码和 spec 文件也被删除。

SHOWRC

命令

rpmbuild --showrc

将显示 rpmbuild 使用的,在 rpmrcmacros 配置文件中定义的选项的值。

FILES

rpmrc 配置文件

/usr/lib/rpm/rpmrc
/usr/lib/rpm/redhat/rpmrc
/etc/rpmrc
~/.rpmrc

Macro 宏定义文件

/usr/lib/rpm/macros
/usr/lib/rpm/redhat/macros
/etc/rpm/macros
~/.rpmmacros

Database 数据库

/var/lib/rpm/Basenames
/var/lib/rpm/Conflictname
/var/lib/rpm/Dirnames
/var/lib/rpm/Filemd5s
/var/lib/rpm/Group
/var/lib/rpm/Installtid
/var/lib/rpm/Name
/var/lib/rpm/Packages
/var/lib/rpm/Providename
/var/lib/rpm/Provideversion
/var/lib/rpm/Pubkeys
/var/lib/rpm/Removed
/var/lib/rpm/Requirename
/var/lib/rpm/Requireversion
/var/lib/rpm/Sha1header
/var/lib/rpm/Sigmd5
/var/lib/rpm/Triggername

Temporary 临时文件

/var/tmp/rpm*

转载于:https://www.cnblogs.com/fanweisheng/p/11098086.html

rpmbuild - 构建 RPM 打包相关推荐

  1. python项目使用setuptools和rpmbuild构建rpm包

    python项目使用setuptools和rpmbuild构建rpm包 文章目录 python项目使用setuptools和rpmbuild构建rpm包 一.setuptools 二.使用rpmbui ...

  2. 使用rpmbuild制作jdk的包_rpmbuild - 构建 RPM 打包

    SYNOPSIS 构建打包: rpmbuild {-ba|-bb|-bp|-bc|-bi|-bl|-bs} [rpmbuild-options] SPECFILE... rpmbuild {-ta|- ...

  3. rpmbuild 构建 rpm 包

    生成 rpmbuild 目录 如果需要自己完全从源码构建的话,就需要先构造好 rpmbuild 目录了. [root@localhost ~]# yum install rpmdevtools [ro ...

  4. 使用RPM打包QT程序

    本文章只是一个RPM打包的一个小例子,仅适合初学者参考! 先说一下使用RPM打包的步骤: 一.首先将写好的内容使用tar压缩成.tar.gz格式 二.创建所需的目录并配置rpm打包目录 使用rpm打包 ...

  5. RPM打包原理、示例、详解及备查

    原文地址:https://blog.csdn.net/qq_16542775/article/details/80961213 RPM(Redhat Package Manager)是用于Redhat ...

  6. 服务器RPM打包详细教程

    一.RPM简介 RPM(RedHat Package Manager)介绍:顾名思义是RedHat的软件包管理.RPM可以让用户直接以Binary方式安装软件包,并且可以在安装.更新和删除的时候自动解 ...

  7. centos7使用rpmbuild制作rpm包

    本文作为我实验的一个总结文档,可能实现的功能比较简单,适合于想要简单入门使用的,希望对朋友们有所帮助 下载rpmbuild程序包 所用系统 centos7.6 yum install rpm-buil ...

  8. rpm打包的流程包括以下哪些_Linux下RPM打包流程分享

    本文主要和大家分享Linux下RPM打包流程,希望能帮助到大家. 开始前的准备 安装rpmbuild软件包yum -y install rpm-build 生成相关目录 要生成rpm相关目录,可以手动 ...

  9. RPM打包原理spec

    概述 RPM(Redhat Package Manager)是用于Redhat.CentOS.Fedora等Linux 分发版(distribution)的常见的软件包管理器.因为它允许分发已编译的软 ...

最新文章

  1. [Machine Learning]--知识点疑问汇总[持续更新中]
  2. Amazon EC2 AMI实现X11 forwarding【从MobaXterm打开浏览器和图形界面】
  3. 17. Letter Combinations of a Phone Number 电话号码的字母组合
  4. 【一起去大厂系列】针对left join以及limit的两条优化小技巧
  5. 关于最近公司裁员和加班的思考
  6. UDT源码剖析(二):UDT自带例程recvfile注释
  7. c++如何打印一维数组首地址_4.1 数组的定义
  8. 推荐安卓开发神器(里面有各种UI特效和实例)
  9. Hibernate的延迟加载问题
  10. 基于 Flink 打造的伴鱼实时计算平台 Palink 的设计与实现
  11. 软件测试教程从入门到精通
  12. 删除下拉框只找23火星软件_下拉框找20火星软件
  13. 利用python、selenium和超级鹰 实现B站自动登录
  14. memcacheQueue队列
  15. 工作流-Activiti7-基础讲解
  16. 当你在搜索框按下enter的一刹那发生了什么?
  17. xcode升级iOS 16问题与解决方案汇总
  18. 5700:还钱问题(贪心+思维)
  19. 数据库范式1NF 2NF 3NF详细阐述
  20. 调试经验——让Excel开口说话(使用VBA Speak方法让Excel朗读单元格内容)(Let Excel read for you)

热门文章

  1. XML文档的使用方法
  2. 使用组策略禁止域用户运行特定软件名称的程序
  3. 7月共处理钓鱼网站1921个:非CN域名达1911 个
  4. 《Look at Boundary: A Boundary-Aware Face Alignment Algorithm》代码调试
  5. CNN 用于手写体识别 matlab 代码理解
  6. Python实现删除字符串中的字符
  7. 数据结构—单链表(类C语言描述)
  8. clark变换_电力变换器PWM原理与实践,p43页,空间矢量理解
  9. python内置模块_三分钟读懂Python内置模块collections
  10. Python 测试驱动开发读书笔记(三)使用单元测试测试简单的首页