博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
rpmbuild - 构建 RPM 打包
阅读量:4700 次
发布时间:2019-06-09

本文共 3115 字,大约阅读时间需要 10 分钟。

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

你可能感兴趣的文章
BZOJ1803Spoj1487 Query on a tree III——主席树
查看>>
C# DataTable和DataRelation
查看>>
关于slf4j+logback整合提供完善log记录的一些总结
查看>>
sqlalchemy根据数据库结构生成映射的实体
查看>>
环形数组的组最大字数组求法
查看>>
SQL命令建表
查看>>
图片上传预览 支持html5的浏览器
查看>>
开源框架收集
查看>>
[恢]hdu 2027
查看>>
论文-GoogleNet : Going Deeper with Convolutions
查看>>
51Nod - 1247 可能的路径
查看>>
/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h:No such file or directory的解决办法
查看>>
Linux总结--vi与vim
查看>>
一些好用的工具网站
查看>>
jxl简析2 [ http://www.emlog.net/fei ]
查看>>
Linux命令--文件管理
查看>>
webform初识
查看>>
Java设计模式7:适配器模式
查看>>
python之函数
查看>>
2-5查找字典公共键
查看>>