yum配置,文件,命令详解

前言

yum(Yellowdog Updater Modified)是一个基于 RPM 包管理的工具,广泛用于 CentOS、RHEL、Fedora 等 Linux 发行版的软件包管理。yum 的工作依赖于配置文件,这些文件控制了它的行为和如何从不同的软件源安装、更新和删除软件包。

一、YUM 配置文件

1. YUM 配置文件的位置

YUM 的配置文件主要存储在 /etc/yum.repos.d/ 目录下,每个源有一个 .repo 文件,文件的内容决定了该源的配置。每个 .repo 文件代表一个 YUM 仓库配置。系统的主配置文件是 /etc/yum.conf,不过大部分配置都是通过各个仓库的 .repo 文件来实现的。

2. /etc/yum.conf 文件

/etc/yum.conf 文件是 YUM 的主配置文件,包含了一些全局的设置。它的典型内容如下:

[main]
# 设置 YUM 的缓存目录 
cachedir=/var/cache/yum 
# 设置 YUM 是否会在安装包之前验证 GPG 签名 
gpgcheck=1 
# 是否启用本地缓存,1 表示启用,0 表示禁用 
keepcache=0 
# 设置下载失败时的重试次数 
retries=3 
# 设置 YUM 的最大并发下载数 
# num_threads=10 
# 是否启用插件 
pluginpath=/usr/lib/yum-plugins 
# 启用插件 
plugins=1
  • cachedir: 设置缓存目录,YUM 会将下载的软件包缓存到这个目录中。
  • gpgcheck : 是否检查 GPG 签名,如果设置为 1,YUM 会验证每个 RPM 包的 GPG 签名。
  • keepcache : 是否保留已下载的安装包,0 表示安装后删除,1 表示保留安装包。
  • retries: 如果 YUM 下载失败,重试的次数。
  • pluginpath: 插件目录。
  • plugins : 是否启用插件,1 启用,0 禁用。

3. /etc/yum.repos.d/ 目录中的 .repo 文件

每个 .repo 文件代表一个 YUM 源,其基本格式如下:

[repo_name] 
name=Repository Name 
baseurl=http://path/to/repository 
enabled=1 
gpgcheck=1 
gpgkey=http://path/to/gpgkey
  • [repo_name]:仓库的名称,通常是该源的标识符。
  • name:仓库的描述名称,用于表示该仓库的目的。
  • baseurl:仓库的 URL 地址,指向 RPM 包所在的目录。它可以是 HTTP、FTP 或本地文件路径(例如 file:///path/to/repo/)。
  • enabled:是否启用该仓库,1 表示启用,0 表示禁用。
  • gpgcheck:是否检查 GPG 签名,1 表示启用签名检查,0 表示不检查。
  • gpgkey:用于验证软件包签名的 GPG 公钥 URL。

例如,如果要配置一个阿里云的 YUM 源,可以编辑 /etc/yum.repos.d/CentOS-Base.repo 文件并添加以下内容:

[base] name=CentOS-$releasever - Base baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ 
enabled=1 
gpgcheck=1 
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7 
[updates] name=CentOS-$releasever - Updates baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ 
enabled=1 
gpgcheck=1 
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7

二、常用 YUM 命令详解

yum 命令是用于包管理的工具,下面是一些常见的 YUM 命令及其参数解释。

1. 安装软件包

yum install <package_name>

这个命令用于安装一个或多个软件包。<package_name> 是你想安装的软件包的名称。

例如,安装 vim

yum install vim

安装多个软件包:

yum install vim git wget

2. 卸载软件包

yum remove <package_name>

这个命令用于卸载指定的软件包。你可以提供一个或多个包名。

例如,卸载 vim

yum remove vim

3. 更新软件包

yum update

这个命令会更新所有已安装的软件包到最新版本。

如果只想更新某个特定的软件包:

yum update <package_name>

例如,更新 vim

yum update vim

4. 查看软件包信息

yum info <package_name>

显示软件包的详细信息,包括版本、描述和安装状态。

例如:

yum info vim

5. 搜索软件包

yum search <package_name>

这个命令搜索所有已配置的仓库中,符合 <package_name> 模糊匹配的软件包。

例如,查找与 vim 相关的包:

yum search vim

6. 列出已安装的软件包

yum list installed

列出所有已安装的软件包。

7. 列出可用软件包

yum list available

列出所有可从已启用的仓库中安装的包。

8. 列出可更新的软件包

yum list updates

列出所有可用的更新包。

9. 清除 YUM 缓存

yum clean all

清除 YUM 的缓存目录,删除所有的缓存数据。这个命令可以帮助解决由于缓存数据损坏或不一致导致的安装问题。

yum clean metadata

清除元数据缓存。

10. 生成 YUM 缓存

yum makecache

创建或更新 YUM 缓存。执行此命令后,YUM 将会尝试从所有启用的仓库下载并更新元数据(例如,软件包信息和仓库状态),以便在没有网络的情况下安装软件包。

11. 查看 YUM 仓库

yum repolist

显示已启用仓库的列表及其状态。

如果想查看所有仓库(包括已禁用的),可以使用:

yum repolist all

12. 列出仓库中的软件包

yum list <package_name> --disablerepo=<repo_name>

这个命令会列出指定仓库中是否存在某个软件包。

13. 禁用或启用仓库

/etc/yum.repos.d/ 中每个 .repo 文件都有 enabled 字段。你可以通过以下命令启用或禁用某个仓库:

  • 禁用仓库:

    yum --disablerepo=<repo_name> <command>

例如,禁用 base 仓库后执行安装命令:

yum --disablerepo=base install vim
  • 启用仓库:

    yum --enablerepo=<repo_name> <command>

三、YUM 源的优先级配置

YUM 源的优先级可以通过 yum-plugin-priorities 插件来设置。如果多个仓库提供相同的软件包,YUM 会优先选择优先级较高的仓库。

安装 yum-plugin-priorities 插件:

yum install yum-plugin-priorities

.repo 文件中设置优先级:

[repo_name] priority=10

优先级数值越小,优先级越高。priority 数值范围是 1 到 99。

四、总结

  • YUM 配置文件 :YUM 配置文件分为 /etc/yum.conf/etc/yum.repos.d/*.repo 文件,/etc/yum.conf 用于全局设置,而 .repo 文件则配置各个仓库的详细信息。
  • YUM 命令:YUM 提供了一系列命令来安装、更新、卸载软件包,管理仓库源,清理缓存等。
  • YUM 源管理 :可以通过编辑 .repo 文件添加、修改、删除仓库,也可以控制仓库的启用/禁用以及优先级。
相关推荐
Charary32 分钟前
第23天Linux下常用工具(二)
linux·运维·服务器
修修修也39 分钟前
【Linux】进程间通信
linux·运维·服务器·操作系统·进程通信
猫头鹰~40 分钟前
linux文件
linux·运维·服务器
StudyHappiness1 小时前
MongoDB新版本,单节点安装
linux·运维·mongodb·kylin
运维佬2 小时前
在 Linux 系统上部署 Apache Solr
linux·apache·solr
编程墨客2 小时前
第03章 文件编程
linux·运维·服务器
命里有定数2 小时前
windows工具 -- 使用rustdesk和云服务器自建远程桌面服务, 手机, PC, Mac, Linux远程桌面 (简洁明了)
linux·运维·服务器·windows·ubuntu·远程工作
cleveryuoyuo2 小时前
进程的程序替换exec*函数和shell实现
linux·服务器
爱编程的小金毛球球2 小时前
-bash: /home/xxx/anaconda3/bin/conda: No such file or directory
linux·conda·bash
Biomamba生信基地4 小时前
Linux也有百度云喔~
linux·运维·服务器·百度云