Installing packages on RStudio Connect from behind a proxy



If your system is behind an HTTP proxy then additional configuration may be required for your RStudio Connect system to connect to CRAN or other servers needed to install packages. The required configuration varies depending on what type of HTTP connection you are making to the server. Without this configuration (or if this is incorrectly configured) you may see an error like

"Failed to retrieve package sources ...(internet connectivity issue?)"

Note that you will need to ensure that these proxy settings are set for the user that is being used to invoke R - this can be found by looking at the RunAs configuration in the Applications section of your /etc/rstudio-connect/rstudio-connect.gcfg file. By default this is the rstudio-connect user - see here for more.

The default HTTP connection type is rcurl however addition connection types curl and internal are also supported. The HTTP connection type is configured using the rsconnect.http global option - see ?rsconnect::rsconnectOptions for more.

HTTP Proxy Environment Variable

The most straightforward way to specify a proxy for rcurl and curl connections is to set the http_proxy environment variable. Note that because RStudio Connect does not launch bash sessions, this must be set somewhere in your R startup files or in a Connect program supervisor.

For example, you could add the following code to the /R_HOME/etc/ file so it applies to all users:

Sys.setenv(http_proxy = "")

Proxy settings can include a host-name, port, and username/password if necessary. The following are all valid values for the http_proxy environment variable:

Setting RCurl Proxy Options

The default HTTP connection type is rcurl. If you need more configurability than offered by the http_proxy environment variable you can specify RCurl proxy options explicitly using RCurlOptions. For example, you could add the following code to the .Rprofile for the rstudio-connect user:

options(RCurlOptions = list(proxy = "")

You can set any underling curl option using this mechanism. To do this you translate curl options to lowercase and remove the CURL_ prefix (for example, CURLOPT_PROXYPORT becomes proxyport).

A list of available curl options can be found here: curl http proxy options.