Linux软件管理RPM
目录
前言
RPM软件管理程序:rpm
RPM默认安装的路径
PRM讲解前准备工作
RPM安装(install)
RPM查询(query)
RPM卸载(erase)
RPM升级与更新(upgrade/freshen)
RPM重建数据库(rebuilddb)
软件的属性依赖问题
前言
RPM全名是 RedHat Package Manager。顾名思义,这个软件管理的机制是由Red Hat公司发展出来的
RPM是以一种数据库记录的方式来将你所需要的软件安装到你的Linux系统的一套软件管理机制,它将你要安装的软件先编译过,并且打包成为RPM机制的文件,通过打包好的软件里面默认的数据库,记录这个软件安装时候必须具备的依赖属性软件
当在你的Linux主机安装时,RPM会先依照软件里面的数据查询Linux主机的依赖属性软件是否满足,若满足则予以安装,若不满足则不予以安装,这个就是RPM类型的文件最为人所诟病的软件的属性依赖问题
安装的时候会将该软件的信息整个写入RPM的数据库中,以便未来的查询、验证与反安装
RPM机制的优点:
- RPM内包含已经编译过的程序和配置文件等数据,用户不需要重新编译
- RPM在被安装前,会先检查系统的硬盘容量、操作系统版本等,可避免文件被错误安装
- RPM文件本身提供软件版本信息、依赖属性检查、软件用途说明、软件所含文件等信息,便于了解文件
- RPM管理的方式使用数据库记录RPM文件的相关参数,便于升级、删除、查询和验证
RPM机制的问题:
- 软件安装的环境必须与打包时的环境需求一致或相当
- 需要满足软件的依赖属性需求
- 反安装时需要特别小心,最底层的软件不可先删除,否则可能造成整个系统的问题
SRPM的作用就是为了解决我们无法安装环境需求不同的RPM软件包
SRPM的全名为Source RPM,也就是这个RPM文件里面含有源代码,并且仍然含有该软件所需要的依赖性软件说明以及所有RPM文件所提供的数据,不同的是它也提供了参数配置文件(configure与makefile),因此我们在安装该软件时需要先将该软件以RPM管理的方式编译(此时SPRM会被编译成为RPM文件),然后将编译完成的RPM文件安装到Linux系统当中
我们可以通过修改SRPM内的参数配置文件,然后重新编译产生能适合我们Linux环境的RPM文件
| 文件格式 | 文件名格式 | 直接安装与否 | 内含程序类型 | 可否修改参数并编译 |
| RPM | xxx.rpm | 可 | 已编译 | 不可 |
| SRPM | xxx.src.rpm | 不可 | 未编译的源代码 | 可 |
RPM软件管理程序:rpm
RPM默认安装的路径
若环境检查无误,等安装完毕后,该软件相关信息就会被写入/var/lib/rpm/目录下的数据库文件中,未来我们有任何软件升级的需求,版本之间的比较就是来自于这个数据库,而如果你想要查询系统已经安装的软件,也是从这里查询的。同时,目前的RPM也提供数字签名信息,这些数字签名也是在这个目录内记录的
| /etc | 一些配置文件放置的目录,例如/etc/crontab |
| /usr/bin | 一些可执行文件 |
| /usr/lib | 一些程序使用的动态函数库 |
| /usr/share/doc | 一些基本的软件使用手册与说明文件 |
| /usr/share/man | 一些 man page 文件 |
PRM讲解前准备工作
安装软件是root的工作,所以我们需要root身份才能够使用rpm命令
/dev/sr0代表光驱设备(也就是RHEL9的安装光盘),此目录下的文件没有办法直接使用,必须先挂载
/mnt/BaseOS 业务软件或第三方软件
/mnt/AppStream 操作系统相关的,比较基础的软件
进入BaseOS中
进入Packages中
我们可以在这个目录中发现许多RMP的数据包
我们拿其中的一个文件名来讲解 zsh-5.8-9.el9.x86_64.rpm
zsh -5.8- 9 .el9.x86_64 .rpm 软件名称 软件的版本信息 发布的次数 适合的硬件平台 扩展名
RPM安装(install)
rpm -ivh package
选项与参数:
-i:install安装的意思
-v:查看更详细的安装信息
-h:显示安装进度
安装zsh-5.8-9.el9.x86_64.rpm
![]()
当我们安装当中发现问题,或已经知道会发生的问题,而还是执意要安装软件时,可以使用以下参数强制安装上去

尽量不要使用暴力安装法,就是--force去强制安装,因为可能会发生很多不可预期的问题
RPM查询(query)
rmp -选项
选项与参数:
-q:仅查询,后面接的软件名是否有安装
-qa:列出已经安装在本机上的所有软件名称
-qi:列出该软件的详细信息(information)
-ql:列出该软件所有的文件与目录所在完整文件名(list)
-qc:列出该软件的所有配置文件(找出在/etc/下面的文件名而已)
-qd:列出该软件的所有说明文件(找出与man有关的文件而已)
-qf:由后面接的文件名,找出该文件属于哪一个已安装的软件
-qR:列出该软件有关的依赖软件所含的文件(Required的意思)
查询安装前后,zsh开头的软件是否被安装了

RPM卸载(erase)
删除的选项很简单,通过-e即可删除
要注意的是,卸载过程一定要由最上层往下解除

RPM升级与更新(upgrade/freshen)
用RPM来升级非常简单,使用-Uvh或-Fvh即可
- -Uvh:后面接的软件即使没有安装过,则系统将予以安装;若后面接的软件有安装过旧版,则系统自动更新至新版
- -Fvh:如果后面接的软件并未安装到你的Linux系统上,则该软件不会被安装;亦即只有已安装至你Linux系统内的软件才会被升级
RPM重建数据库(rebuilddb)
由于RPM文件常常会安装、删除、更新等,某些操作会导致RPM数据库/var/lib/rpm/内的文件损坏,如果如此的话,我们可以使用--rebuilddb选项来重建一下数据库
软件的属性依赖问题

我们可以发现,我们在安装此软件包时,会发生错误 即此软件包需基于其他软件包
解决方案:YUM机制
相关文章:
Linux软件管理RPM
目录 前言 RPM软件管理程序:rpm RPM默认安装的路径 PRM讲解前准备工作 RPM安装(install) RPM查询(query) RPM卸载(erase) RPM升级与更新(upgrade/freshen) RPM重…...
01背包问题
背包问题的递归解决过程如下: 第一步明确思路 在解决问题之前,为描述方便,首先定义一些变量:Vi表示第 i 个物品的价值,Wi表示第 i 个物品的体积,定义V(i,j):当前背包容量 j,前 i 个…...
14_FreeRTOS二值信号量
目录 信号量的简介 队列与信号量的对比 二值信号量 二值信号量相关API函数 实验源码 信号量的简介 信号量是一种解决同步问题的机制,可以实现对共享资源的有序访问。 假设有一个人需要在停车场停车 1.首先判断停车场是否还有空车位(判断信号量是否有资源) 2.停车场正好…...
JavaScript随手笔记---轮播图(点击切换)
💌 所属专栏:【JavaScript随手笔记】 😀 作 者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &#…...
机器人学 markdown数学公式常用语法
参考链接1 本文包含了markdown常用的数学公式,按照目录可查询选用 初始类 行内数学公式均用两个符号包裹行间数学公式均用两个符号包裹 行间数学公式均用两个符号包裹行间数学公式均用两个符号包裹,用于表示重要的、需在行间单独列出的公式 $行内数学…...
如何使用 Python 语言来编码和解码 JSON 对象
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写。 JSON 函数 使用 JSON 函数需要导入 json 库:import json。 函数 描述 json.dumps 将 Python 对象编码成 JSON 字符串 json.loads 将已编码的 JSON 字符串解码为 Pyth…...
【蓝桥云课】求正整数的约数个数
一、求正整数n的约数个数 方法一(常用算法):从1到n逐一判断其能否整除n,若能整除n即为n的约数,否则不是n的约数。 方法二:从1到n\sqrt{n}n逐一判断是否为n的约数,当n\sqrt{n}n为n的约数时,个数加1&…...
刷题记录: wannafly25 E 牛客NC19469 01串 [线段树维护动态dp]
传送门:牛客 题目描述: Bieber拥有一个长度为n的01 串,他每次会选出这个串的一个子串作为曲谱唱歌,考虑该子串从左 往右读所组成的二进制数P。 Bieber每一秒歌唱可以让P增加或减少 2 的 k次方(k由Bieber选 定),但必须…...
懂九转大肠的微软New Bing 内测申请教程
最近微软的New Bing开放内测了,网上已经有拿到内测资格的大佬们对比了ChatGPT和New Bing。对比结果是New Bing比ChatGPT更强大。来看看具体对比例子吧 1.时效性更强 ChatGPT的库比较老,跟不上时事,比如你问它九转大肠的梗,ChatG…...
WRAN翻译
基于小波的图像超分辨残差注意力网络 Wavelet-based residual attention network for image super-resolution 代码: https://github.com/xueshengke/WRANSR-keras 摘要: 图像超分辨率技术是图像处理和计算机视觉领域的一项基础技术。近年来,…...
ROS学习笔记——第二章 ROS通信机制
主要跟着[1]学习ros::Rate r(1); //错误,应改为ros::Rate r(10);[2]对Topic通信打的比方很形象,便于理解记忆。[3]有整个过程的图片,对于初学者更加友好[4]对发布者的代码注释非常好,方便进一步学习此外CMake官方文档可以查询相关…...
MacOS Pytorch 机器学习环境搭建
学习 Pytorch ,首先要搭建好环境,这里将采用 Anoconda Pytorch PyCharm 来一起构建 Pytorch 学习环境。 1. Anoconda 安装与环境创建 Anoconda 官方介绍:提供了在一台机器上执行 Python/R 数据科学和机器学习的最简单方法。 为什么最简单…...
项目——博客系统
文章目录项目优点项目创建创建相应的目录,文件,表,导入前端资源实现common工具类实现拦截器验证用户登录实现统一数据返回格式实现加盐加密类实现encrypt方法实现decrypt方法实现SessionUtil类实现注册页面实现前端代码实现后端代码实现登录页…...
PHP(14)会话技术
PHP(14)会话技术一、概念二、分类三、cookie技术1. cookie的基本使用2. cookie的生命周期3. cookie的作用范围4. cookie的跨子域5. cookie的数组数据四、session1. session原理2. session基本使用3. session配置4. 销毁session一、概念 HTTP协议是一种无…...
对JAVA 中“指针“理解
对于Java中的指针,以下典型案例会让你对指针的理解更加深刻。 首先对于: 系统自动分配对应空间储存数字 1,这个空间被变量名称b所指向即: b ——> 1 变量名称 空间 明…...
功率放大器在MEMS微结构模态测试研究中的应用
实验名称:功率放大器在MEMS微结构模态测试研究中的应用研究方向:元器件测试测试目的:随着MEMS器件在各个领域中广泛应用,对微结构进行模态测试获得其动态特性参数对微结构的设计、仿真、制造、以及质量控制和评价等方面具有十分重…...
【算法基础】字典树(Trie树)
一、Trie树原理介绍 1. 基本概念 Trie 树,也叫“字典树”。顾名思义,它是一个树形结构。它是一种专门处理字符串匹配的数据结构,用来解决在一组字符串集合中快速查找某个字符串的问题。【高效存储和查找字符串集合的数据结构】,存储形式如下: 2. 用数组来模拟Trie树的…...
MyBatis 插件 + 注解轻松实现数据脱敏
问题在项目中需要对用户敏感数据进行脱敏处理,例如身份号、手机号等信息进行加密再入库。解决思路就是:一种最简单直接的方式,在所有涉及数据敏感的查询到对插入时进行密码加解密方法二:有方法一到出现对所有重大问题的影响&#…...
MySQL优化篇-MySQL压力测试
备注:测试数据库版本为MySQL 8.0 MySQL压力测试概述 为什么压力测试很重要?因为压力测试是唯一方便有效的、可以学习系统在给定的工作负载下会发生什么的方法。压力测试可以观察系统在不同压力下的行为,评估系统的容量,掌握哪些是重要的变化…...
CF43A Football 题解
CF43A Football 题解题目链接字面描述题面翻译题面描述题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1样例 #2样例输入 #2样例输出 #2代码实现题目 链接 https://www.luogu.com.cn/problem/CF43A 字面描述 题面翻译 题面描述 两只足球队比赛,现给你进…...
从NIST到Interatomic Repository:金属体系L-J势参数高效检索与验证指南
1. 金属模拟中的L-J势参数为何如此重要 我第一次用LAMMPS模拟镁合金拉伸过程时,发现结果和实验数据差了十万八千里。折腾了两周才发现问题出在Lennard-Jones势参数上——当时随便找了个文献值就用,结果模拟出的晶格常数比实际小了15%。这个教训让我明白…...
Ctool JSON工具完全指南:从格式化到Schema生成的完整流程
Ctool JSON工具完全指南:从格式化到Schema生成的完整流程 【免费下载链接】Ctool 程序开发常用工具 chrome / edge / firefox / utools / windows / linux / mac 项目地址: https://gitcode.com/gh_mirrors/ct/Ctool Ctool是一款功能强大的程序开发常用工具&…...
LaTeX2Word-Equation:3秒搞定网页公式到Word的终极解决方案
LaTeX2Word-Equation:3秒搞定网页公式到Word的终极解决方案 【免费下载链接】LaTeX2Word-Equation Copy LaTeX Equations as Word Equations, a Chrome Extension 项目地址: https://gitcode.com/gh_mirrors/la/LaTeX2Word-Equation 还在为复制数学公式而头疼…...
告别虚拟机臃肿:用QEMU用户模式(qemu-user)快速运行跨架构程序的完整指南
告别虚拟机臃肿:用QEMU用户模式(qemu-user)快速运行跨架构程序的完整指南 在开发跨平台应用或研究嵌入式系统时,开发者经常需要处理不同CPU架构的二进制文件。传统解决方案是启动完整的虚拟机,但这会消耗大量系统资源&…...
别再只盯着Modbus了!聊聊MBUS总线在智慧水务中的那些坑与最佳实践
MBUS总线在智慧水务中的实战指南:从协议解析到避坑实践 当智慧水务项目进入实施阶段,技术选型团队往往会陷入协议选择的困境。Modbus以其通用性成为首选,LoRa凭借无线优势占据一席之地,而MBUS(Meter-Bus)这…...
AI应用安全实战:基于Rebuff框架构建提示词注入防御体系
1. 项目概述:一个为AI应用量身定制的“输入防火墙”最近在折腾AI应用安全,特别是针对提示词注入(Prompt Injection)的防御,发现了一个非常对味的开源工具——protectai/rebuff。简单来说,Rebuff是一个专门设…...
ComfyUI-Manager终极指南:快速优化AI工作流性能的完整方案
ComfyUI-Manager终极指南:快速优化AI工作流性能的完整方案 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable various c…...
SAP 利润中心(Profit Center, PCA)深度解析:定义、核算、数据归集与实例
SAP 利润中心(Profit Center, PCA)深度解析:定义、核算、数据归集与实例利润中心是 SAP 管理会计(CO-PCA) 核心组织单元,是面向内部经营考核的虚拟核算主体,可独立计算收入、成本、费用与利润&a…...
基于MCP协议与Playwright的AI智能体网页抓取工具部署与实战
1. 项目概述:一个为AI智能体打造的“网页抓取工具箱” 如果你正在开发或使用基于MCP(Model Context Protocol)的AI智能体,并且经常需要让它们从网页上获取结构化数据,那么你很可能已经遇到了一个核心痛点: …...
词源探秘|从orient到panorama:解码英语单词背后的文明密码
1. 从日出东方到现代导航:ori词根的文明之旅 当古人第一次观察到太阳从东方升起时,拉丁语用"oriri"(升起)记录这个现象。这个词根演变为ori,像一条暗线贯穿人类文明: orient(东方&a…...



