RPM有五种基本的操作功能:安装、卸载、升级、查询和验证。此文主要关注安装打包功能。
0.常用命令
rpmbuild --help #Show this help message
rpmbuild --showrc # display final rpmrc and macro configuration
例如:可以通过命令 rpm --showrc | grep prefix 查看。
1. 安rpmbuild装rpm-build软件,以提供rpmbuild命令,yum install rpm-build -y
RPM打包使用的是rpmbuild命令,这个命令来自rpm-build软件包,这个是必装的。
2. 打包命令
linux软件包分为两大类:
(1)二进制类包,包括rpm安装包(一般分为i386和x86等几种)
(2)源码类包,源码包和开发包应该归位此类(.src.rpm)。
基本格式:rpmbuild [options] [spec文档|tarball包(或者压缩包—以.gz或.xz或.bz2结尾的)|源码包],Usage: rpmbuild [OPTION...]
options有下面的几种选择,Build options with [ <specfile> | <tarball> | <source package> ]:
-bb build binary package only from <specfile>
-bs build source package only from <specfile>
举例:rpmbuild -bb --target=aarch64-himix100-linux --define "cross \"aarch64-himix100-
linux\"" xxx.spec
参数说明:
-bb ,只建立二进制包
--target,target是目标架构
--define,宏定义赋值,定义宏cross为aarch64-himix100-linux,此处cross是用于指定交叉工具链的前缀。
3. spec文件说明
BuildRoot: 这个是安装或编译时使用的“虚拟目录”,考虑到多用户的环境,一般定义为:%{_tmppath}/%{name}-%{version}-%{release}-root
4.rpm的工作目录
一般用户身份的主目录下如下结构的目录:rpmbuild目录,还有该目录下六个目录,包括:BUILD、BUILDROOT、RPMS、SOURCES、SPECS、SRPMS,各个目录的一般用途如下简介:
BUILD 编译rpm包的临时目录
BUILDROOT 编译后生成的软件临时安装目录
RPMS 最终生成的可安装rpm包的所在目录
SOURCES 所有源代码和补丁文件的存放目录
SPECS 存放SPEC文件的目录(重要)
SRPMS 软件最终的rpm源码格式存放路径
网友评论