我的机器的操作系统是Oracle Linux Server 7.5。
我需要通过存储库准确地安装命令yum --enablerepo=packages-microsoft-com-prod install mdatp
,但我收到如下错误:
libatomic-4.8.5-44.el7.x86_64: [Errno 256] No more mirrors to try.
libnetfilter_queue-1.0.2-2.el7_2.x86_64: [Errno 256] No more mirrors to try.
我使用了该命令yum repolist
,它向我报告了这一点:
Repository 'ol7_software_collections': Error parsing config: Error parsing "baseurl = 'file:///run/media/root/OL7.5 Server.src/'": URL must be http, ftp, file or https not ""
我继续了/etc/yum.repos.d/我发现:
- 媒体库
- 产品仓库
- 公共-yum-ol7.repo
- 公共-yum-ol7.repoold
我打开了文件公共-yum-ol7.repo
[ol7_software_collections]
name=OracleLinux7
baseurl=file:///run/media/root/OL7.5 Server.src/
gpgcheck=0
enabled=1
我找不到错误,我错在哪里?
答案1
该错误可能是由于存储库路径中的空白造成的;以某种方式引用它:
- 带反斜杠:
baseurl=file:///run/media/root/OL7.5\ Server.src
或者
- 带有“%20”:
baseurl=file:///run/media/root/OL7.5%20Server.src
或者
- 带单引号:
baseurl='file:///run/media/root/OL7.5 Server.src'
或者
- 带双引号:
baseurl="file:///run/media/root/OL7.5 Server.src"
URL 值使用 urlparse python 库进行解析: https://github.com/rpm-software-management/yum/blob/master/yum/config.py#L230 如果失败,它会打印“URL 必须是 %s 而不是“%s”错误字符串。
这本书红帽企业 Linux 7:桌面和管理还提到了单引号或反斜杠方法:
将整个引用括在单引号中,以便可以读取 RHEL-7.3 后面的空格,或者在空格之前放置反斜杠。
一个较旧的参考文献(包含 2008 年的答案)是如何编写包含空格的路径的baseurl页面,其中提到:
- baseurl=文件:///media/Fedora%208%20i386%20DVD/Packages
- baseurl=文件:///media/Fedora\ 8\ i386\ DVD/Packages
- baseurl =“文件:///media/Fedora 8 i386 DVD/Packages”
(尽管这些尝试对于原帖者来说似乎失败了)
答案2
解析 baseurl 时遇到问题,因为 OL7.5 和 Server.src 之间的路径中有空格。
尝试将其放在引号中,如下所示:
baseurl="file:///run/media/root/OL7.5 Server.src/"
或者使用 %20 代替空格,如下所示:
baseurl=file:///run/media/root/OL7.5%20Server.src/