当前位置: 首页 > news >正文

大数据讲课笔记1.7 软件包管理器RPM与yum

文章目录

  • 零、学习目标
  • 一、导入新课
  • 二、新课讲解
    • (一)使用RPM软件包管理器
      • 1、RPM安装软件包
        • (1)安装单个rpm软件包
          • 任务:利用RPM安装JDK8u221
        • (2)安装多个多个rpm包
        • (3)安装网络上的rpm包
      • 2、RPM 更新与升级软件包
        • (1)RPM更新软件包
          • 任务:将JDK8u221更新到JDK8u231
        • (2)RPM升级软件包
          • 任务:升级安装JDK8u231
      • 3、RPM查询软件包
        • (1)RPM 查询原理
        • (2)查询选项参数说明
        • (3)实战练习
          • 任务1、采用参数`-q`进行查询
          • 任务2、采用参数`-qa`进行查询
          • 任务3、采用参数`-qi`进行查询
          • 任务4、采用参数`-ql`进行查询
          • 任务5、采用参数`-qc`进行查询
          • 任务6、采用参数`-qR`进行查询
          • 任务7、采用参数`-qf`进行查询
      • 4、RPM卸载软件包
        • (1)命令格式
        • (2)操作实例
          • 任务:卸载已安装的JDK8u231
    • (二)使用yum软件包管理器
      • 1、yum客户端
      • 2、yum服务器端
      • 3、yum命令说明表
      • 4、yum命令实战练习
        • 任务1、安装java
        • 任务2、搜索java
        • 任务3、列出java
        • 任务4、查询java
        • 任务5、更新java
        • 任务6、卸载java
  • 三、归纳总结
  • 四、上机操作
    • 课堂练习1
    • 课堂练习2

零、学习目标

  1. 能使用软件包管理器RPM查看、安装、更新、删除软件
  2. 能使用软件包管理器yum查看、安装、更新、删除软件

一、导入新课

  • 在Linux系统上安装软件,利用软件包管理器可以简化操作。本次课程我们要学习两种软件包管理器:RPM和yum。

二、新课讲解

(一)使用RPM软件包管理器

  • RPM(Redhat Package Manager )是一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。rpm 命令遵循GPL协议且功能强大的包管理,它可以建立、安装、请求、确认、和卸载软件包。间接地提升了Linux 的易用性。

1、RPM安装软件包

(1)安装单个rpm软件包

  • 语法格式:rpm -ivh package_name
任务:利用RPM安装JDK8u221
  • 下载JDK8u221的rpm软件包
  • 链接:https://pan.baidu.com/s/1fYKNNM02GBh-cOUuajkBIg 提取码:yg53
    在这里插入图片描述
  • 上传JDK8u221的rpm软件包到虚拟机/opt目录
    在这里插入图片描述
  • 执行命令:rpm -ivh jdk-8u221-linux-x64.rpm
    在这里插入图片描述
  • 执行命令:java -version,查看JDK版本
    在这里插入图片描述

(2)安装多个多个rpm包

  • 语法格式:rpm -ivh package_name1, package_name2, package_name3(允许使用通配符*

(3)安装网络上的rpm包

  • 语法格式:rpm -ivh http://website.name/path/pkgname.rpm

2、RPM 更新与升级软件包

(1)RPM更新软件包

  • 语法格式:rpm -Uvh <package_name>
  • 采用选项-Uvh,后面接的软件,如果原本未安装,则直接安装,原本已安装时,则直接升级
任务:将JDK8u221更新到JDK8u231
  • 上传JDK8u231的rpm软件包到/opt目录
    在这里插入图片描述
  • 将JDK8u221升级到JDK8u231(-U: Update),执行命令:rpm -Uvh jdk-8u231-linux-x64.rpm
    在这里插入图片描述
  • 执行命令:java -version,查看目前JDK版本
    在这里插入图片描述
  • 查看JDK8u231安装位置
    在这里插入图片描述

(2)RPM升级软件包

  • 语法格式:rpm -Fvh <pacakge_name>
  • 采用选项-Fvh,后面接的软件,如果原本未安装,则不会安装,原本已安装时,则直接升级
  • 将JDK8u231卸载,执行命令:rpm -e jdk1.8-1.8.0_231-fcs.x86_64
    在这里插入图片描述
任务:升级安装JDK8u231
  • 采用-Fvh升级方式来安装JDK8u231
    在这里插入图片描述
  • 大家可以看到,根本没有安装JDK8u231。
  • 如果要安装JDK8u231,可以有两种安装方式:(1)-ivh;(2)-Uvh,之前我们已经采用-ivh方式安装过JDK8u221,现在我们采用-Uvh方式安装JDK8u231。
    在这里插入图片描述

3、RPM查询软件包

(1)RPM 查询原理

  • RPM在查询时,其实查询的地方是在/var/lib/rpm 这个目录下的数据库文件。
    在这里插入图片描述

(2)查询选项参数说明

选项参数作用描述
-q(query)仅查询,后面接的软件名称是否有安装
-qa(query all)列出所有已经安装在本机Linux系统上的软件名称
-qi(query information)列出该软件的详细信息,包含开发商、版本和说明等
-ql(query list)列出该软件所有的文件与目录所在完整文件名
-qc(query config)列出该软件的所有配置文件
-qd(query description)列出该软件的所有说明文件
-qR(query relation)列出和该软件有关的相依软件所含的文件
-qf(query file)由后面接的文件名,找出该文件属于哪一个已安装的软件
-qp(query preview)查询某个RPM 文件内含有的信息

(3)实战练习

任务1、采用参数-q进行查询
  • 执行命令:rpm -q jdk1.8-1.8.0_231-fcs.x86_64
    在这里插入图片描述
  • 如果查询的软件已安装,那么显示该软件的全名,否则显示:未安装软件包 XXX(英文版:package XXX is not installed)
任务2、采用参数-qa进行查询
  • 查询已安装的RPM软件的前五个和最后五个
    在这里插入图片描述
  • 查询某个或某些已安装的rpm软件
    在这里插入图片描述
任务3、采用参数-qi进行查询
  • 查询已安装的JDK8u231的详情,执行命令:rpm -qi jdk1.8-1.8.0_231-fcs.x86_64
    [root@localhost software]# rpm -qi jdk1.8-1.8.0_181
任务4、采用参数-ql进行查询
  • 查询已安装的JDK8u231的文件列表,但是文件实在太多,只抓取前10个
  • 执行命令:rpm -ql jdk1.8-1.8.0_231-fcs.x86_64 | head -10
    在这里插入图片描述
任务5、采用参数-qc进行查询
  • 查询已安装的JDK8u231的配置文件,执行命令:rpm -qc jdk1.8-1.8.0_231-fcs.x86_64
    在这里插入图片描述
任务6、采用参数-qR进行查询
  • 查询已安装的JDK8u231所依赖的软件,执行命令:rpm -qR jdk1.8-1.8.0_231-fcs.x86_64在这里插入图片描述
任务7、采用参数-qf进行查询
  • 查询文件/usr/java/jdk1.8.0_231-amd64/man/man1/xjc.1属于哪一个已安装的软件
  • 执行命令:rpm -qf /usr/java/jdk1.8.0_231-amd64/man/man1/xjc.1
    在这里插入图片描述
  • 说明:-qf参数后面接的文件名一定是安装的原始路径,如果再将它拷贝到其它位置,则无法判断该文件属于那个软件。

4、RPM卸载软件包

(1)命令格式

  • rmp -e # e: erase(删除)

(2)操作实例

任务:卸载已安装的JDK8u231
  • 执行命令:rpm -e jdk1.8-1.8.0_231-fcs.x86_64
    在这里插入图片描述
  • 执行命令:java -version,就会报错
    在这里插入图片描述

(二)使用yum软件包管理器

1、yum客户端

  • 客户端每次使用yum调用install或者search的时候,都会去解析/etc/yum.repos.d下面所有以.repo结尾的文件,这些配置文件指定了yum服务器的地址。
  • 执行命令:ll /etc/yum.repos.d
    在这里插入图片描述

2、yum服务器端

  • 所有要发行的rpm包都放在yum服务器上以提供别人来下载,rpm包根据kernel的版本号,cpu的版本号分别编译发布。
  • yum服务器只要提供简单的下载就可以了,ftp或者httpd的形式都可以。
  • yum服务器有一个最重要的环节就是整理出每个rpm包的基本信息,包括rpm包对应的版本号,conf文件,binary信息,以及很关键的依赖信息。
  • 在yum服务器上提供了createrepo工具,用于把rpm包的基本概要信息做成一张"清单",这张"清单"就是描述每个rpm包的spec文件中信息。

3、yum命令说明表

操作命令
安装软件yum install XXX
yum -y install XXX
搜索软件yum search XXX
列出软件yum list
查询软件yum info XXX
更新软件yum update XXX
卸载软件yum remove XXX

4、yum命令实战练习

任务1、安装java

  • 执行命令:yum -y install java
    在这里插入图片描述
  • 执行命令:java -version,查看JDK版本
    在这里插入图片描述

任务2、搜索java

  • 执行命令:yum search java
    在这里插入图片描述

任务3、列出java

  • 执行命令:yum list | grep java
    在这里插入图片描述

任务4、查询java

  • 执行命令:yum info java-1.8.0-openjdk.x86_64
    在这里插入图片描述

任务5、更新java

  • 执行命令:yum update java
    在这里插入图片描述

任务6、卸载java

  • 执行命令:yum -y remove java
    在这里插入图片描述

三、归纳总结

  • 回顾本节课所讲的内容,并通过提问的方式引导学生解答问题并给予指导。

四、上机操作

  • 形式:单独完成
  • 题目:使用rpm和yum软件包管理器
  • 要求:按照讲课笔记要求完成,记录操作过程,写一篇CSDN博客

课堂练习1

  • 下载jdk-8u231-linux-x64.rpm
  • 利用rmp安装jdk的rpm包
  • 编写Java程序,功能是显示“Hello RPM”
  • 利用rpm卸载jdk

课堂练习2

  • 利用yum安装jdk
  • 编写Java程序,功能是显示“Hello yum”
  • 利用yum卸载jdk

相关文章:

  • Python数据类型:序列(列表list、元组tuple、字符串str)
  • 解决VueCropper导致的后端接收文件后缀名为blob的问题
  • [Codeforces] number theory (R1600) Part.11
  • 基于JAVA火车订票系统计算机毕业设计源码+数据库+lw文档+系统+部署
  • 【CSDN:国庆活动】——blink动态里的学习成长
  • SpringBoot+Vue项目计算机等级考试报名系统
  • 【Flink 实战系列】Flink 消费多个 Topic 数据利用侧流输出完成分流功能
  • 【前端工程化】理解和配置process.env.NODE_ENV,项目中的环境变量到底是个啥
  • CVPR 2022 Oral 大连理工提出的SCI 快速、超强的低光照图像增强方法 亲测效果
  • cuda remove
  • CSS进阶篇——更多选择器 (selectors)
  • 嵌入式-ESP32
  • matplotlib绘制直方图,饼图,散点图,气泡图,箱型图,雷达图
  • JDBC编程六步、IDEA开发的第一个JDBC程序
  • 强化学习——day35 读论文:基于深度强化学习的网约车动态路径规划
  • IOS评论框不贴底(ios12新bug)
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • React as a UI Runtime(五、列表)
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • springboot_database项目介绍
  • Vue2 SSR 的优化之旅
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 使用 @font-face
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 探索 JS 中的模块化
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • 如何用纯 CSS 创作一个货车 loader
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • (14)Hive调优——合并小文件
  • (4)logging(日志模块)
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (windows2012共享文件夹和防火墙设置
  • (差分)胡桃爱原石
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (转)编辑寄语:因为爱心,所以美丽
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .jks文件(JAVA KeyStore)
  • .NET MVC 验证码
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .NET中 MVC 工厂模式浅析
  • [20150321]索引空块的问题.txt
  • [BUUCTF 2018]Online Tool(特详解)
  • [BUUCTF]-PWN:wustctf2020_number_game解析(补码,整数漏洞)
  • [Erlang 0129] Erlang 杂记 VI 2014年10月28日
  • [Grafana]ES数据源Alert告警发送
  • [HTML]Web前端开发技术6(HTML5、CSS3、JavaScript )DIV与SPAN,盒模型,Overflow——喵喵画网页
  • [osgearth]通过API创建一个earth模型
  • [python开发模拟netcat工具] BHPnet
  • [SAP ABAP开发技术总结]面向对象OO
  • [StartingPoint][Tier1]Crocodile