『运维备忘录』之 Yum 命令详解

运维人员不仅要熟悉操作系统、服务器、网络等只是,甚至对于开发相关的也要有所了解。很多运维工作者可能一时半会记不住那么多命令、代码、方法、原理或者用法等等。这里我将结合自身工作,持续给大家更新运维工作所需要接触到的知识点,希望大家喜欢。

今天我们要讲的是 Yum


一、简介

YUM 是 Yellow dog Updater, Modified 的简称,是杜克大学为了提高 RPM 软件包安装性而开发的一种软件包管理器。它是基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。YUM 的宗旨是自动化地升级,安装/移除RPM包,收集 RPM 包的相关信息,检查依赖性并自动提示用户解决。YUM  的关键之处是要有可靠的软件仓库,它可以是 http 或 ftp 站点,也可以是本地软件池,但必须包含 RPM 的header,header 包括了RPM 包的各种信息,包括描述,功能,提供的文件,依赖性等。 

基本语法:

$ yum [options] [command] [package ...]

二、YUM 源

对于 YUM 来说最重要的就是YUM源,查看配置目录后,你会发现/etc/yum.repos.d目录下有非常多以.repo结尾的源文件,每个源文件都代表着一份设置,你可以编辑/etc/yum.repos.d/目录下所有的.repo文件,同时一个源文件里面可以填写多个源地址。一般官方的源文件CentOS-Base.repo下有[base], [updates], [extras]三个源。

YUM源配置字段说明:

  • [base] #仓库名称
  • name= #仓库描述
  • mirrorlist= #仓库镜像路径
  • baseurl= #仓库url路径
  • enabled= #仓库是否启用,1表示启用,0表示关闭
  • gpgcheck=1 #密钥检测,1表示开启,0表示关闭
  • gpgkey= #检查key的地址,如果上面不检查,这个可以不写

下面介绍几种常用的源和设置办法。

2.1. 官方源

这个就不多说了,以CentOS为例,如果安装了CentOS的发行版,那么自带的源应该就是官方的,但源是国外的,一般不推荐使用。

[BaseOS]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=BaseOS&infra=$infra
#baseurl=http://mirror.centos.org/$contentdir/$releasever/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

2.2. 阿里云源

阿里云是比较推荐的,云服务业务比较大,源镜像比较稳定可靠,推荐使用。

配置方法:

# 1. 备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

# 2. 下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

# 3. 清除缓存
yum clean all

# 4. 生成缓存
yum makecache

# 5. 查看生效后的源地址
yum repolist

2.3. 腾讯云源

 配置步骤与阿里云源一样:

# 1. 备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

# 2. 下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/
centos6:
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.cloud.tencent.com/repo/centos6_base.repo
centos7:
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.tencent.com/repo/centos7_base.repo

# 3. 清除并生成缓存
yum clean all && yum makecache

# 4. 查看生效后的源地址
yum repolist

2.4. 其他源

其他国内还有华为云、清华大学、网易等等优质YUM源,配置方法均一致。

华为云:wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo
清华大学:https://mirrors.tuna.tsinghua.edu.cn/help/centos/
网易:wget http://mirrors.163.com/.help/CentOS6-Base-163.repo

注意:/etc/yum.repos.d/目录下文件名后缀为.repo的文件都是源文件,里面对应的源都需要设置,但最好不要添加太多源,把暂时不用的源通过enabled=0关闭,只留下一个EPEL第三方源,这样可以减少软件的冲突和软件搜索的速度。

三、管理 YUM 存储库

$ yum repolist                     # 显示启用的软件存储库
$ yum repoinfo rhel-7-server-rpms  # 显示有关启用的 yum 存储库的信息
$ yum repo-pkgs my-rpms list       # 列出来自 my-rpms 存储库的软件包
$ yum repo-pkgs my-rpms install    # 从 my-rpms repo 安装所有软件包
$ yum repo-pkgs my-rpms remove     # 从 my-rpms 存储库中删除所有软件包
$ yum makecache                    # 下载 yum 存储库数据到缓存

四、使用 YUM 管理语言包

$ yum langavailable    # 列出已安装的语言
$ yum langinfo es      # 列出与西班牙语相关的软件包
$ yum langinstall es   # 安装与西班牙语相关的软件包
$ yum langlist         # 列出已安装的语言
$ yum langremove es    # 删除与西班牙语相关的软件包

五、使用 YUM 管理软件包

5.1. 列出存储库中的包名称

# 列出存储库中的包名称
yum list available
# 列出所有可用的包
yum list installed
# 列出所有已安装的包
yum list all
# 列出已安装和可用的软件包
yum list kernel

5.2. 列出已安装和可用的内核包

# 列出有关 `vsftpd` 软件包的信息
$ yum info vsftpd

5.3. 显示包的依赖项

# 显示包的依赖项
$ yum deplist nfs-utils
# 查找提供查询文件的包
$ yum provides “*bin/top”
# 显示包含 README.top 文件的包
$ yum provides “*/README.top”

5.4. 查找包

# 查找名称或描述中带有 samba 的软件包
$ yum search samba
# 获取有关可用软件包更新的信息
$ yum updateinfo security

5.5. 使用 YUM 安装、删除和升级软件包

# 安装 vsftpd 包
$ yum install vsftpd

# 使用可用更新更新所有软件包
$ yum update
# 更新 httpd 包(如果可用)
$ yum update httpd
# 应用与安全相关的包更新
$ yum update --security

# 更新包考虑过时,只升级所有包,不升级软件和系统内核
$ yum -y upgrade

# 从本地文件、http 或 ftp 安装包
$ yum localinstall abc-1-1.i686.rpm
# 从本地目录安装 abc 包
$ yum localinstall http://myrepo/abc-1-1.i686.rpm

# 将 abc 包降级到早期版本
$ yum downgrade abc

# 重新安装 util-linux(以替换任何已删除的文件)
$ yum reinstall util-linux

# 删除 ftp 包并安装 lftp 包
$ yum swap ftp lftp

# 删除 vsftpd 包和依赖
$ yum remove vsftpd

# 删除 httpd 和其他不需要的包
$ yum autoremove httpd

# 安装 Web 服务器包
$ yum groupinstall "Web server"

5.6. 从 repo 下载一个包到当前目录

# 使用本地源离线安装 net-tools 工具包
$ yumdownloader net-tools.x86_64
# 使用 –destdir 参数设置下载的目标目录
$ yumdownloader net-tools.x86_64 --destdir=/usr/local/bin/
# 使用 –resolve 参数解决依赖关系并下载所需的安装包
$ yumdownloader net-tools.x86_64 --resolve --destdir=/usr/local/bin/

六、YUM 故障排除和维护

# 检查本地 RPM 数据库是否有问题(运行了很长时间)
$ yum check

# 列出所有 yum 安装、更新和清理操作
$ yum history list
# 显示 yum info 3 的详细信息
$ yum history info 3
# 撤消事务 3 中的 yum 操作
$ yum history undo 3
# 重做事务 3 中撤消的 yum 操作
$ yum history redo 3

# 删除缓存中保存的包
$ yum clean packages
# 从缓存中清除所有包和元数据
$ yum clean all

# 列出启用的文件系统过滤器
$ yum fs filters
# 过滤所有正在安装的文档(小心!)
$ yum fs documentation

官方网站:http://yum.baseurl.org/

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【多模态大模型】视觉大模型SAM:如何使模型能够处理任意图像的分割任务?

SAM:如何使模型能够处理任意图像的分割任务? 核心思想起始问题: 如何使模型能够处理任意图像的分割任务?5why分析5so分析 总结子问题1: 如何编码输入图像以适应分割任务?子问题2: 如何处理各种形式的分割提示?子问题3:…

Redis服务

目录 介绍 特点 缓存 安装 安装单机版redis实例 1、创建工作目录 2、下载对应的redis包 3、解压到创建好的工作目录 4、安装编译工具 5、进入解压后的目录执行make编译 6、配置环境变量 7、备份配置文件 8、修改配置文件 9、创建存放数据的目录 配置redis为syste…

Django连接Mysql

修改setting.py配置文件 连接前,需要创建数据库 安装mysql客户端 因为连接需要一个客户端,而python没有客户端,所以就需要一个客户端来接收你填写的参数 pip install mysqlclient

【知识图谱+大模型的紧耦合新范式】Think-on-Graph:解决大模型在医疗、法律、金融等垂直领域的幻觉

Think-on-Graph:解决大模型在医疗、法律、金融等垂直领域的幻觉 Think-on-Graph 原理ToG 算法步骤:想想再查,查查再想实验结果 论文:https://arxiv.org/abs/2307.07697 代码:https://github.com/IDEA-FinAI/ToG Think…

JAVA面试汇总总结更新中ing

本人面试积累面试题 多线程微服务JVMKAFKAMYSQLRedisSpringBoot/Spring 1.面向对象的三个特征 封装,继承,多态,有时候也会加上抽象。 2.多态的好处 允许不同类对象对同一消息做出响应,即同一消息可以根据发送对象的不同而采用多种…

GPIO结构

GPIO简介 GPIO(General Purpose Input Output)通用输入输出口 可配置为8种输入输出模式 引脚电平:0V~3.3V,部分引脚可容忍5V 输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等 输入模式下可读取端口的高低电平或电压&#x…

Linux实验记录:使用DHCP动态管理主机地址

前言: 本文是一篇关于Linux系统初学者的实验记录。 参考书籍:《Linux就该这么学》 实验环境: VmwareWorkStation 17——虚拟机软件 RedHatEnterpriseLinux[RHEL]8——红帽操作系统 备注: 动态主机配置协议(DHCP&…

MongoDB从入门到实战之Docker快速安装MongoDB

前言 在上一篇文章中带领带同学们快速入门MongoDB这个文档型的NoSQL数据库,让大家快速的了解了MongoDB的基本概念。这一章开始我们就开始实战篇教程,为了快速把MongoDB使用起来我将会把MongoDB在Docker容器中安装起来作为开发环境使用。然后我这边MongoD…

关于RabbitMQ面试题汇总

什么是消息队列?消息队列有什么用? 消息队列是一种在应用程序之间传递消息的通信机制。它是一种典型的生产者-消费者模型,其中生产者负责生成消息并将其发送到队列中,而消费者则从队列中获取消息并进行处理。消息队列的主要目的是…

【无标题】卫星数据链开发平台设计方案:522-基于AD9988的四通道1G带宽卫星数据链开发平台基于AD9988的四通道1G带宽卫星数据链开发平台

卫星数据链开发平台设计方案:522-基于AD9988的四通道1G带宽卫星数据链开发平台 基于AD9988的四通道1G带宽卫星数据链开发平台 一、卫星数据链综 卫星通信是卫星互联网的重要应用之一,主要指通过或借助卫星进行数据通信,可广泛应用于移…

紫光展锐摘得多项行业桂冠,综合实力获认可

近期,紫光展锐凭借在技术和产品创新领域的实力和成果,接连斩获多项行业重要荣誉。 紫光展锐首颗5G NTN-IoT卫星通信SoC芯片V8821荣获第11届手机设计大赛天鹅奖“2023年度最佳终端解决方案奖”、2023年度ICT产业龙虎“2023年度最佳5G技术创新”、2023年度…

【机器学习】基于集成学习的 Amazon 用户评论质量预测

实验六: 基于集成学习的 Amazon 用户评论质量预测 1 案例简介 ​ 随着电商平台的兴起,以及疫情的持续影响,线上购物在我们的日常生活中扮演着越来越重要的角色。在进行线上商品挑选时,评论往往是我们十分关注的一个方面。然而目前电商网站的…

论文阅读——MP-Former

MP-Former: Mask-Piloted Transformer for Image Segmentation https://arxiv.org/abs/2303.07336 mask2former问题是:相邻层得到的掩码不连续,差别很大 denoising training非常有效地稳定训练时期之间的二分匹配。去噪训练的关键思想是将带噪声的GT坐标…

对象存储minio

参考Linux搭建免费开源对象存储 wget https://dl.minio.io/server/minio/release/linux-amd64/minio yum install -y wget yum install -y wget wget https://dl.minio.io/server/minio/release/linux-amd64/minio chmod x minio sudo mv minio /usr/local/bin/ minio --vers…

编译DuiLib库遇到的变量定义位置问题

C89 规定,所有局部变量都必须定义在函数开头,在定义好变量之前不能有其他的执行语句; C99 标准取消这这条限制,但是 VC/VS 对 C99 的支持不是很积极; C99 是 C89 的升级版; 如图是修改之后的代码&#xff1…

海光--性能领先实干者

这是ren_dong的第26篇原创 1、概述 国产X86 CPU领航者 海光信息是一家从事高端处理器、加速器等计算芯片产品和系统研发的公司 ,是国产X86 CPU领航者海光处理器兼容市场主流的 X86 指令集,具有成熟而丰富的应用生态环境公司股权结构合理 ,聚集…

python复制别人的虚拟环境

虚拟环境的结构 一个项目的虚拟环境是由以下组成的,如下图: 其中Lib文件夹里存放的就是我们安装的一些第三方库,Scripts文件夹很重要,它里面的activate文件是用于激活虚拟环境的,还有pyvenv.cfg文件是这个虚拟环境的…

第8节、双电机多段直线运动【51单片机+L298N步进电机系列教程】

↑↑↑点击上方【目录】,查看本系列全部文章 摘要:前面章节主要介绍了bresenham直线插值运动,本节内容介绍让两个电机完成连续的直线运动,目标是画一个正五角星 一、五角星图介绍 五角星总共10条直线,10个顶点。设定左下角为原点…

seata分布式事务

文章目录 1、分布式事务1.1 事务的ACID原则原子性一致性隔离性持久性 1.2 分布式事务的问题示例代码准备环境1. seata_demo数据库2. 启动nacos seata-demo父工程pom.xml order-servicepom.xmlapplication.ymlOrderApplicationOrderControllerOrderServiceImplAccountClientStor…

leetcode1079:游戏玩法分析——求留存率

求留存率 题目描述题解 题目描述 表:Activity --------------------- | Column Name | Type | --------------------- | player_id | int | | device_id | int | | event_date | date | | games_played | int | --------------------- (player_id&…