R-proxydiagnose: libcurl-versie, TLS-backend en protocollen
Inspecteer de versie, TLS-implementatie en protocolattributen van de aan R gekoppelde libcurl apart van een externe curl-uitvoerbaar bestand.
De in een Conda-omgeving geïnstalleerde R kan een andere libcurl-build gebruiken dan het curl-uitvoerbare bestand in de terminal. Vraag de R-sessie die mislukt welke bibliotheek deze werkelijk heeft:
info <- libcurlVersion()
info
attr(info, 'ssl_version')
attr(info, 'protocols')
De tekenwaarde meldt de versie van de gekoppelde libcurl. Het attribuut ssl_version identificeert de TLS-implementatie, terwijl protocols de doelprotocollen opsomt die die bibliotheek ondersteunt. Ze beschrijven het ingebouwde libcurl-pad van R, niet een shell-opdracht met de naam curl.
Stem het rapport af op de downloadmethode
download.file met method='libcurl' gebruikt deze bibliotheek. method='curl' start het externe uitvoerbare bestand. De huidige automatische HTTP(S)-selectie gebruikt libcurl, en een download.file.method-optie met de waarde NULL kan die standaard laten staan.
Voer de inspectie uit in de werkelijke omgeving die de taak of IDE selecteert. Een andere R-installatie kan een andere versie of TLS-backend melden, zelfs wanneer de scripts identiek lijken.
Een vermeld https-protocol betekent dat HTTPS-bestemmingen worden ondersteund. Het bewijst niet dat een bepaalde proxy-listener TLS accepteert. Een gewone HTTP-proxy voor een HTTPS-download heeft nog steeds een proxy-URL met http://.
Bewaar het bibliotheekrapport samen met de gekozen methode en de verbindingsfout. Een certificaatfout, een niet-ondersteund proxyschema en een geweigerde listener blijven verschillende bevindingen; een versienummer alleen is niet hun diagnose.