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*
转载于:https://www.cnblogs.com/fanweisheng/p/11098086.html
rpmbuild - 构建 RPM 打包相关推荐
- python项目使用setuptools和rpmbuild构建rpm包
python项目使用setuptools和rpmbuild构建rpm包 文章目录 python项目使用setuptools和rpmbuild构建rpm包 一.setuptools 二.使用rpmbui ...
- 使用rpmbuild制作jdk的包_rpmbuild - 构建 RPM 打包
SYNOPSIS 构建打包: rpmbuild {-ba|-bb|-bp|-bc|-bi|-bl|-bs} [rpmbuild-options] SPECFILE... rpmbuild {-ta|- ...
- rpmbuild 构建 rpm 包
生成 rpmbuild 目录 如果需要自己完全从源码构建的话,就需要先构造好 rpmbuild 目录了. [root@localhost ~]# yum install rpmdevtools [ro ...
- 使用RPM打包QT程序
本文章只是一个RPM打包的一个小例子,仅适合初学者参考! 先说一下使用RPM打包的步骤: 一.首先将写好的内容使用tar压缩成.tar.gz格式 二.创建所需的目录并配置rpm打包目录 使用rpm打包 ...
- RPM打包原理、示例、详解及备查
原文地址:https://blog.csdn.net/qq_16542775/article/details/80961213 RPM(Redhat Package Manager)是用于Redhat ...
- 服务器RPM打包详细教程
一.RPM简介 RPM(RedHat Package Manager)介绍:顾名思义是RedHat的软件包管理.RPM可以让用户直接以Binary方式安装软件包,并且可以在安装.更新和删除的时候自动解 ...
- centos7使用rpmbuild制作rpm包
本文作为我实验的一个总结文档,可能实现的功能比较简单,适合于想要简单入门使用的,希望对朋友们有所帮助 下载rpmbuild程序包 所用系统 centos7.6 yum install rpm-buil ...
- rpm打包的流程包括以下哪些_Linux下RPM打包流程分享
本文主要和大家分享Linux下RPM打包流程,希望能帮助到大家. 开始前的准备 安装rpmbuild软件包yum -y install rpm-build 生成相关目录 要生成rpm相关目录,可以手动 ...
- RPM打包原理spec
概述 RPM(Redhat Package Manager)是用于Redhat.CentOS.Fedora等Linux 分发版(distribution)的常见的软件包管理器.因为它允许分发已编译的软 ...
最新文章
- [Machine Learning]--知识点疑问汇总[持续更新中]
- Amazon EC2 AMI实现X11 forwarding【从MobaXterm打开浏览器和图形界面】
- 17. Letter Combinations of a Phone Number 电话号码的字母组合
- 【一起去大厂系列】针对left join以及limit的两条优化小技巧
- 关于最近公司裁员和加班的思考
- UDT源码剖析(二):UDT自带例程recvfile注释
- c++如何打印一维数组首地址_4.1 数组的定义
- 推荐安卓开发神器(里面有各种UI特效和实例)
- Hibernate的延迟加载问题
- 基于 Flink 打造的伴鱼实时计算平台 Palink 的设计与实现
- 软件测试教程从入门到精通
- 删除下拉框只找23火星软件_下拉框找20火星软件
- 利用python、selenium和超级鹰 实现B站自动登录
- memcacheQueue队列
- 工作流-Activiti7-基础讲解
- 当你在搜索框按下enter的一刹那发生了什么?
- xcode升级iOS 16问题与解决方案汇总
- 5700:还钱问题(贪心+思维)
- 数据库范式1NF 2NF 3NF详细阐述
- 调试经验——让Excel开口说话(使用VBA Speak方法让Excel朗读单元格内容)(Let Excel read for you)
热门文章
- XML文档的使用方法
- 使用组策略禁止域用户运行特定软件名称的程序
- 7月共处理钓鱼网站1921个:非CN域名达1911 个
- 《Look at Boundary: A Boundary-Aware Face Alignment Algorithm》代码调试
- CNN 用于手写体识别 matlab 代码理解
- Python实现删除字符串中的字符
- 数据结构—单链表(类C语言描述)
- clark变换_电力变换器PWM原理与实践,p43页,空间矢量理解
- python内置模块_三分钟读懂Python内置模块collections
- Python 测试驱动开发读书笔记(三)使用单元测试测试简单的首页