linux基本功系列之yum实战

news2024/11/27 18:32:31

在这里插入图片描述

文章目录

  • 一. yum命令介绍
    • 1.1 yum的介绍
    • 1.2 yum的优劣势
    • 1.3 使用yum的注意事项
      • 1.3.1 配置本地yum源
      • 1.3.2 配置网络yum源
  • 二. 语法格式及常用选项
    • 2.1 yum的全部参数
    • 2.2 影响yum的配置文件
    • 2.3 最常用的yum参数
  • 三. 参考案例实战
    • 3.1 使用yum进行安装
    • 3.2 使用yum升级和更新软件包
    • 3.3 软件包的查询
    • 3.4 yum卸载软件包
    • 3.5 yum 安装开发工具软件组
  • 总结

前言🚀🚀🚀
想要学好Linux,命令是基本功,企业中常用的命令大约200多个,不管是写shell脚本还是管理操作系统,最常用的命令必须要牢牢掌握,像我们以前学乘法口诀一样,烂熟于心,唯有如此,才能打牢基础。
💓 知识最重要的是记忆
💓 入门须知: 想要人生从容,必须全力以赴,努力才是你最终的入场券🚀🚀🚀
💕 最后: 努力成长自己,愿我们都能在看不到的地方闪闪发光 ,一起加油进步🍺🍺🍺

在上篇文章
linux基本功系列之rpm命令实战
我们聊到了rpm包的管理,其中有rpm包的日常使用方法及rpm包的安全校验, 在使用rpm包的时候,相信大家也经常感觉到安装依赖包的痛苦。今天,我们一起来聊聊yum的使用。

一. yum命令介绍

1.1 yum的介绍

yum命令来自于英文词组”YellowdogUpdater,Modified“的缩写,其功能是用于在Linux系统中基于RPM技术进行软件包的管理工作。

YUM是C/S架构的在线软件安装命令,是RPM1的前端工具,依赖于RPM存在的。

能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。

当然了 ,其实不懂yum的概念,一点也不妨碍你使用yum去工作,真的。
在这里插入图片描述

1.2 yum的优劣势

yum最大的优势就是能够解决rpm包的依赖问题,自动解决安装时候的依赖。
不过yum也有缺陷,最大的缺陷就是如果有未完成的安装在强行终止的情况下,下次再次安装容易出现无法解决的依赖问题。

为了处理yum本身的缺陷,引入了dnf命令,dnf的使用方法和yum一样。 dnf完全是用python写的,更新了依赖关系解析器的后端,比yum效率更高。

1.3 使用yum的注意事项

使用yum之前要首先配置好本地yum源,或者网络yum源,否则无法使用。

1.3.1 配置本地yum源

1. 挂载镜像

1) 先确保镜像已经挂载

在这里插入图片描述

2) 配置yum源文件进行挂载

需要注意的是,这里我们要创建一个以.repo结尾的文件,而且文件必须放在/etc/yum.repos.d目录下

[root@mufeng ~]# cd /etc/yum.repos.d/redhat7.repo

vim  redhat.repo
[rhel-source]
name=mufeng
baseurl=file:///mnt
enabled=1
gpgcheck=0

上面代码的相关备注:

内容释义
[rhel-source]yum源名称,在本服务器上唯一,用来区分不同的yum源
name=Redhat对yum源的描述
baseurl=file:///mntyum的挂载路径,file,http,ftp三种形式的路径
enabled=1为1表示开启yum源,0表示禁用
gpgcheck=0为1 表示使用公钥检验rpm包正确性,0位不校验

3) 在命令行挂载镜像到/mnt

在这里插入图片描述
可以看到/dev/sr0已经挂载到了/mnt上,说明成功了。
在这里插入图片描述

1.3.2 配置网络yum源

对网络软件包的理解:

  1. 我们安装软件包,必须先把软件包现在的本地进行安装
  2. 网络软件包的意思就是,这些软件包不在自己电脑上,而是在别人的电脑上(服务上)
  3. 我们要下载一个软件包,但我们不清楚这个软件包在哪台电脑上
  4. 于是电脑在下载软件包的时候会去官网搜索,如果官网连接不通,会去你配置好的网络源搜索,比如阿里云
  5. 为什么阿里云会提供软件包? 因为利益(比如增加网站的访问量和下载量等)

基于以上对网络软件包的理解,你会发现现在配置网络yum源越来越简单了,不用重复造轮子,直接使用阿里云的镜像站即可

1) 阿里云开发者社区-镜像站-点击直达

如下图,选择你要使用的系统版本网络源
在这里插入图片描述

2) 我用的是centos7的系统,所以直接选择 centos7.repo即可

怎么知道自己的操作系统?

[root@mufeng yum.repos.d]# cat /etc/centos-release 
CentOS release 7.9 (Final)

根据自己的系统型号,选择6还是7或者8的repo包,我这里选择6的

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

3) 运行 yum makecache 生成缓存
[root@mufeng yum.repos.d]# cat /etc/centos-release

可以愉快的使用yum了

[root@mufeng ~]# yum install vsftpd

二. 语法格式及常用选项

2.1 yum的全部参数

我们还是使用 --help来查看yum的常用参数,可以看到yum的常用参数有很多:

[root@mufenggrow ~]# yum --help
已加载插件:fastestmirror, langpacks
Usage: yum [options] COMMAND

List of Commands:

check          检查 RPM 数据库问题
check-update   检查是否有可用的软件包更新
clean          删除缓存数据
deplist        列出软件包的依赖关系
distribution-synchronization 已同步软件包到最新可用版本
downgrade      降级软件包
erase          从系统中移除一个或多个软件包
fs             Acts on the filesystem data of the host, mainly for removing docs/lanuages for minimal hosts.
fssnapshot     Creates filesystem snapshots, or lists/deletes current snapshots.
groups         显示或使用、组信息
help           显示用法提示
history        显示或使用事务历史
info           显示关于软件包或组的详细信息
install        向系统中安装一个或多个软件包
langavailable  Check available languages
langinfo       List languages information
langinstall    Install appropriate language packs for a language
langlist       List installed languages
langremove     Remove installed language packs for a language
list           列出一个或一组软件包
load-transaction 从文件名中加载一个已存事务
makecache      创建元数据缓存
provides       查找提供指定内容的软件包
reinstall      覆盖安装软件包
repo-pkgs      将一个源当作一个软件包组,这样我们就可以一次性安装/移除全部软件包。
repolist       显示已配置的源
search         在软件包详细信息中搜索指定字符串
shell          运行交互式的 yum shell
swap           Simple way to swap packages, instead of using shell
update         更新系统中的一个或多个软件包
update-minimal Works like upgrade, but goes to the 'newest' package match which fixes a problem that affects your system
updateinfo     Acts on repository update information
upgrade        更新软件包同时考虑软件包取代关系
version        显示机器和/或可用的源版本。


Options:
  -h, --help            显示此帮助消息并退出
  -t, --tolerant        忽略错误
  -C, --cacheonly       完全从系统缓存运行,不升级缓存
  -c [config file], --config=[config file]
                        配置文件路径
  -R [minutes], --randomwait=[minutes]
                        命令最长等待时间
  -d [debug level], --debuglevel=[debug level]
                        调试输出级别
  --showduplicates      在 list/search 命令下,显示源里重复的条目
  -e [error level], --errorlevel=[error level]
                        错误输出级别
  --rpmverbosity=[debug level name]
                        RPM 调试输出级别
  -q, --quiet           静默执行
  -v, --verbose         详尽的操作过程
  -y, --assumeyes       回答全部问题为是
  --assumeno            回答全部问题为否
  --version             显示 Yum 版本然后退出
  --installroot=[path]  设置安装根目录
  --enablerepo=[repo]   启用一个或多个软件源(支持通配符)
  --disablerepo=[repo]  禁用一个或多个软件源(支持通配符)
  -x [package], --exclude=[package]
                        采用全名或通配符排除软件包
  --disableexcludes=[repo]
                        禁止从主配置,从源或者从任何位置排除
  --disableincludes=[repo]
                        disable includepkgs for a repo or for everything
  --obsoletes           更新时处理软件包取代关系
  --noplugins           禁用 Yum 插件
  --nogpgcheck          禁用 GPG 签名检查
  --disableplugin=[plugin]
                        禁用指定名称的插件
  --enableplugin=[plugin]
                        启用指定名称的插件
  --skip-broken         忽略存在依赖关系问题的软件包
  --color=COLOR         配置是否使用颜色
  --releasever=RELEASEVER
                        在 yum 配置和 repo 文件里设置 $releasever 的值
  --downloadonly        仅下载而不更新
  --downloaddir=DLDIR   指定一个其他文件夹用于保存软件包
  --setopt=SETOPTS      设置任意配置和源选项
  --bugfix              Include bugfix relevant packages, in updates
  --security            Include security relevant packages, in updates
  --advisory=ADVS, --advisories=ADVS
                        Include packages needed to fix the given advisory, in
                        updates
  --bzs=BZS             Include packages needed to fix the given BZ, in
                        updates
  --cves=CVES           Include packages needed to fix the given CVE, in
                        updates
  --sec-severity=SEVS, --secseverity=SEVS
                        Include security relevant packages matching the
                        severity, in updates

2.2 影响yum的配置文件

与yum有关的配置文件一共有三个:

基本设置: /etc/yum.conf
仓库配置: /etc/yum.repo.d/*.repo
日志文件: /var/log/yum.log

2.3 最常用的yum参数

根据2.1我们整理出最常用的参数做一下汇总:

参数参数描述
install安装软件包
-y对安装过程中所有的提问,都默认选择yes
-q安装模式
-v详细信息
update更新软件包
list列出资源库中所有可以安装的软件包
search搜寻软件包的信息
info显示指定的rpm软件包的描述信息和概要信息
groupinstall安装程序组件
clean清空
remove卸载

三. 参考案例实战

3.1 使用yum进行安装

想要安装,使用的参数是install , 所以这里用install即可。
-y参数是为了出现提问时候,全部输入为y.

案例一: 使用yum安装httpd

 [root@mufeng ~]# yum install httpd -y   

案例二: 使用yum安装wget

yum install -y  wget

可以看到-y参数可以放在命令的最后,也可以放在 install 后面

案例三: 从硬盘安装rpm包并使用yum解决依赖关系

此时可以使用 yum localinstall ./*.rpm

3.2 使用yum升级和更新软件包

升级软件包使用的是update

 [root@mufeng~]# yum update -y

还有个命令也是用来升级: upgrade

yum upgrade -y

yum update 和yum upgrade有什么区别呢?

答: yum update和yum upgrade的功能都是一样的,都是将需要更新的package更新到源中的最新版。
唯一不同的是,yum upgrade会删除旧版本的package,而yum update则会保留(obsoletes=0)。

生产环境中建议使用yum update,防止因为替换,导致旧的软件包依赖出现问题。

案例三: yum源的更新命令

yum clean all
yum makecache
yum update

3.3 软件包的查询

案例一: 查询一个软件包的描述信息

 [root@mufeng ~]# yum info httpd

案例二: 查询一个包是哪个命令安装的? 用yum provides

比如我们要查询ab命令是哪个软件包安装的

[root@mufeng ~]# yum provides /usr/bin/ab   # 查看ab命令是哪个包安装的
已加载插件:fastestmirror, refresh-packagekit, security
Repository epel is listed more than once in the configuration
Loading mirror speeds from cached hostfile

 * updates: mirrors.aliyun.com
httpd-tools-2.2.15-69.el6.centos.x86_64 : Tools for use with the Apache HTTP Server
Repo        : base
匹配来自于:
Filename    : /usr/bin/ab

httpd-tools-2.2.15-69.el6.centos.x86_64 : Tools for use with the Apache HTTP Server
Repo        : installed
匹配来自于:
Other       : 提供依赖满足:/usr/bin/ab

案例三: 列出所有可安装的软件包

[root@mufenggrow ~]# yum list httpd
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.163.com
 * extras: mirror.lzu.edu.cn
 * updates: mirror.lzu.edu.cn
可安装的软件包
httpd.x86_64                          2.4.6-97.el7.centos.5                          updates
[root@mufenggrow ~]# 

其他使用方法

  • list +软件包 可以列出要安装或者已经安装的软件包

  • list update 表示列出所有可更新的软件包

  • list installed 列出所有已经安装的软件包

3.4 yum卸载软件包

卸载软件包,直接使用remove即可

[root@mufeng~]# yum remove httpd

此时也可以加-y参数,一般不需要加。

3.5 yum 安装开发工具软件组

yum grouplist 查看有哪些安装组
yum groupinstall “开发工具”

使用yum grouplist可以查看到所有需要安装的组件,比如我的系统是最小化系统,此时想安装桌面,这时候就可以安装桌面组件。

在这里插入图片描述

总结

yum是我们日常用的最多的命令,但yum也有一定的不足,比如正在执行的过程中突然中断,会导致下次使用的时候提示缺少依赖包。

💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨
🍻🍻🍻如果你喜欢的话,就不要吝惜你的一键三连了~

请添加图片描述
在这里插入图片描述

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

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

相关文章

Kettle(9):排序记录组件

1 组件介绍 排序组件可以将Kettle数据流中的数据进行排序,可以指定升序、还是降序排列 2 需求 使用Kettle将t_user表中的用户数据,按照年龄升序排序,并将排序后的数据装载到Excel 3 构建Kettle数据流图 效果图

第二章 Java编程基础

第二章 Java编程基础 目录一. Java基本语法1. 基本格式2. 注释3. 标识符4. 关键字5. 常量二. 变量1. 定义2. 数据类型3. 整数类型变量4. 浮点类型变量5. 字符类型变量6. 布尔类型变量7. 类型转换8. 自动提升9. 变量作用域三. 运算符1. 算数运…

【VisualBasicApplication】Excel编程 快速入门

VBAExcel的宏与VBA宏的录制宏的启动运行快捷键运行宏:使用Excel对象运行宏*VBA的数据类型字符串(String)整形(Integer)和长整形(Long)单精度浮点型(Single)和双精度浮点型…

我应该使用哪个版本的 JDK?

本文在写作过程中参考了whichJDK ​ 要构建和运行 Java 应用程序,就需要安装 JDK 环境。 OpenJDK 是 Java SE 规范的开源软件,但它只是源代码。二进制发行版由不同的供应商提供,适用于许多受支持的平台,这些发行版在许可证、商业…

设计模式 - 创建型模式_7种单例模式实现

文章目录创建型模式概述Case7种单例模式实现静态类使⽤懒汉模式(线程不安全)懒汉模式(线程安全)饿汉模式(线程安全)使⽤类的内部类(线程安全)双重锁校验(线程安全)CAS「AtomicReference」(线程安全)Effective Java作者推荐的枚举单例(线程安全)小结创建型模式 创建型模式提供创…

MySQL约束详解

目录 概念 作用 分类 MySQL约束——主键约束 概念 操作 操作——添加单列主键 操作——添加多列主键(联合主键) 操作——删除主键约束 MySQL约束-自增长约束(auto_increment) 概念 语法 操作 特点 指定自增字段初始值 delete和truncate在删…

零基础学JavaWeb开发(二十六)之 nginx(2)

5、基于Nginx解决跨域问题 5.1、什么是网站跨域问题 前端部署 html.mayikt.com /index.html 后端部署 api.mayikt.com/ 接口 java 浏览器访问:http://html.mayikt.com/user.html 页面里面 ajax 请求:http://api.mayikt.com/getUser 浏览器访问&#…

力扣刷题记录——697. 数组的度、728. 自除数 、821. 字符的最短距离

本专栏主要记录力扣的刷题记录,备战蓝桥杯,供复盘和优化算法使用,也希望给大家带来帮助,博主是算法小白,希望各位大佬不要见笑,今天要分享的是——《力扣刷题记录——697. 数组的度、728. 自除数 、821. 字…

腾讯云开发者2022年度热文盘点

01十亿人都在用的健康码运维体系如何设计?随着疫情防控模式的迭代,健康码访问DAU逐渐趋于下跌,意味着健康码将逐步完成历史使命,见证着疫情的结束。本文特邀腾讯研发工程师李雄政将从技术架构、可观测体系、运营保障体系等运维体系…

星德胜冲刺上交所上市:计划募资约10亿元,朱云舫为实际控制人

近日,星德胜科技(苏州)股份有限公司(下称“星德胜”)预披露更新招股书,准备在上海证券交易所主板上市。据贝多财经了解,星德胜于2022年7月1日递交上市申请,海通证券为其保荐机构。 …

java ssm学生成绩查询考务系统

1 绪论 1 1.1 项目背景 1 1.2 项目研究的目的和方法 1 1.2.1 项目的研究目的 1 1.2.2 开发方法及步骤 1 1.3 本章小结 2 2. 开发平台介绍 3 2.1 系统开发环境 3 2.1.1 Eclipse 3 2.2 相关技术 4 2.2.1 JSP技术 …

Web Spider 常见混淆EVAL、AA、JJ、JSFUCK

文章目录一、EVAL & constructor二、AA混淆三、JJ混淆四、JSFUCK五、针对混淆的方法简单hook总结混淆的原理:就是把原本清晰的代码故意搞得花里胡哨,让局外人看不懂; 混淆的目的:让逆向者很难理解代码的意图,无法读…

随笔集1.24

秋夜独坐经常性会出现啥都不想干的情况,似那黄鹤一去不复返,只留下脑海的白云千载空悠,对任何事情,读书、研究、游戏都提不起兴趣,每当此时静坐于窗下灯前,想起王摩诘所谓雨中山果落,灯下草虫鸣…

第二章-计算机网络物理层

文章目录计算机网络一、物理层1.1、物理层的基本概念1.2、数据通信的基本知识编码与调制编码调制混合调制信道的极限容量传输方式1.3、物理层下面的传输媒体导引型传输媒体非导引型传输媒体1.4、互联网接入技术电话网拨号接入数字用户线接入光纤同轴混合网接入光纤接入无线接入…

用友BIP对接外部旺店通企业版奇门系统

用友BIP对接外部旺店通企业奇门系统源系统:旺店通企业奇门慧策最先以旺店通ERP切入商家核心管理痛点——订单管理,之后围绕电商经营管理中的核心管理诉求,先后布局流量获取、会员管理、仓库管理等其他重要经营模块。慧策的产品线从旺店通ERP起步&#xf…

Jetpack架构组件库:Lifecycle、LiveData、ViewModel

Lifecycle 添加依赖 dependencies {def lifecycle_version "2.5.1" // ViewModelimplementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"// ViewModel utilities for Composeimplementation "androidx.lifecycle:lifecy…

解决nes_py在pip安装报错的问题

目录 项目场景: 问题描述 原因分析: 解决方案: 解决结果: 项目场景: 想跟随油管某视频复现强化学习方法玩超级马里奥的过程,结果在在Anaconda3虚拟环境中用pip安装nes_py时一直报错,报错信…

基于Python实现的图像文字识别OCR工具,包含GUI界面附完整版代码可直接运行

引言 最近在技术交流群里聊到一个关于图像文字识别的需求,在工作、生活中常常会用到,比如票据、漫画、扫描件、照片的文本提取。 博主基于 PyQt + labelme + PaddleOCR 写了一个桌面端的 OCR 工具,用于快速实现图片中文本区域自动检测 + 文本自动识别。 识别效果如下图所示:…

总结JDK中的时间日期类

在学习SpringMVC时,遇到了接收时间日期类型的参数的案例。 回顾JDK中与时间日期相关的API。 来系统地学习一下日期时间相关的API。 前置知识 在世界上有统一的时间标准 格林尼治时间,简称GMT(以伦敦的本初子午线为标准)&#x…

【BTC】数据结构

BTC 中对交易数据的存储主要涉及到了两种数据结构,一种是区块链,一种是 Merkle Tree。这两种数据结构组成了 BTC 中完整的区块链结构(如下图所示),共同完成对数据的存储和验证,确保交易的有效性。 一、区块…