使用rpmbuild制作rpm包
这里以制作cmake-3.15.5为例,首先保证环境中安装有rpmbuild,其次下载cmake-3.15.5.tar.gz源代码包,下载地址见下spec文件。
- rpmbuild –ba cmake.spec生成打包目录
这个命令可以在任意目录下执行,执行后会报如下错误

这里报错正常, 因为此时并没有cmake.spec文件,这个文件是需要我们手工编写的。
执行完成后会发现在/root目录下形成了rpmbuild目录.
如果没有在/root下形成,可以修改/usr/lib/cpm/macros文件中的_topdir宏,这里不再过多解释.

关于rpmbuild目录的结构含义这里不过多解释。
- vi ~/rpmbuild/SPECS/cmake.spec 自动生成spec模板文件,并填写相关字段,现给出我的spec文件
#
# spec file for package cmake
#
# Copyright (c) 2020 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define version 3.15.5
Name: cmake
Version: %{version}
Release: 1
License: GPL
Summary: cmake tools
# Url:
# Group:
Source: https://github.com/Kitware/CMake/releases/download/v3.15.5/cmake-3.15.5.tar.gz
# Patch:
# BuildRequires:
# PreReq:
# Provides:
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
%prep
%setup -q
%build
./configure
make %{?_smp_mflags}
%install
make install DESTDIR=%{buildroot} %{?_smp_mflags}
%post
%postun
%files
关于spec文件的具体字段含义这里不过多解释。
- 执行 rpmbuild ~/rpmbuild/SPECS/cmake.spec
接下来是比较长的编译和安装过程,当完成后会发现在BUILD目录下有cmake-3.15.5.tar.gz的解压后的文件夹,BUILDTOOR目录下有已经被安装完成的cmake的文件
- 解析rpm包
rpm –qpl *.rpm # 列出rpm包包含的内容
rpm2cpio *.rpm | cpio –div # 解压rpm包
来源:https://www.cnblogs.com/tongyishu/p/12294523.html