yum基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。yum仓库管理的意义在于,可以通过yum仓库来管理软件包,使得软件包的安装、升级、卸载等操作变得更加简单方便。yum仓库可以分为本地yum仓库和远程yum仓库两种类型。
而yum-config-manager是一个命令行工具,用于管理yum仓库的配置。它可以帮助你添加、删除、启用或禁用yum仓库。使用yum-config-manager可以更方便地管理yum仓库,提高软件包的安装效率。
yum仓库配置文件
yum仓库配置在/etc/yum.repos.d/目录下,每个仓库对应一个.repo文件;在/etc/yum.conf文件中,每个仓库对应一个[repository]段,而每个仓库的字段包括不限于:
- name:仓库的名称。
- baseurl:仓库的URL。
- enabled:仓库是否启用。
- gpgcheck:是否对软件包执行GPG检查。
- gpgkey:仓库的GPG密钥的URL。
- exclude:要从更新或安装中排除的软件包列表。
安装yum-config-manager
yum-config-manager命令包含在yum-utils里
yum install yum-utils
对yum仓库的增、删、改、查
增
yum-config-manager --add-repo <repo-url>
例如增加repo-1的k8s源
$ sudo yum-config-manager --add-repo repo-1/kubernetes/yum/repos/kubernetes-el7-x86_64/
返回:
Adding repofrom: repo-1/kubernetes/yum/repos/kubernetes-el7-x86_64/
可以看到下载过后的文件
$ ls /etc/yum.repo.d/
返回:
repo-1_kubernetes_yum_repos_kubernetes-el7-x86_64_.repo
同样,也可以用上述命令增加多个repo
例如,增加repo-1 的k8s源、repo-1的CentOS源和repo-2的epel源,命令如下
$sudo yum-config-manager \
--add-repo repo-1/kubernetes/yum/repos/kubernetes-el7-x86_64/ \
--add-repo repo-1/repo/Centos-7.repo \
--add-repo repo-2/repo/epel-7.repo
查看内部文件
$ cat 'repo-1_kubernetes_yum_repos_kubernetes-el7-x86_64_.repo'
返回:
[repo-1_kubernetes_yum_repos_kubernetes-el7-x86_64_]
name=created by dnf config-manager from repo-1/kubernetes/yum/repos/kubernetes-el7-x86_64/
baseurl=repo-1/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
此内容中的section“[repo-1-el7-x86_64_]”为这个repo的ID,下面为此repo的options
删
您可以进入/etc/yum.repos.d/并删除与要删除的存储库对应的文件来删除对应的库文件
改
改动仓库配置option
首先引用官方说明
Set any config option in yum config or repo files. For options
in the global config just use: --setopt=option=value for repo
options use: --setopt=repoid.option=value. The latter form
accepts wildcards in repoid that will be expanded to the
selected sections. If repoid contains no wildcard, it will
automatically be selected; this is useful if you are
addressing a disabled repo, in which case you don't have to
additionally pass it as an argument.
改动文件,例如前面下载了kubernetes.repo
我们将为此repo添加配置
yum-config-manager --save --setopt=kubernetes.name=kubernetes
注意:.repo配置文件格式为section-option格式,setopt所接受的参数为[section].[option]=[value],于文件名无关(section作为每个仓库的ID,是唯一的,这是yum全局规定)
改动仓库是否可用
将仓库可用
yum-config-manager --set-enabled [repo-id]
将仓库不可用
yum-config-manager --set-diabled [repo-id]
这里的仓库ID就是仓库文件中的section,必须全局唯一(不仅在自己所在的配置文件中)
查
yum repolist all #查询所有状态的仓库配置
yum repolist enabled #查询可用状态的仓库配置
yum repolist disabled #查询不可用状态的仓库配置