安装
yum install rpm-build
yum install rpmdevtool
rpmdev-setuptree
目录说明
Rpmbuild
BUILD 编译过程中的工作目录(编译前解压包后存放的路径)
BUILDROOT 编译完成临时文件存放,RPM包从此处提取 (编译后路径)
RPMS RPM包
SOURCES 带编译的源代码存放目录,一般是 .tar.gz
SPEC spec文件
SRPMS .src.rpm 需要则加参数指定生成,否则为空
命令执行选项
用spec文件构建:
-bp |
只执行spec的%pre准备阶段,解开源码包并打补丁 |
-bc |
执行spec的%pre和%build 段,准备+编译 |
-bi |
执行spec中%pre,%build与%install,准备+编译+安装 |
-bl |
检查spec中的%file段,查看文件是否齐全 |
-ba |
构建源码包+二进制包 |
-bb |
构建二进制包 |
-bs |
构建源码包 |
用srpm包构建:
--rebuild |
构建二进制包 |
--recompile |
执行spec中%pre,%build与%install,准备+编译+安装 |
其他的一些选项:
--buildroot=DIRECTORY |
确定以root目录建立包 |
--clean |
完成打包后清除BUILD下的文件目录 |
--nobuild |
不进行%build的阶段 |
--nodeps |
不检查建立包时的关联文件 |
--rmsource |
完成打包后清除SOURCES |
--rmspec |
完成打包后清除SPEC |
--target=CPU-VENDOR-OS |
确定包的最终使用平台 |
Srpm包
src.rpm本质是spec文件+源码包
可以执行安装命令解开
Rpm -ivh ***.src.rpm
其他
安装缺失的依赖包
rpmbuild -bb **.spec > dep 2>&1
cat dep|awk '{print $1}'|xargs -i yum install -y {}
rpmbuild -bb ceph.spec