yum / curl не может получить из репозитория IPv6: неверный запрос 400 - PullRequest
0 голосов
/ 06 августа 2020

Yum не может получить пакеты из репо с IPv6-адресом:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<p>Additionally, a 400 Bad Request
error was encountered while trying to use an ErrorDocument to handle the request.</p>
</body></html>

Проблема может быть воспроизведена с помощью curl.

При использовании curl временным решением является добавление --globoff параметр.

Однако, кажется, не существует очевидного способа сделать это с помощью yum. Yum не имеет параметра --globoff или какого-либо очевидного способа передать произвольные параметры в curl.

По-видимому, в последних версиях yum есть исправление ошибки (https://bugzilla.redhat.com/show_bug.cgi?id=1076277 ), чтобы автоматически добавить параметр globoff при вызове curl, но, похоже, по какой-то причине этого не происходит (возможно, моя версия yum слишком устарела. Но даже если это сработает, обновление yum не является проблемой идеальный вариант по разным причинам).

1 Ответ

0 голосов
/ 07 августа 2020

Оказывается, проблема возникает только в том случае, если имя хоста используется в baseurl, не возникает, если используется адрес IPv6.

Это не работает:

[rpm_server]
name=RPM repository
baseurl=http://<hostname>/repo/rh7.7/

Это работает:

[rpm_server]
name=RPM repository
baseurl=http://<IPv6 address>/repo/rh7.7/

Предположение, но, возможно, явное указание адреса IPv6 вместо имени хоста позволяет yum понять, что он имеет дело с хостом IPv6, и передать --globoff в curl.

...