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.

Gerelateerde artikelen