قد تستخدم نسخة R المثبّتة في بيئة Conda نسخة libcurl مختلفة عن ملف curl التنفيذي في الطرفية. اسأل جلسة R الفاشلة عن المكتبة التي تستخدمها فعليًا:

info <- libcurlVersion()
info
attr(info, 'ssl_version')
attr(info, 'protocols')

تُبلّغ قيمة الأحرف عن إصدار libcurl المرتبط. تحدّد سمة ssl_version تنفيذ TLS، بينما تسرد protocols بروتوكولات الوجهة التي تدعمها تلك المكتبة. تصف هذه مسار libcurl المدمج في R، وليس أمر shell باسم curl.

طابِق التقرير مع طريقة التنزيل

يستخدم download.file مع method='libcurl' هذه المكتبة. بينما method='curl' يشغّل الملف التنفيذي الخارجي. يستخدم الاختيار التلقائي الحالي لـ HTTP(S) مكتبة libcurl، وقد يُبقي خيار download.file.method بقيمة NULL هذا الافتراضي ساريًا.

نفّذ الفحص في البيئة الفعلية التي تختارها المهمة أو بيئة التطوير. قد تُبلّغ نسخة R أخرى عن إصدار أو خلفية TLS مختلفة حتى عندما تبدو نصوصها البرمجية متطابقة.

وجود بروتوكول https في القائمة يعني دعم وجهات HTTPS. ولا يثبت أن مستمع وكيل معين يقبل TLS. فالوكيل HTTP العادي لتنزيل HTTPS لا يزال يحمل عنوان وكيل http://.

احتفظ بتقرير المكتبة إلى جانب الطريقة المختارة وخطأ الاتصال. فشل الشهادة ومخطط الوكيل غير المدعوم والمستمع المرفوض تبقى نتائج مختلفة؛ ورقم الإصدار وحده ليس تشخيصها.

مقالات ذات صلة