yum --downloadonly会忽略本地存储库中的软件包

时间:2019-10-09 00:47:39

标签: centos rpm yum

我配置了两个存储库,一个通过baseurl=http://...访问,另一个通过baseurl=file://...(本地存储库)访问。当我运行此命令时:

sudo yum -y update --downloadonly --downloaddir=foo

该命令运行并列出许多软件包。但是foo仅包含来自远程仓库的软件包,而不包含本地软件包。我如何也“下载”本地文​​件?

我想做的是将本地存储库配对,该本地存储库包含的RPM比我需要的要多得多,而仅与运行更新所需的RPM无关。想法是创建一个仅包含我所需内容的新本地存储库。

1 个答案:

答案 0 :(得分:0)

通过阅读yum源代码,我已经确认这是预期的但令人讨厌的行为。

我找到的解决方案是:

在回购文件中:

[local]
name=local
baseurl=http://localhost:9999

在Python中:

import http.server
import socketserver
import threading
os.chdir('/path to repo')
# We need the web server to run in its own thread
class ThreadedTCPServer(socketserver.ThreadingMixIn, socketserver.TCPServer):
  pass
httpd = ThreadedTCPServer(("127.0.0.1", 9999), http.server.SimpleHTTPRequestHandler)
httpd_thread = threading.Thread(target=httpd.serve_forever)
httpd_thread.daemon = True
httpd_thread.start()

...
yum stuff
...

httpd.shutdown()
httpd.server_close()