首先rpm -qa rpm-build看下是否已经安装了rpmbuild软件包,没有的话执行命令yum -y install rpm-build,然后mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}创建工作路径。BUILD存放源代码并在该路径下完成编译工作;RPMS存放最终打包完成的二进制rpm包;SOURCES存放压缩的代码包由系统自动执行解压缩操作;SPECS存放spec扩展名的打包操作配置清单;SRPMS保存最终打包完成的源代码rpm包。
从https://gitee.com/gonglibin/GlbLib-1.0.0下载源代码包(Makefile需要剔除install相关操作),执行tar -czf GtLib-1.0.0.tar.gz GtLib-1.0.0/打成tar.gz格式包扔到SOURCES路径下。在SPECS目录下新建GtLib.spec文件,写入配置信息保存退出,执行rpmbuild -bb GtLib.spec开始打包操作。如果打包成功在RPMS目下会生成x86_64路径,x86_64是架构名称,不同的机器名称可能会不同。为了验证打包的正确性,可以执行yum install GtLib-1.0.0-1.x86_64.rpm命令对rpm包进行安装,执行yum remove GtLib-1.0.0-1.x86_64命令进行卸载,执行rsync -av GtLib-1.0.0-1.x86_64.rpm rpm@192.168.100.100::mylibrary命令进行发布。
GtLib.spec文件信息
##############################################################
# http://www.rpm.org/max-rpm/ch-rpm-inside.html #
##############################################################
Name: GtLib # 软件包名称
Version: 1.4.0 # 关键包版本
Release: 1 # 发布序列号
Summary: Global library # 软件包概要
Group: gonglibin # 软件包分组
License: gonglibin # 软件包授权
URL: https://gitee.com/gonglibin/GlbLib-1.0.0 # 软件包主页
Source0: GtLib-1.4.0.tar.gz # 代码压缩包
%description -l zh_CN # 软件包描述
个人通用库纯属自娱自乐!
%prep # 预处理脚本
%setup # 软件包解压
%build # 源代码编译
make clean
make all
%install # 构建安装路径
mkdir -p $PWD%{_prefix}/lib/GtLib
mkdir -p $PWD%{_prefix}/include/GtInc
cp -rf lib/* $PWD%{_prefix}/lib/GtLib/.
cp -rf inc/* $PWD%{_prefix}/include/GtInc/.
cp -rf usr %{buildroot}/.
%post # 善后处理脚本
%files # 安装路径及文件
%{_prefix}/lib/GtLib
%{_prefix}/include/GtInc
%attr(755,root,root)
%defattr(755,root,root)
%changelog # 安装变更日志