

喜讯:国内、香港、海外云服务器租用特惠活动,2核/4G/10M仅需31元每月,点击抢购>>>
点击这里进入阿里云ECS官方页面,立即免费体验云服务器ECS>>>
阿里云老客户点击这里申请VIP账号,享终身8折优惠(续费也打折)>>>
问题现象
在符合如下条件的Alibaba Cloud Linux 2系统的ECS实例中,使用适配CentOS 7系统中的docker-ce、epel第三方YUM源,执行yum install docker-ce命令安装Docker软件包失败,并提示如下报错。
镜像:Alibaba Cloud Linux 2.1903 LTS 64位。
镜像ID:aliyun_2_1903_x64_20G_alibase_20210325.vhd及之前所有版本。
Loaded plugins: fastestmirror, langpacks, update-motdLoading mirror speeds from cached hostfile * epel: mirror.sjtu.edu.cn https://mirrors.aliyun.com/docker-ce/linux/centos/2.1903/x86_64/stable/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found Trying other mirror.Downloading packages: docker-ce-20.10.6-3.el7.x86_64 FAILEDhttps://mirrors.aliyun.com/docker-ce/linux/centos/2.1903/x86_64/stable/Packages/docker-ce-20.10.6-3.el7.x86_64.rpm: [Errno 14] HTTPS Error 404 - Not Found Trying other mirror. docker-ce-rootless-extras-20.1 FAILEDhttps://mirrors.aliyun.com/docker-ce/linux/centos/2.1903/x86_64/stable/Packages/docker-ce-rootless-extras-20.10.6-3.el7.x86_64.rpm: [Errno 14] HTTPS Error 404 - Not Found Trying other mirror. Error downloading packages: 3:docker-ce-20.10.6-3.el7.x86_64: [Errno 256] No more mirrors to try. docker-ce-rootless-extras-20.10.6-3.el7.x86_64: [Errno 256] No more mirrors to try.
第三方YUM源仅适配CentOS 7发行版,Alibaba Cloud Linux 2操作系统与CentOS 7操作系统的 说明 YUM安装docker-ce软件包时,首先会在系统中获取版本号,即 请根据实际需求情况,选择以下对应方案进行修复。 您可以参考方案一:手动修改步骤,通过手动修改 您可以参考方案二:安装插件修改步骤,通过安装yum-plugin-releasever-adapter插件进行修复。 说明 下列操作以docker-ce源为例进行举例,如果您使用的是其他YUM源,解决方法类似。 方案一:手动修改 远程登录Linux实例。 具体操作,请参见通过密码或密钥认证登录Linux实例。 执行以下命令,编辑 按 修改完成后,按下 方案二:安装插件修改 安装yum-plugin-releasever-adapter插件实现 确认实例是否支持使用yum-plugin-releasever-adapter插件。 yum-plugin-releasever-adapter插件目前的版本及默认支持的第三方repo如下表所示: 插件版本 默认支持的第三方repo 插件的限制 1.0-1.3 docker-ce.repo,epel.repo 您需要满足以下条件,才可以使用该插件: 操作系统需要是Alibaba Cloud Linux 2。 执行以下命令,确认系统中存在plus的repo。 系统显示类似如下,说明存在plus的repo。 远程登录Linux实例。 具体操作,请参见通过密码或密钥认证登录Linux实例。 执行以下命令,安装yum-plugin-releasever-adapter插件,插件默认对docker-ce、epel第三方YUM源中的 若无其他的YUM源需要转换,安装插件后即可直接安装软件;若还有其他的YUM源需要转换,请按照以下方式配置: 文件中参数的具体介绍如下所示: 一个 请务必保证新添加到 [main]:为插件的主要控制部分,控制插件的启用与否,其中enabled=1表示启用插件,enabled=0表示停用插件。 [releasevermapping]:为待处理的 [repolist]:为需要修改的源的列表,如果需要添加其他的源,则需要将 执行以下命令,进入指定目录。 执行以下命令,编辑 系统显示类似如下。 说明 保存配置文件,执行以下命令,即可通过docker-ce、epel第三方YUM源安装软件包。 问题原因
$releasever值不同,导致YUM解析后的地址无效,从而下载容器软件包失败。$releasever值,然后替换相应YUM源中baseurl地址对应的$releasever变量,YUM从替换后的baseurl地址中获取相关数据。由于CentOS 7操作系统的$releasever值为7,Alibaba Cloud Linux 2操作系统的$releasever值为2.1903,因此解析后的baseurl地址并非预期地址,YUM便无法从这个错误的地址中获取数据。解决方案
$releasever变量值进行修复。/etc/yum.repos.d/docker-ce.repo配置文件。vim /etc/yum.repos.d/docker-ce.repo
i键切换至编辑模式,找到docker-ce.repo文件中所有enabled=1值的源,将源中baseurl地址的$releasever变量修改为7,修改之后的内容如下所示。
Esc键后,输入:wq并回车以保存并关闭配置文件,重新安装软件包即可。$releasever值的自动转换,即将2.1903转换为7。cat /etc/yum.repos.d/AliYun.repo |grep -A3 plus

$releasever值自动进行转换。yum install yum-plugin-releasever-adapter --disablerepo=* --enablerepo=plus
.repo文件中有多个可以使用的源,每个源都有一个独立的名称区分其他的源,同时一个系统中不能出现重复的名称,例如:docker-ce.repo中有[docker-ce-stable]和[docker-ce-stable-debuginfo]等源。releasever-adapter.conf配置文件中的源文件名称是源文件内各个源名称的前缀,例如:docker-ce.repo源文件中包含的docker-ce-stable和docker-ce-stable-debuginfo两个源名称,均以docker-ce为前缀。$releasever的映射关系,其中2.1903映射为7,3映射为8。.repo文件的名字添加在include字段后面,并以逗号隔开。cd /etc/yum/pluginconf.d/
releasever-adapter.conf配置文件。如果需要添加其他的YUM源,则需要将YUM源的.repo文件名添加在includes字段后面,并以逗号隔开。vim releasever-adapter.conf
[main]
enabled=1hostfilepath=timedhosts.txt[releasevermapping]
release_dict={'2.1903':'7', '3':'8'}
[reposlist]
includes=docker-ce.repo, epel.repoyum install docker-ce
推荐:TOP云智能建站优惠活动,仅880元即可搭建一个后台管理五端合一的智能网站(PC网站、手机网站、百度智能小程序、微信小程序、支付宝小程序),独享百度搜索SEO优势资源,让你的网站不仅有颜值有排面,更有排名,可以实实在在为您带来效益,请点击进入TOP云智能建站>>>,或咨询在线客服了解详情。


湘公网安备43019002001857号
备案号:
客服1