Permalink
Cannot retrieve contributors at this time
cgi-updater/cgi-updater-payload.sh
Go to file#!/bin/bash | |
r_pkgs=( DESeq2 genefilter biomaRt ggplot2 gplots RColorBrewer ) | |
pip_pkgs=( biopython ) | |
if [[ $(id -u) -ne 0 ]]; then | |
echo "Error: run this script as the root user, not EUID $(id -u)." | |
exit 1 | |
fi | |
set -e # Make most errors fatal. | |
ubuntu_update () { | |
apt-get update | |
apt-get -y upgrade | |
} | |
ubuntu_install_r_cran () { | |
cat <<EOF > /etc/apt/sources.list.d/cgi-r-cran.list | |
# Newest R version from CRAN per | |
# https://cran.r-project.org/bin/linux/ubuntu/ | |
deb https://cran.fhcrc.org/bin/linux/ubuntu $(lsb_release -cs)/ | |
EOF | |
local key=E084DAB9 | |
grep -q $key <( apt-key list ) || | |
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $key | |
apt-get update | |
apt-get -y install r-base-dev | |
# Dependencies of RCurl: | |
apt-get -y install libxml2-dev libcurl4-gnutls-dev | |
} | |
python_install_packages() { | |
apt-get -y install python-pip python-dev | |
pip install --upgrade ${pip_pkgs[@]} | |
} | |
r_install_packages() { | |
local pkgs=$@ | |
pkgs=\"$(printf "\",\"%s" $pkgs)\" | |
Rscript --vanilla - <<EOF | |
options(echo = TRUE) | |
dir.create(Sys.getenv("R_LIBS_USER"), recursive = TRUE) | |
.libPaths(Sys.getenv("R_LIBS_USER")) | |
setwd(paste(Sys.getenv("R_HOME"))) | |
source("https://bioconductor.org/biocLite.R") | |
biocLite(c(${pkgs:3})) | |
EOF | |
} | |
main () { | |
ubuntu_update | |
ubuntu_install_r_cran | |
python_install_packages | |
# Install R libraries in the user home directory so that updating | |
# the libraries later on does not triggering the "unwritable | |
# directory" warning. | |
export -f r_install_packages | |
su cgi_user -c "bash -c \"r_install_packages ${r_pkgs[*]}\"" | |
unset r_install_packages | |
} | |
main |