Si R parvient à installer un paquet mais que ce paquet n'atteint pas son API, comparez les deux clients de requête. download.file(), RCurl et la couche HTTP propre à un paquet ne lisent pas nécessairement les mêmes options.

Vérifiez les entrées de la session en cours

Un programme lancé depuis un terminal hérite de l'environnement de ce terminal. Un raccourci du bureau ou un IDE déjà démarré peut avoir d'autres valeurs. Le fichier d'environnement de démarrage R approprié peut contenir :

http_proxy=http://proxy.example:8080
https_proxy=http://proxy.example:8080

Ce sont des entrées de fichier d'environnement avec un point de terminaison d'exemple. Pour les requêtes publiques vers des paquets ou l'API autorisées via des intermédiaires publics, la liste de proxies HTTP propose des candidats pour ces valeurs. Les expressions R telles que options(download.file.method = "libcurl") appartiennent au code R, pas à .Renviron. Placer un réglage qui semble correct dans le mauvais format le laisse inutilisé.

Identifiez le fichier de démarrage choisi par les règles de R relatives au site/utilisateur, à l'environnement et au répertoire de travail. Un fichier local au projet peut expliquer une différence entre deux projets dans le même IDE. Modifiez le fichier voulu et redémarrez la session concernée ; le modifier ne met pas à jour le processus déjà en cours.

Suivez la requête du paquet qui échoue

Identifiez la méthode de téléchargement ou l'implémentation HTTP réelle. Un exécutable curl externe, la méthode libcurl de R et RCurl sont des consommateurs distincts avec leurs propres entrées prises en charge. Comparez la même destination via le paquet qui échoue, secrets masqués.

Gardez les recettes alignées sur cette implémentation et cette version de R. L'ancien conseil Windows --internet2 décrit un comportement historique. Conservez aussi le schéma de transport du véritable écouteur de proxy : une destination HTTPS peut encore utiliser un point de terminaison de proxy HTTP. Une installation réussie via un autre téléchargeur n'établit ni la configuration de ce client ni la disponibilité du proxy pour cette requête.

Articles similaires