Fedora 26: dnf 업데이트가 프록시 뒤에서 작동하지 않음 - 저장소 '업데이트'에 대한 캐시를 동기화할 수 없습니다.

Fedora 26: dnf 업데이트가 프록시 뒤에서 작동하지 않음 - 저장소 '업데이트'에 대한 캐시를 동기화할 수 없습니다.

Fedora 26에서 이 작업을 수행하면 sudo dnf -v update오류가 발생합니다.

>     Loaded plugins: builddep, config-manager, copr, debug, debuginfo-install, download, generate_completion_cache,
> needs-restarting, playground, repoclosure, repograph, repomanage,
> reposync, system-upgrade
>     DNF version: 2.6.3
>     cachedir: /var/cache/dnf
>     Cannot download 'http://download.fedoraproject.org/pub/fedora/linux/updates/26/x86_64/':
> Cannot download repomd.xml: Cannot download repodata/repomd.xml: All
> mirrors were tried.
>     Error: Failed to synchronize cache for repo 'updates'

dnf.conf에서 시스템 전체 프록시와 프록시를 구성했습니다. 다른 연결(예: 브라우저)에서는 이 프록시를 사용할 수 있습니다. 프록시에는 인증이 필요합니다. proxy_usernamednf.conf 및 에 필요한 값을 설정 했습니다 proxy_password.

.bashrc 설정도 있습니다 http_proxy=http://username:password@proxy:port/. 그런 다음 을 실행하면 curl http://download.fedoraproject.org/pub/fedora/linux/updates/26/x86_64/repodata/repomd.xmlHTTP 407로 인해 실패합니다. --proxy-ntlm다음에 따라 . 를 추가하면부기라, dnf호출 시 NTLM을 허용하도록 패치되었습니다 libcurl.

그러나 yumKerberos/"협상" 인증을 비활성화하는 것도 유용합니다. 어떤 경우에는 이것이 제공되는 첫 번째 옵션이 되고 NTLM이 작동하는 곳에서는 실패하기 때문입니다. 두 번째 문제는 패치를 제공했지만 첫 번째 문제만 수정한 후 버그가 닫혔습니다...

어떻게 dnf update출근할 수 있나요?

답변1

마침내 해결책을 찾았습니다. 문제는 아직 수정되지 않은 이 버그입니다. https://bugzilla.redhat.com/show_bug.cgi?id=1387622

/usr/lib/python3.6/site-packages/dnf/repo.py를 편집하고 다음을 변경해야 했습니다.

-        h.setopt(librepo.LRO_PROXYAUTH, True)
+        h.setopt(librepo.LRO_PROXYAUTHMETHODS, 8)

답변2

~에 따르면부기라, dnf호출 시 NTLM을 허용하도록 패치되었습니다 libcurl.

그러나 yumKerberos/"협상" 인증을 비활성화하는 것도 유용합니다. 어떤 경우에는 이것이 제공되는 첫 번째 옵션이 되고 NTLM이 작동하는 곳에서는 실패하기 때문입니다. 두 번째 문제에 대한 패치가 제공되었지만 첫 번째 문제만 수정한 후 버그가 닫혔습니다. NTLM이 효과가 있었다는 점을 고려하면 이것이 문제일 가능성이 높습니다. (예를 들어 Wireshark를 사용하여 캡처하는 경우 오류를 보고 HTTP 응답 헤더에 대한 자세한 내용을 알아볼 수 있습니다.)

이 경우 현재 사용 가능한 유일한 솔루션은 로컬 시스템에 프록시를 설정하여 기본 인증을 NTLM 인증 또는 유사한 인증으로 변환하는 것 같습니다. 바라보다NTLM-APS.

답변3

dnf.conf에 추가

proxy=http://cisco-wsa.internal.net:3128
proxy_username=myusername
proxy_password=VeryStrongPassword

관련 정보