Yus*_*suf 105 centos yum docker devops
我正在尝试使用我在 Dockerfile 中指定的 centOs 上的 yum 下载 java。拉取 centOs 映像后,运行崩溃并抛出此错误!?还要提一下,我的服务器实例是AWS EC2!
Step 2/9 : RUN yum install java -y
---> Running in 39fc233aa965
CentOS Linux 8 - AppStream 184 B/s | 38 B 00:00
Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
The command '/bin/sh -c yum install java -y' returned a non-zero code: 1
Run Code Online (Sandbox Code Playgroud)
小智 180
尝试编辑你的 dockerfile
FROM centos
RUN cd /etc/yum.repos.d/
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 -y install java
CMD /bin/bash
Run Code Online (Sandbox Code Playgroud)
参考这段代码
失败的元数据-repo-appstream-centos-8
Has*_*own 78
如果您还没有,您将需要 gpg 密钥:
wget 'http://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/Packages/centos-gpg-keys-8-3.el8.noarch.rpm'
sudo rpm -i 'centos-gpg-keys-8-3.el8.noarch.rpm'
Run Code Online (Sandbox Code Playgroud)
然后就像这样简单地转换:
dnf --disablerepo '*' --enablerepo=extras swap centos-linux-repos centos-stream-repos
Run Code Online (Sandbox Code Playgroud)
别担心——它不会删除任何存储库,它只是暂时忽略您的所有存储库,并下载有关新镜像的信息。
此时您可能想要实际升级您的软件包:
sudo dnf distro-sync
Run Code Online (Sandbox Code Playgroud)
您现在可以像往常一样使用“yum”。
Lee*_*Lee 75
去/etc/yum.repos.d/
cd /etc/yum.repos.d/
Run Code Online (Sandbox Code Playgroud)
跑步
sudo sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
sudo yum update -y
Run Code Online (Sandbox Code Playgroud)
然后做你想做的事
sta*_*tor 22
CentOS 8 于 2021 年 12 月 31 日停止运行(公告)。
因此,镜像的 URL 不再起作用。CentOS官方建议通过以下方式从 CentOS Linux 8 转换为 CentOS Stream 8 sed,而不是修改 URL 以指向存档镜像:
dnf --disablerepo '*' --enablerepo extras swap centos-linux-repos centos-stream-repos
dnf distro-sync
Run Code Online (Sandbox Code Playgroud)
之后,dnf/yum将再次工作。
Dan*_*ski 17
我尝试将 CentOS 8 与 wsl 一起使用,但遇到了同样的错误。解决问题的步骤(以 root 身份):
# 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-*
# dnf distro-sync
# dnf -y install java
Run Code Online (Sandbox Code Playgroud)
投票最高的答案对我不起作用(@Hashbrown)。Dockerfile 的答案也不适合我的情况。
sfl*_*z05 14
使用以下命令更新 AWS EC2 上的 centOS8.0:
sudo sed -i -e "s|mirrorlist=|#mirrorlist=|g" \
-e "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" \
/etc/yum.repos.d/CentOS-*
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
217821 次 |
| 最近记录: |