「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を提案する出力がサポートされているプロトコルであるという事実がさらに混乱していることがわかりました。

curl 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 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

関連情報