Linux下RPM软件包管理

news2024/11/15 10:48:51

目录

  • 1、软件包管理介绍
    • 1.1、软件包分类
    • 1.2、源码包
    • 1.3、RPM包
  • 2、RPM包管理-包命名和依赖性
    • 2.1、RPM命名规则
    • 2.2、RPM包依赖性
  • 3、RPM包管理-安装升级和与卸载
    • 3.1、包全名与包名
    • 3.2、RPM安装
    • 3.3、RPM包升级
    • 3.4、卸载
  • 4、RPM包管理-查询
    • 4.1、查询是否安装
    • 4.2、查询软件包详细信息
    • 4.3、查询包中文件安装位置
    • 4.4、查询系统文件属于哪个rpm包
    • 4.5、查询软件包的依赖性
  • 5、RPM包管理-校验和文件提取
    • 5.1、RPM包校验
    • 5.2、RPM包中文件提取


1、软件包管理介绍

1.1、软件包分类

  1. 源码包(就是直接的代码)
    a. 脚本安装包(多了个安装界面,但是方便)
  2. 二进制包(就是源码经过编译后的文件)(别名RPM包或系统默认包)

1.2、源码包

优点
• 开源,可以直接修改源代码
• 自由选择所需功能
• 编译安装,更加稳定效率也搞
• 卸载方便(直接删除源码包安装目录)
缺点
• 安装过程步骤多,容易出现拼写错误
• 编译过长较长,安装比二进制安装时间长
• 因为是编译安装,安装过程中一旦出错新手很难解决

1.3、RPM包

二进制包优点
• 包管理系统简单,只通过几个命令就可以实现安装、升级、卸载等操作
• 安装速度比源码包快很多(和win时间差不多)
缺点
• 进过编译,看不到源代码
• 功能选择不如源代码灵活
• 依赖性(有一些软件需要别的软件支撑,导致必须只能安装支撑软件)

2、RPM包管理-包命名和依赖性

2.1、RPM命名规则

例如包全名:httpd-2.2.15-15.e16.centos.1.i686.rpm

名称说明
httpd软件包名
2.2.15软件版本
15软件发布次数
el6.centos这个版本适合在el6和centos俩个linux版本当中安装 不写适合的linux平台就代表都可以安装
i686适合我们的686微机平台(硬件平台) noarch-表示任何硬件平台都可以安装
rpmrpm包扩展名

2.2、RPM包依赖性

• 树形依赖:a->b->c
安装a需要b,安装b需要c,若依我们先安装c再安装b最后安装a。卸载先卸载a再卸载b最后卸载c
• 环形依赖:a->b->c->a
把软件把a、b、c用命令同时装
• 模块依赖:以.so.数字结尾的都是库依赖
模块依赖查询网站:www.rpmfind.net

3、RPM包管理-安装升级和与卸载

3.1、包全名与包名

包全名:操作的包是没有安装的软件包时,使用包全名。而且要注意路径
包名:操作已经安装的软件包时,使用包名。是搜索/var/lib/rpm中的数据库

3.2、RPM安装

语法rpm-ivh 包全名

参数说明
-i(install)安装
-v(verbose)显示详细信息
-h(hash)显示进度
–nodeps不检测依赖性

在这里插入图片描述

上图就是依赖下面俩个、就需要先安装下面的包

3.3、RPM包升级

语法:rpm -Uvh 包全名

参数说明
-U(upgrade)升级

3.4、卸载

语法:rpm -e 包名

参数说明
-e(erase)卸载
–nodeps不检查依赖性

4、RPM包管理-查询

4.1、查询是否安装

命令:rpm -q 包名

参数说明
-q查询(query)
-a所有(all)

命令:rpm -qa

参数说明
-a所有(all)

4.2、查询软件包详细信息

命令:rpm qi 包名

参数说明
-i查询软件信息(information)
-p查询未安装包信息(package) 查询未安装需要写包全名

4.3、查询包中文件安装位置

命令:rpm -ql 包名

参数说明
-l列表(list)
-p查询未安装包信息

例如:rpm -qlp zsh-4.3.11-4.el6.centos.2.x86_64.rpm 可以查询未安装软件想要的安装位置

4.4、查询系统文件属于哪个rpm包

命令:rpm -qf 系统文件名

参数说明
-f查询系统文件属于哪个软件包(file)

4.5、查询软件包的依赖性

命令:rpm -qR 包名

参数说明
-R查询软件包的依赖性(requires)
-p查询未安装包的信息(package)

5、RPM包管理-校验和文件提取

5.1、RPM包校验

把包装完之后先把特征记录下来,然后需要的时候把现在的文件和原先的文件做个比较,比较有什么变化,看是不是我做的,判断文件是否被人修改过了
命令:rpm -V 已安装的包名称

参数说明
-V :校验指定RPM包中的文件(verify)

在这里插入图片描述
如上图就是修改过的
S 5 T
验证内容中的8个信息的具体内容如下:

参数说明
S文件大小是否发生改变
M文件的类型或文件的权限(rwx)是否被修改
5文件MD5校验和是否改变(可以看做文件内容是否被修改)
D设备的中,从代码是否改变
L文件路径是否发生改变
U文件的属主(所有者)是否改变
G文件的属组是否改变
T文件的修改时间是否发生改变

上图 的c是文件类型

参数文件类型
c配置文件(config file)
d普通文档(documentation)
g‘鬼’文件(ghost)很少见,就是该文件不应该被这个RPM包所包含
l授权文件(license file)
r描述文件(read me)

5.2、RPM包中文件提取

提取一个包中指定文件
用于一个文件丢失或者损坏直接在下载这个包内的一个文件就好了
例如:rpm2cpio 包全名 | cpio -idv.表示文件绝对路径

命令:cpio 选项 < [文件|设备]

参数说明
-icopy-in模式,还原
-d还原时自动新建目录
-v显示还原过程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/690463.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Gitlab将本地代码推送到远程空仓库

目录 引言 1、设置Git为源代码管理插件 2、创建Git仓库 3、设置多个远程仓库 引言 如果我们的本地代码想上传到公司内部的服务器&#xff0c;首先我们需要在VS2022中创建Git仓库&#xff0c;然后设置远程仓库的地址&#xff0c;才能将本地代码推送到远端。在远端会根据你本地…

表格式表单-table式from表单-合并行-合并列

效果: 使用【colspan】合并行 和【rowspan】合并列 html: <!-- 添加或修改报告数据库对话框 --><el-dialog :title"title" :visible.sync"open" width"1500px" append-to-body><el-form ref"form" :model"form&q…

Android Jetpack Compose之Checkbox的使用

Android Jetpack Compose 是一个现代化的 UI 工具包&#xff0c;为开发者提供了一种声明式的方式来构建出美观且功能强大的 Android 应用。在本文中&#xff0c;我们将详细介绍其中的一个重要组件——Checkbox。 一. Checkbox 简介 Checkbox 是 Jetpack Compose 中的一个组件&…

STM32单片机(三)第四节:GPIO输入练习2(光敏传感器控制蜂鸣器)

❤️ 专栏简介&#xff1a;本专栏记录了从零学习单片机的过程&#xff0c;其中包括51单片机和STM32单片机两部分&#xff1b;建议先学习51单片机&#xff0c;其是STM32等高级单片机的基础&#xff1b;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 &#xff1a;适用于想要…

一文学会如何使用Docker

Docker常见使用 1、Docker安装 ## 下载阿里源repo文件 $ curl -o /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo $ curl -o /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo$ yum clean …

详解8种不同类型的防火墙

什么是防火墙&#xff1f; 防火墙是一种监视网络流量并检测潜在威胁的安全设备或程序&#xff0c;作为一道保护屏障&#xff0c;它只允许非威胁性流量进入&#xff0c;阻止危险流量进入。 防火墙是client-server模型中网络安全的基础之一&#xff0c;但它们容易受到以下方面的攻…

选择低代码平台的正确方式

传统开发模式早已不能满足大多数追求效率的企业的要求&#xff0c;低代码平台的出现正是可以缓解相应的开发压力&#xff0c;作为使用者我们更应该擦亮眼睛&#xff0c;选择合适的平台产品&#xff0c;充分利用新技术带来的新价值。小编在以前的文章有介绍过低代码平台应该如何…

php中的双引号与单引号的基本使用

字符串,在各类编程语言中都是一个非常重要的数据类型 网页当中的图片,文字,特殊符号,HTMl标签,英文等都属于字符串 PHP字符串变量用于存储并处理文本, 在创建字符串之后&#xff0c;我们就可以对它进行操作。我们可以直接在函数中使用字符串&#xff0c;或者把它存储在变量中 字…

360手机命令行进入fastboot线刷模式 360手机刷机

360手机命令行进入fastboot线刷模式 360手机刷机 参考&#xff1a;360手机-360刷机360刷机包twrp、root 360刷机包360手机刷机&#xff1a;360rom.github.io 【前言】 因360手机特殊&#xff1b;且因机器情况而异&#xff1b;导致360手机进不去fastboot线刷模式、360手机进…

基于Java+Swing实现坦克大战游戏

基于JavaSwing实现坦克大战游戏 一、系统介绍二、功能展示三、其他系统四、获取源码 一、系统介绍 此系统是使用Java语言实现坦克大战游戏程序&#xff0c;玩家通过连接访问进入游戏&#xff0c;通过操纵坦克来守卫基地&#xff0c;玩家还可以获得超级武器来提升坦克的属性&am…

点云特征描述子概述、PFH描述子提取

1、 6种点云特征描述子简概 NARF&#xff08;Normal Aligned Radial Feature&#xff09;特征点描述子&#xff1a;NARF描述子是一种基于法线对齐的径向特征描述子。它通过将点云表面分割为小的网格单元&#xff0c;并计算每个单元中的法线直方图&#xff0c;从而提取特征。NA…

【网站监控】如何监控自己的网站(接口)

网站监控-如何监控自己的网站 前言一、开始使用1、使用API进行监控数据采集?2、请求参数3、如何查看监控效果? 二、注意点 前端必备工具&#xff08;免费图床、API、chatAI等&#xff09;推荐网站LuckyCola: https://luckycola.com.cn/ 前言 网站接口监控是指对接口的状态进…

Keil为啥比IAR更受欢迎?

关注星标公众号&#xff0c;不错过精彩内容 作者 | strongerHuang 微信公众号 | strongerHuang 最近交流群在讨论【选择Keil和IAR的问题】&#xff0c;这就顺便展开来说下。 你可能觉得Keil、IAR这种集成开发环境界面比较古老&#xff0c;又不好用。 但是&#xff0c;这里告诉大…

ConcurrentModificationException异常分析与解决

ConcurrentModificationException异常分析与解决 1、场景重现&#xff0c;制造ConcurrentModificationException异常 Testpublic void ConcurrentModificationExceptionTest() {JSONArray jsonArray new JSONArray();JSONObject jsonObject new JSONObject();jsonObject.put…

改写cocos2d的ProgressTimer实现任意起始点的Radial进度条

解释一下要做的事&#xff1a; 原生ProgressTimer控件的进度起始点只能是在&#xff08;0.5&#xff0c;1&#xff09;的位置&#xff0c;如下&#xff1a; 我们要改成可以将矩形边上的任意点作为起始点&#xff0c;如下&#xff1a; 首先讲一下绘制的逻辑&#xff1a; 先根…

3: PCIe BDF(Bus,Device,Function)

目录 1.概述 2.BUS&#xff1a;总线号 3.Device&#xff1a;设备号 4.Function&#xff1a;功能号 1.概述 PCIe总线中的每一个功能都有一个唯一的标识符与之对应。这个标识符就是BDF&#xff08;Bus&#xff0c;Device&#xff0c;Function&#xff09; 2.BUS&#xff1a;总…

基于Java客户管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a; ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精…

SSD202D-GPIO调试驱动-三

前面又两个介绍 SSD202D-GPIO调试驱动-一 SSD202D-GPIO调试驱动-二 主要是调试方法: insmod gpio_lonbon.ko 然后可以再看到一下节点 //出现以下节点 proc/gpio-lb/dbg sys/kernel/debug/gpio-lb/debug sys/class/gpio-lb/ dev/gpio-lb 然后

python中MongoEngine简单使用

python中MongoEngine简单使用 1 MongoEngine介绍 MongoEngine是一个处理MongoDB的对象文档映射器。pymongo是非面向对象的方式操作数据。 MongoEngine开发文档 # 开发文档 http://docs.mongoengine.org/index.html# 数据类型 http://docs.mongoengine.org/apireference.htm…

Excel 2019访问SQL Server数据库的实现过程

源之&#xff1a;https://vip.kingdee.com/article/288066926977041920?productLineId11 在日常ERP系统实施过程中&#xff0c;往往会遇到客户的一些个性化需求&#xff0c;比如有些客户习惯用Excel电子表格来查看ERP系统中的数据&#xff0c;业余拓展学习了一下&#xff0c;借…