我在配置使用 HTTP/Apache 提供的 Yum 存储库时遇到了问题。
我想使用 http 基本身份验证,并将监听端口设置为 80 以外的端口,因为这个 repo 在我的 DMZ 中。我试图通过如下设置我的 baseurl 来做到这一点(来 self 的 repo 文件):
baseurl=http://user:password@<my-ip>:<my-non-80-port>/yum/RHEL/7/base/$basearch/
yum.conf 的文档表明您可以像我上面那样通过将用户名/密码添加到 URL 来进行基本的 http 身份验证。当我尝试从客户端执行 yum search mysql
时出现以下错误:
[Errno 14] HTTP Error 401: Authorization Required
这向我表明,指定端口的额外“:”混淆了 yum 对我的 url 的解析。我删除了端口,将服务器重新设置为端口 80,它可以正常工作。
看来您不能进行基本的 http 身份验证并更改 Web 服务器监听的端口号。我注意到在较新版本的 Yum 中有 username
和 password
指令,但我的版本似乎没有这个指令(我正在运行 yum-3.2.22- 37.0.1.el5)。有什么解决方法吗?
最佳答案
我通过将以下行添加到我的 yum 配置来关闭插件来解决这个问题。
plugins=0
我认为解决方法有效,因为基础 yum 更新程序可以很好地处理来自 baseurl 的授权信息,但是一些插件(例如 fastmirror 插件)没有正确记住授权。因此,我在没有启用插件的情况下的行为是,最初更新会起作用,然后它会开始失败,并出现问题中的授权错误。一旦我禁用了插件,一切就开始正常工作了。
关于http - yum 客户端配置 : How to use basic authentication with a port other than 80?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10182050/