rpm安装包的制作

rpm安装包的制作

  1. 装包
  2. 配置文件说明
  3. 打包
  4. spec文件详解
  5. 简单的打包案例

本实验在Ubuntu 20.04.1 LTS(Ubuntu Kylin)上进行操作,当然别的系统也行

1.装包(rpmbuild工具在安装完rpm之后就会有)

sudo apt-get install rpm

2.生成rpmbuild工作目录

jing@pc01:~$ tree rpmbuild/
rpmbuild/
├── BUILD
├── BUILDROOT
├── RPMS
├── SOURCES
├── SPECS
└── SRPMS
  • BUILD:源代码解压后放的位置,将会在这个目录下进行制作
  • BUILDROOT:假跟,在install阶段的时候会安装这个目录下,所以这个目录下的文件,才是真正的目录文件。打包完成后,将会删除此目录
  • RPMS:存放生成的二进制包
  • SOURCES:打包的资源,源码包或补丁文件
  • SPECS:制作安装包的规则文件
  • SRPMS:存放生成的源码包,也就是SRC格式的安装包(SRC就不涉及到平台了)

3.打包

rpmbuild -bp xx.spec  #只执行spec的%pre段(解开源码包并打补丁,即制作准备)
rpmbuild -bc xx.spec  #只执行spec的%pre和%build段(准备并编译)
rpmbuild -bi xx.spec  #执行spec的%pre、%build、%install(准备编译并安装)
rpmbuild -bl xx.spec  #检查%spec中的%file段
rpmbuild -ba xx.spec  #制作源码和二进制包(*.rpm和*.src.rpm)
rpmbuild -bb xx.spec  #只做二进制包(*.rpm)
rpmbuild -bs xx.spec  #只做源码包(*.src.rpm)

4.spec文件详解

#定义包名和版本,可在下方调用
%define name 
%define version  
Name: jingjing   
Version: 1.0.0
Release: 1
Summary: ceshi
Vendor: jingxiang
#软件分组或类别
Group: Unknown
#软件授权方式
License: GPL
URL: Unknown
#源代码包,可以用Source1、Source2表示,下面可用%{source1}、%{source2}调用
Source0: teach.tar.gz
Buildarch: noarch
#BuildRequires:
#该rpm包所依赖的软件包名称
#Requires:
%description
this is my first product software
%prep
%setup -q
%build
#将软件安装到虚拟根目录中,这里install只要为下面的files服务的
%install
mkdir -p $RPM_BUILD_ROOT/mnt/jingjing
cp -rf * $RPM_BUILD_ROOT/mnt/jingjing
%clean
rm -rf $RPM_BUILD_ROOT
#定义那些目录或文件被打编写到rpm中
%files
/mnt/jingjing/*
%doc
#变更日志,注意星期和月份用英文的前三个字母
%changelog
* Sun Aug 02 2020 jingxiang [email protected] -1.0.0-1
  only test

扩展:

Group类别:

软件包所属类别,具体类别有:
Amusements/Games (娱乐/游戏)
Amusements/Graphics(娱乐/图形)
Applications/Archiving (应用/文档)
Applications/Communications(应用/通讯)
Applications/Databases (应用/数据库)
Applications/Editors (应用/编辑器)
Applications/Emulators (应用/仿真器)
Applications/Engineering (应用/工程)
Applications/File (应用/文件)
Applications/Internet (应用/因特网)
Applications/Multimedia(应用/多媒体)
Applications/Productivity (应用/产品)
Applications/Publishing(应用/印刷)
Applications/System(应用/系统)
Applications/Text (应用/文本)
Development/Debuggers (开发/调试器)
Development/Languages (开发/语言)
Development/Libraries (开发/函数库)
Development/System (开发/系统)
Development/Tools (开发/工具)
Documentation (文档)
System Environment/Base(系统环境/基础)
System Environment/Daemons (系统环境/守护)
System Environment/Kernel (系统环境/内核)
System Environment/Libraries (系统环境/函数库)
System Environment/Shells (系统环境/接口)
User Interface/Desktops(用户界面/桌面)
User Interface/X (用户界面/X窗口)
User Interface/X Hardware Support (用户界面/X硬件支持)

file字段

%files
%ifarch x86_64
/mnt/jingjing/*
%else
/mnt/other/*
%endif

一键制作rpm脚本下载:https://blog.csdn.net/qq_44839276/article/details/107037946

pdf文件下载:https://github.com/zhd-haodong/Ebook

你可能感兴趣的:(OPERATION,rpm,rpmbuild)