yum --downloadonly игнорирует пакеты в локальном репо - PullRequest
3 голосов
/ 09 октября 2019

У меня настроено два репо, одно из которых доступно через baseurl=http://..., а другое через baseurl=file://... (локальное репо). Когда я запускаю эту команду:

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

Команда запускается и перечисляет много пакетов. Однако foo содержит только пакеты из удаленного репо, а не из локального. Как мне также «загрузить» локальные файлы?

Я пытаюсь создать пару локальных репо, содержащих гораздо больше RPM, чем мне нужно, до тех, которые мне нужны для запуска обновления. Идея заключается в создании нового локального репо, содержащего только то, что мне нужно.

1 Ответ

0 голосов
/ 12 октября 2019

Я подтвердил, прочитав исходный код 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()
...