rpmbuild - 构建 RPM 打包
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 使用的,在 rpmrc 和 macros 配置文件中定义的选项的值。
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*
rpmbuild - 构建 RPM 打包的更多相关文章
- rpmbuild 构建rpm包时报错解决 error: Installed (but unpackaged) file(s) found:
解决的办法是找到 /usr/lib/rpm/macros 中%__check_files /usr/lib/rpm/check-files %{buildroot} 注释掉
- 在Linux下通过rpm打包发布Java程序
这个东西涉及的内容较多,根据下面这些文章慢慢学习 一个简单的例子 http://blog.csdn.net/king_on/article/details/7169384 按照文章中的步骤来,打包之后 ...
- Centos6_64 rpm打包实践
安装rpmbuild sudo yum install rpm-build 普通用户的配置 /home/you/rpmbuild/ 假设是要构建rpm的目录 先说说rpmbuild有什么用,给一个例子 ...
- RPM打包原理、示例、详解及备查
原文地址:https://blog.csdn.net/qq_16542775/article/details/80961213 RPM(Redhat Package Manager)是用于Redhat ...
- RPM打包原理、示例、详解及备查( 转)
RPM(Redhat Package Manager)是用于Redhat.CentOS.Fedora等Linux 分发版(distribution)的常见的软件包管理器.因为它允许分发已编译的软件,所 ...
- 用 RPM 打包软件,第 1 部分
http://www.ibm.com/developerworks/cn/linux/management/package/rpm/part1/ RPM(Red Hat Package Manager ...
- 【centos7常用技巧】RPM打包
一.RPM打包的目的 1.当目标机中不存在编译环境时,可以先在本地环境中编译打包,然后直接在目标机中用rpm -ivh *.rpm安装即可. 2.当需要在目标机中安装多个软件或者增加多个文件时,可以将 ...
- rpm打包过程
[需求] 接触那么久的Linux,还没有试验过怎么打rpm包 [过程] 1.rpm打包准备工作 系统默认的rpmbuild的相关路径
- linux 版本控制及rpm打包
版本控制 subversion:是一个自由/开源的版本控制系统,在subversion管理下,文件和目录可以超越时空subversion允许你数据恢复到早期版本,或者是检查数据修改历史许多人将版本控制 ...
随机推荐
- 学习旧岛小程序 (4)封装api 请求
1.配置基本的 请求路径 和 key config.js const config = { baseUrl: 'http://bl.7yue.pro/v1/', appkey: "" ...
- 对webpack的初步研究7
Configuration 您可能已经注意到很少有webpack配置看起来完全相同.这是因为webpack的配置文件是导出对象的JavaScript文件.然后,webpack根据其定义的属性处理此对象 ...
- 3 Base64编码主要应用在那些场合?
,电子邮件数据也好,经常要用到Base64编码,那么为什么要作一下这样的编码呢? 我们知道在计算机中任何数据都是按ascii码存储的,而ascii码的128-255之间的值是不可见字符.而在网络上交换 ...
- JavaScript用在哪里
<script> 标签 在HTML,JavaScript代码必须插入<script> 和 </script>之间的. document.getElementById ...
- 阿里云祝顺民(江鹤):云原生SDWAN加速企业上云 引领未来智能网络
第二届中国SD-WAN峰会于11月16日在北京盛大开幕,阿里云以黄金赞助商之名隆重参与.作为全球前三,亚太第一的云计算厂商,阿里云一直引领云网技术的演进及应用落地.过去一年,阿里云发布以云为中心的云原 ...
- OC + RAC(一) RACSignal 基本使用
-(void)_test1{ //测试RAC流程 发送next类型事件 以completed结束时: //至于有无 sendCompleted 的区别主要是用在需要知道信号状态 NSLog(@&quo ...
- android设置系统默认开机时间
1.设置RTC时间,该时间是如果RCT时钟断电以后使用的默认时间 Android L之前: \alps\mediatek\custom\[project]\preloader\ inc\cust_rt ...
- macOS 10.15 Catalina Apache设置:多个PHP版本
第1部分:macOS 10.15 Catalina Web开发环境 在macOS上开发Web应用程序真是令人高兴.有许多设置开发环境的选项,包括广受欢迎的MAMP Pro,它在Apache,PHP和M ...
- Node对象的一些方法
Node对象是什么提供了 DOM的标准规范提供了Node对象,该对象主要提供了解析DOM节点树结构的属性和方法,DOM树结构主要是依靠节点进行解析,称为DOM节点树结构.Node对象是解析DOM节点树 ...
- Centos6.5在线配置安装Java环境与Tomcat环境
书写此文一来记录环境,以便后期查看使用,Linux环境下配置centos与Java开发环境 本文环境:虚拟机系统centos6.5 链接工具:xshell脚本链接工具 一.安装Java开发 ...