¿Cómo le digo al intérprete de R cómo usar el servidor proxy?

Estoy tratando de obtener R (ejecutando en Windows) para descargar algunos paquetes de Internet, pero la descarga falla porque no puedo hacer que use correctamente el servidor proxy necesario. El texto de salida cuando bash la opción de menú de Windows Paquetes > Instalar paquete (s) … y seleccionar un espejo CRAN es:

> utils:::menuInstallPkgs()
--- Please select a CRAN mirror for use in this session ---
Warning: unable to access index for repository http://cran.opensourceresources.org/bin/windows/contrib/2.12
Warning: unable to access index for repository http://www.stats.ox.ac.uk/pub/RWin/bin/windows/contrib/2.12
Error in install.packages(NULL, .libPaths()[1L], dependencies = NA, type = type) :
no packages were specified
In addition: Warning message:
In open.connection(con, "r") :
cannot open: HTTP status was '407 Proxy Authentication Required'

Sé la dirección y el puerto del proxy, y también sé la dirección del script de configuración automática. No sé cómo se llama la autenticación, pero cuando uso el proxy (en un navegador y algunas otras aplicaciones), ingreso un nombre de usuario y contraseña en una ventana de diálogo que aparece.

Para configurar el proxy, intenté cada uno de los siguientes:

  • Sys.setenv(http_proxy="http://proxy.example.com:8080")
  • Sys.setenv("http_proxy"="http://proxy.example.com:8080")
  • Sys.setenv(HTTP_PROXY="http://proxy.example.com:8080")
  • Sys.setenv("HTTP_PROXY"="http://proxy.example.com:8080")

Para la autenticación, de manera similar intenté establecer la variable de entorno http_proxy_user en:

  • ask
  • user:passwd
  • Dejándolo intacto

¿Estoy usando los comandos correctos de la manera correcta?

Tienes dos opciones:

  1. Use –internet2 o setInternet2 (TRUE) y configure los detalles del proxy en el panel de control, en Opciones de Internet
  2. No use ni –internet2 ni setInternet2 (FALSE), pero especifique las variables de entorno

EDITAR: Un truco es que no puede cambiar de opinión entre 1 y 2, después de haberlo intentado en una sesión, es decir, si ejecuta el comando setInternet2 (TRUE) y trata de usarlo, por ejemplo install.packages (‘reshape2’), si esto falla, no puede llamar a setInternet2 (FALSE). Tienes que reiniciar la sesión R

A partir de la versión 3.2.0 de R, la función setInternet2 puede configurar los ajustes de conexión a Internet y cambiarlos dentro de la misma sesión R. No es necesario reiniciar.


Al usar la opción 2, una forma (que es buena y compacta) de especificar el nombre de usuario y la contraseña es http_proxy = “http: // usuario: password@proxy.example.com: 8080 /”

En el pasado, he tenido más suerte con la opción 2

Si desea utilizar internet2 cada vez que utiliza R, puede agregar la siguiente línea al archivo Rprofile.site que se encuentra en Rxx \ etc \ Rprofile.site

 utils::setInternet2(TRUE) 

install.packages (“RCurl”)

Eso resolverá su problema.