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 字面描述 题面翻译 题面描述 两只足球队比赛,现给你进…...

wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
【AI学习】三、AI算法中的向量
在人工智能(AI)算法中,向量(Vector)是一种将现实世界中的数据(如图像、文本、音频等)转化为计算机可处理的数值型特征表示的工具。它是连接人类认知(如语义、视觉特征)与…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...

算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...

人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...