RPM制作安装包 rpm软件包安装
qiyuwang 2024-10-19 08:56 10 浏览 0 评论
RPM是Red-Hat Package Manager的缩写,其中文意思是红帽软件包管理器,应用于Red-Hat、CnetOS、Fedora、OpenLinu 等Linux操作系统。可以便捷地执行软件的安装、卸载、升级。我们通过YUM下载和安装的软件,就是通过RPM实现的打包和分发。
环境准备
使用Centos环境:
CentOS Linux release 7.9.2009 (Core)
设置打包工作区
在root下运行命令:
mkdir -pv ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS,BUILDROOT}
以上命令创建了打包工作区目录布局。下面表格是各个目录的具体用处:
目录 | 用途 |
BUILD | 构建和编译安装包的临时目录 |
RPMS | 二进制RPM在此处创建,在不同的架构子目录中 |
SOURCES | 压缩的源代码和补丁,rebuild命令会在此处查找它们 |
SPECS | SPEC描述文件 |
SRPMS | 用于构建SRPM时生成的文件 |
BUILDROOT | 编译后生成的软件临时安装目录 |
准备打包源文件
1、创建<软件名>-<软件版本>/<软件安装路径>的文件夹,这个文件夹是一个相对路径。
2、将需要安装释放到主机上的文件复制到步骤1的文件夹中
3、打包<软件名>-<软件版本> 文件夹(包含文件夹本身)为<软件名>-<软件版本>.tar.gz
4、将打包好的文件<软件名>-<软件版本>.tar.gz拷贝到~/rpmbuild/SOURCES
编写SPEC文件
此文件是rpm制作的核心,SEPC文件是rpmbuild构建rpm的方法,它通过在Preamble和Body部分中定义的若干命令向构建系统提供必要的信息。
Preamble部分包含一系列元数据,Body部分的指令实现具体的构建和安装。Preamble常用指令如下表:
指令 | 解释 |
Name | 软件包的基本名称,与SPEC文件名一致 |
Version | 软件版本号 |
Release | 本版软件的发布次数。通常,将初始值设置为 1%{?dist},并在软件包的每个新版本中递增它。构建新 Version 软件时,重置为 1 |
Summary | 软件包摘要 |
License | 许可证 |
Source0 | 源代码压缩存档的路径或 URL。这应该指向存档的可访问且可靠的存储,如果需要,可以添加更多 SourceX 指令,每次增加数量,例如 Source1、Source2 和 Source3 等。 |
BuildArch | 如果软件包不依赖于构架,例如,如果完全使用解释的编程语言编写,请将其设置为 BuildArch: noarch。如果没有设置,软件包会自动继承构建它的机器的架构,例如 x86_64。 |
Requires | 软件在安装后需要运行的软件包列表,用逗号或空格分隔。Requires 可能有多个条目,每个条目在 SPEC 文件中独立存在。 Requires还可以约定软件的最低版本,例如:Requires: xx-yyy >= 1.8 |
Body常用指令:
指令 | 解释 |
%description | rpm中打包的软件包完整描述,可以跨行可以分段落。 |
%prep | 用于准备要构建的软件的命令或一系列命令,例如解压Source0中的文档,指令可以包含shell脚本 |
%build | 用于将软件构建到主机的命令或者一系列命令 |
%install | 将所需构建从%builddir(构建进行的位置)复制到%buildroot目录中的命令 |
%check | 用于测试软件的命令 |
%files | 将在终端用户系统中安装的文件列表 |
%changelog | 记录不同Version或Release构建之间软件包发生的更改 |
构建安装包
rpmbuild -bb --nodigest --nosignature ~/rpmbuild/SPECS/<SPEC文件名>
执行完后,~/rpmbuild/RPMS/下就是构建好的安装包
相关推荐
- windows开启telnet服务,检测远程服务端口是否可以连通
-
本文介绍windwos开启telnet服务,telnet服务一般可以用于检测远程主机的某个端口服务是否可以连通,在日常的工作中,我们经常会遇到在本地的windows检测远程服务端口是否可以连通。win...
- 仅在Web登录新华三交换机条件下启用设备Telnet登录方式
-
概述Web登录新华三交换机可以在“网络-服务”页面中启用设备Telnet服务或SSH服务,也可以在“设备-管理员”设置管理员用户的可用服务,然而,在设备Web页面中,无法设置lineVTY用户线【l...
- 思科交换机,路由器如何关闭telnet 开启ssh服务
-
SSH为建立在应用层基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。今天我们就来说说思科交换机,路...
- 智能化弱电行业常用的DOS命令,掌握了你也能成为...
-
前言在做智能化弱电项目时,前端摄像头设备安装结束后,我们会对网络摄像头进行调试,调试过程中会遇到前端摄像头没有图像或者图像出来了画面卡顿的现象。我们会采用ping命令来测试网络的连通性和网络承载能力。...
- 「干货」eNSP模拟器之配置Telnet登录
-
配置说明:配置Telnet,使R2(模拟PC)通过SW1登录到R1进行管理和配置。操作步骤:system-view##进入系统视图[Huawei]sysnameR1##改名为R1[R1]int...
- win11开启telnet服务怎么操作 win11打开telent指令是什么
-
telnet服务是我们在进行远程连接的时候,必须要打开的一项功能。但是有不少用户们不清楚在windows11系统中怎么开启telnet服务。今天小编就使用详细的图文教程,来给大家说明一下打开telen...
- 华三(H3C)交换机Telnet的远程登陆
-
一,配置交换机管理IP[SW1]vlan20//创建管理vlan[SW1]interfacevlan20//进入vlan接口[SW1-Vlanif20]ipaddress192.168....
- win10 telnet命令怎么查看端口是否打开
-
可能大家也会遇到这个问题,win10telnet命令查看端口是否打开的步骤是什么?具体方法如下:1、键盘输入快捷键WIN+R,打开运行窗口。2、输入cmd,点击确定按钮。3、弹出cmd命令行窗...
- Windows 7如何打开Telnet功能(win7系统打开telnet)
-
Windows7默认安装后是没有开启telnet客户端功能的,例如,我们在开始菜单中输入cmd,然后使用telnet命令,会弹出下图提示:‘telnet’不是内部或外部命令,也不是可运行程序或批处理文...
- 为锐捷路由器交换机开启web和telnet,实现轻松管理
-
笔者上一篇文章写了关于锐捷二层交换机配置教程,那么接下来讲一下锐捷的路由交换设备配置web、telnet技巧。同样,今天的教程也是基于命令行,比较简单,适合新手小白进行学习。准备工作配置前准备:con...
- 一文学会telnet命令的用途和使用方法
-
Telnet是一个古老的远程登录协议,可以让本地计算机获得远程计算机的工作能力。它采用了TCP的可靠连接方式,可以连接任何网络互通的远程计算机。不过由于它采用了明文传输方式,存在安全风险,目前已经很少...
- Telnet命令是什么?如何使用?(telnet命令在哪里开启)
-
telnet命令是一个常用的远程登陆工具,使用它,我们可以快捷地登陆远程服务器进行操作。那么如何使用telnet命令呢?首先,我们需要打开telnet功能,任何电脑默认是关闭此功能的,开启方式如下:打...
- win11系统如何开启telnet服务(拷贝版本)
-
我们要知道,Telnet协议是Internet远程登陆服务的标准协议,可以使用户在本地计算机上完成远程主机的工作,不过对于一些刚接触win11中文版系统的用户来说,可能还不知道telnet服务在哪...
- 如何开启telnet客户端(如何开启telnet服务)
-
Telnet协议是TCP/IP协议家族中的一员,是Internet远程登陆服务的标准协议和主要方式,Telnet是常用的远程控制Web服务器的方法。工作中经常用到telnet客户端,但在windows...
- Telnet 是什么,如何启用它?(telnet有什么用)
-
对于Internet等TCP/IP网络,Telnet是一个终端仿真程序。Telnet软件在您的系统上运行并将您的个人计算机链接到网络服务器。它将所有数据转换为纯文本这一事实被认为是易受...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- navicat无法连接mysql服务器 (65)
- 下横线怎么打 (71)
- flash插件怎么安装 (60)
- lol体验服怎么进 (66)
- ae插件怎么安装 (62)
- yum卸载 (75)
- .key文件 (63)
- cad一打开就致命错误是怎么回事 (61)
- rpm文件怎么安装 (66)
- linux取消挂载 (81)
- ie代理配置错误 (61)
- ajax error (67)
- centos7 重启网络 (67)
- centos6下载 (58)
- mysql 外网访问权限 (69)
- centos查看内核版本 (61)
- ps错误16 (66)
- nodejs读取json文件 (64)
- centos7 1810 (59)
- 加载com加载项时运行错误 (67)
- php打乱数组顺序 (68)
- cad安装失败怎么解决 (58)
- 因文件头错误而不能打开怎么解决 (68)
- js判断字符串为空 (62)
- centos查看端口 (64)