使用Centos 的yum命令安装 vi编辑器时出现 Error: Failed to download metadata for repo ‘appstream‘

使用Centos 的yum命令安装 vi编辑器时出现Error: Failed to download metadata for repo ‘appstream‘

Error: Failed to download metadata for repo ‘appstream‘: Cannot prepare internal mirrorlist

上面的报错信息意思是,从仓库 ‘appstream’ 下载元数据失败:由于镜像列表中没有 URL,不能准备内部镜像列表。

第一种可能的情况便是网络连接问题。检查是否可以连接外部网络,可以使用 ping baidu.com 查看是否有丢包情况。如果丢包,则进一步检查网络连接是否正常;如果没有丢包,继续阅读下文

那么第二种情况,便是 CentOS 已经停止维护的问题。2020 年 12 月 8 号,CentOS 官方宣布了停止维护 CentOS Linux 的计划,并推出了 CentOS Stream 项目,CentOS Linux 8 作为 RHEL 8 的复刻版本,生命周期缩短,于 2021 年 12 月 31 日停止更新并停止维护(EOL),更多的信息可以查看 CentOS 官方公告。如果需要更新 CentOS,需要将镜像从 mirror.centos.org 更改为 vault.centos.org

那么针对上面提到的第二种情况,给出的解决方法如下:

  1. 修改yum软件源
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
  1. 更新yum缓存
yum makecache
yum update -y
  1. 运行安装命令
yum -y install vim

如果是从Dockerfile 构建镜像可以在安装vim前添加以下代码

RUN sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
RUN sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
RUN yum makecache
RUN yum update -y

完整示例

FROM centos
MAINTAINER xxxx<xxxx@github.com>
 
ENV MYPATH /usr/local
WORKDIR $MYPATH
 
#修改yum镜像源
RUN sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
RUN sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
#更新yum缓存
RUN yum makecache
RUN yum update -y

#安装vim编辑器
RUN yum -y install vim
#安装ifconfig命令查看网络IP
RUN yum -y install net-tools
#安装java8及lib库
RUN yum -y install glibc.i686
RUN mkdir /usr/local/java
#ADD 是相对路径jar,把jdk-8u171-linux-x64.tar.gz添加到容器中,安装包必须要和Dockerfile文件在同一位置
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/
#配置java环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
 
EXPOSE 80
 
CMD echo $MYPATH
CMD echo "success--------------ok"
CMD /bin/bash
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当在 CentOS使用 yum 安装软件出现 "Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist" 错误,这通常是由于存储库配置问题引起的。您可以尝试以下解决方法: 1. 清除 yum 缓存并重新生成缓存: ``` sudo yum clean all sudo yum makecache ``` 这将清除旧的缓存并重新下载最新的元数据。 2. 检查 `/etc/yum.repos.d` 目录下的存储库配置文件: ``` cd /etc/yum.repos.d ls ``` 确保 appstream 相关的存储库配置文件存在且正确。如果没有,请尝试重新配置或添加相应的存储库配置文件。 3. 确保网络连接正常: 检查您的网络连接是否正常,并确保可以访问互联网。您可以尝试使用 `ping` 命令来测试网络连接是否正常。 ``` ping www.google.com ``` 如果无法访问互联网,可能需要检查网络设置或联系网络管理员。 4. 更换镜像源: 如果上述步骤都无效,您可以尝试更换其他的镜像源。在 `/etc/yum.repos.d` 目录中,有许多存储库配置文件,您可以编辑其中的文件,并将 `baseurl` 或 `mirrorlist` 链接更换为其他可用的镜像源。 例如,将 `baseurl` 更换为 CentOS 官方镜像源: ``` baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ ``` 然后重新运行 `sudo yum makecache` 命令以重新生成缓存。 如果问题仍然存在,请提供更多的上下文信息,例如完整的错误消息和存储库配置文件内容,以便我能够提供更具体的帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值