In general, don't do this. Most of the time, Code Ocean's available package managers will be simple and quick to use.
You may need to use the postInstall script, however, if you:
need to install packages in a very specific order;
build packages that are no longer on CRAN (installing them from archives);
add parameters to
devtools::install_github()
, such assubdir=
.
This help article includes some code snippets and an example that may help.
Set helpful options
At the top of your script, put the following:
echo "options(repos ='https://cran.rstudio.com/', \
unzip = 'internal', \
download.file.method ='libcurl', \
Ncpus = parallel::detectCores() )" >> /etc/R/Rprofile.site
This will address a variety of installation issues you'd have otherwise (likely) encountered. (You don't need to use the official CRAN mirror.)
Set the tar command
In your Rscript
command(s), include Sys.setenv(TAR = '/bin/tar');
.
Write everything as one string of commands
To avoid setting the same parameters multiple times, string R commands together with the delimiting character ;
a \
character will allow multi-line commands. For instance, your final script might look like:
#!/usr/bin/env bash
set -ex
echo "options(repos ='https://cran.rstudio.com/', \
unzip = 'internal', \
download.file.method ='libcurl', \
Ncpus = parallel::detectCores() )" >> /etc/R/Rprofile.site
Rscript -e "Sys.setenv(TAR = '/bin/tar'); \
install.packages('devtools'); \
devtools::install_version('dplyr'); \
devtools::install_version('emmeans'); \
devtools::install_version('furrr')"
This script sets the necessary options and then installs packages all at once.
Further questions or issues?
Please write to us at support@codeocean.com or via live chat, and we'll be happy to assist.