R のプロキシ診断:libcurl のバージョン、TLS バックエンド、プロトコル
R にリンクされた libcurl のバージョン、TLS 実装、プロトコル属性を、外部の curl 実行ファイルとは別に確認します。
Conda 環境にインストールされた R は、ターミナルの curl 実行ファイルとは異なる libcurl ビルドを使っていることがあります。失敗している R セッションに、実際にどのライブラリを持っているかを尋ねます。
info <- libcurlVersion()
info
attr(info, 'ssl_version')
attr(info, 'protocols')
文字列の値はリンクされた libcurl のバージョンを報告します。その ssl_version 属性は TLS 実装を識別し、protocols はそのライブラリが対応する宛先プロトコルを一覧にします。これらは R に組み込まれた libcurl の経路を表し、curl という名前のシェルコマンドを表すものではありません。
レポートをダウンロード方法と照合する
method='libcurl' を指定した download.file はこのライブラリを使います。method='curl' は外部の実行ファイルを起動します。現在の自動 HTTP(S) 選択は libcurl を使い、download.file.method オプションが NULL のままだとこの既定値が維持されることがあります。
検査は、ジョブや IDE が選択した実際の環境で実行します。別の R インストールでは、スクリプトが同じに見えても別のバージョンや TLS バックエンドを報告することがあります。
https プロトコルが一覧にあれば、HTTPS の宛先がサポートされています。それは特定のプロキシリスナーが TLS を受け入れることを証明するものではありません。HTTPS ダウンロード用の通常の HTTP プロキシでも、プロキシ URL は http:// のままです。
ライブラリのレポートは、選択した方法と接続エラーと一緒に保管してください。証明書の失敗、未対応のプロキシ方式、拒否されたリスナーは引き続き別々の発見です。バージョン番号だけではその診断にはなりません。