"libcurl에서 프로토콜 http가 지원되지 않거나 비활성화되었습니다."라는 메시지가 나타나는 이유는 무엇입니까?

"libcurl에서 프로토콜 http가 지원되지 않거나 비활성화되었습니다."라는 메시지가 나타나는 이유는 무엇입니까?

다음 명령을 사용하여 OpenSUSE Leap 42.3(WSL에서 실행)에 저장소를 추가하려고 합니다.

sudo zypper addrepo https://download.opensuse.org/repositories/devel:languages:php/openSUSE_Leap_42.3/devel:languages:php.repo

다음 오류가 발생합니다.

다운로드(컬) 오류'https://download.opensuse.org/repositories/devel:언어:php/openSUSE_Leap_42.3/devel:언어:php.repo': 오류 코드: 잘못된 URL 오류 메시지: 프로토콜 http가 libcurl에서 지원되지 않거나 비활성화되었습니다.

https를 프로토콜로 사용할 때 http에 대한 오류 메시지가 혼란스럽고 curl --versionhttps를 제안하는 출력이 지원되는 프로토콜이라는 사실이 더욱 혼란스럽다는 사실을 발견했습니다.

컬 7.37.0 (x86_64-suse-linux-gnu) libcurl/7.37.0 OpenSSL/1.0.2j zlib/1.2.8 libidn/1.28 libssh2/1.4.3
프로토콜: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
기능: 비동기 DNS GSS 협상 IDN IPv6 대용량 파일 NTLM NTLM_WB SSL libz TLS-SRP

을 사용하면 zypper info libssl43다음과 같은 결과를 얻습니다.

Information for package libssl43:
---------------------------------
Repository     : oss
Name           : libssl43
Version        : 2.5.3-6.1
Arch           : x86_64
Vendor         : openSUSE
Installed Size : 360.0 KiB
Installed      : Yes
Status         : up-to-date
Source package : libressl-2.5.3-6.1.src
Summary        : An SSL/TLS protocol implementation
Description    :
    LibreSSL is an open-source implementation of the Secure Sockets Layer
    (SSL) and Transport Layer Security (TLS) protocols. It derives from
    OpenSSL and intends to provide a more secure implementation.

출력은 zypper info libcrypto41다음과 같습니다. (libcrypto41은 libssl43의 종속성입니다.)

Information for package libcrypto41:
------------------------------------
Repository     : oss
Name           : libcrypto41
Version        : 2.5.3-6.1
Arch           : x86_64
Vendor         : openSUSE
Installed Size : 2.0 MiB
Installed      : Yes (automatically)
Status         : up-to-date
Source package : libressl-2.5.3-6.1.src
Summary        : An SSL/TLS protocol implementation
Description    :
    The "crypto" library implements a wide range of cryptographic
    algorithms used in various Internet standards. The services provided
    by this library are used by the LibreSSL implementations of SSL, TLS
    and S/MIME, and they have also been used to implement SSH, OpenPGP,
    and other cryptographic standards.

https URL을 사용하는 방법은 무엇입니까? 대신 http를 사용할 수 있지만 그 경로로 가고 싶지 않습니다.

답변1

내가 찾은주제: zypper https url: 'http' 프로토콜은 libcurl에서 지원되지 않거나 비활성화됩니다., 링크가 포함되어 있습니다.주제: /home/~/.cache/kioexec/krun/####_#의 캐시 파일? 그것을 피하는 방법?

이 게시물의 내용에 따라 시도해 보았는데 curl https://download.opensuse.org/repositories/devel:languages:php/openSUSE_Leap_42.3/devel:languages:php.repo다음과 같이 출력됩니다.

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://download.opensuse.org/repositories/devel:languages:/php/openSUSE_Leap_42.3/devel:languages:php.repo">here</a>.</p>
<hr>
<address>Apache/2.2.34 (Linux/SUSE) Server at download.opensuse.org Port 443</address>
</body></html>

따라서 은( https://download.opensuse.org/repositories/devel:languages:php/openSUSE_Leap_42.3/devel:languages:php.repo는) 으로 리디렉션되며 http://download.opensuse.org/repositories/devel:languages:/php/openSUSE_Leap_42.3/devel:languages:php.repo, 리디렉션이 https://에서 http://로 이루어지므로 Zypper는 따르지 않습니다.

즉, 서버는 아직 https:// URL로 작동하지 않으며 임시 해결 방법은 http:// URL을 사용하는 것입니다. 아무 문제 없이 OpenSuse 42.3을 설치했습니다.

답변2

해결 방법으로 다음 파일 /etc/zypp/repos.d/php.repo과 해당 내용을 루트로 수동으로 추가할 수 있습니다.

[devel_languages_php]
name=devel:languages:php (openSUSE_Leap_42.3)
type=rpm-md
baseurl=http://download.opensuse.org/repositories/devel:/languages:/php/openSUSE_Leap_42.3/
gpgcheck=1
gpgkey=http://download.opensuse.org/repositories/devel:/languages:/php/openSUSE_Leap_42.3/repodata/repomd.xml.key
enabled=1

위 URL의 내용은 다음과 같습니다.http://download.opensuse.org/repositories/devel:/언어:/php/openSUSE_Leap_42.3/devel:언어:php.repo

관련 정보