RPMBUILD(8)

NAME
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*

SEE ALSO
popt(3),
rpm2cpio(8),
gendiff(1),
rpm(8),
http://www.rpm.org/ <URL:http://www.rpm.org/>

AUTHORS
Marc Ewing <marc@redhat.com>
Jeff Johnson <jbj@redhat.com>
Erik Troan <ewt@redhat.com>

TRANSBY
LinuxForum.Net CMPP 中文手册页计划 http://cmpp.linuxforum.net

* Tue May 3 2005 Yuan Yijun <bbbush@163.com> rpm-4.4.1-3
- 初始版本, 来自于 rpm 的手册页集合