我配置了两个存储库,一个通过baseurl=http://...
访问,另一个通过baseurl=file://...
(本地存储库)访问。当我运行此命令时:
sudo yum -y update --downloadonly --downloaddir=foo
该命令运行并列出许多软件包。但是foo
仅包含来自远程仓库的软件包,而不包含本地软件包。我如何也“下载”本地文件?
我想做的是将本地存储库配对,该本地存储库包含的RPM比我需要的要多得多,而仅与运行更新所需的RPM无关。想法是创建一个仅包含我所需内容的新本地存储库。
答案 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()