创造属于你的rpm软件包

RPM 是Red-Hat Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,
但是其原始设计理念是开放式的,包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。
yum是基于rpm的包管理工具,yum最终安装的是rpm包,那rpm包是如何来的呢?

一、 安装RPM包

$ yum -y install rpm-build rpm-devel rpmdevtools

二、 实例讲解

1. 生成开发目录
$ rpmdev-setuptree 

2. 新建helloworld-1.0.0 项目文件
$ mkdir helloworld-1.0.0

3. 新建源码文件helloworld,输入以下内容
#!/bin/sh
echo "Hello World!"

4. 打包项目helloworld-1.0.0.tar.gz,并拷贝到资源目录SOURCES
$ tar -czvf helloworld-1.0.0.tar.gz helloworld-1.0.0
$ cp helloworld-1.0.0.tar.gz ~/rpmbuild/SOURCES/

5. 生成spec模板文件
$ cd  ~/rpmbuild/SPECS
$ rpmdev-newspec helloworld.spec  # 生成spec模版文件

6. 修改spec文件如下
Name:           helloworld
Version:        1.0.0
Release:        1%{?dist}
Summary:        helloworld

Group:          Development/Tools
License:        GPLv2+
#URL:            
Source0:        %{name}-%{version}.tar.gz

#BuildRequires:  
#Requires:       

%description
A simple example for rpm.

%prep
%setup -q

%build

%install
mkdir -p $RPM_BUILD_ROOT/usr/bin
cp $RPM_BUILD_DIR/%{name}-%{version}/helloworld $RPM_BUILD_ROOT/usr/bin/

%clean
rm -rf %{buildroot} 

%files
%defattr(-,root,root,-)
%doc
%{_bindir}/helloworld

%changelog
* Sat Aug 8 2020 shuoqi.yu <shuoqi.yu@cs2c.com.cn> -1.0.0
- Init

7. 打包
$ rpmbuild -ba SPECS/helloworld.spec

注:当前目录结构文件简介
> BUILD是编译rpm包的临时目录
> BUILDROOT是最后生成rpm包的临时安装目录
> RPMS存放最终生成的rpm二进制包
> SOURCES是源代码(.tar.gz)存放目录
> SPECS用来存放spec文件
> SRPMS存放最终生成的rpm源码包

rpmbuild/RPMS/x86_64/helloworld-1.0.0-1.el7.x86_64.rpm就是我们打出来的rpm包

8. 安装
$ yum install ~/rpmbuild/RPMS/x86_64/helloworld-1.0.0-1.el7.x86_64.rpm 
或者
rpm -ivh helloworld-1.0.0-1.el7.x86_64.rpm 

9. 测试
$ /usr/bin/helloworld
Hello World!

三、参考地址

1. 制作rpm包
2. rpm安装mysql
3. rpm和yum学习

作者:yusq77

-------------------------------------------

Wish you all the best and good health in 2021.

原文地址:https://www.cnblogs.com/yusq77/p/13470479.html