Last active
December 29, 2015 15:19
-
-
Save zeehio/7690102 to your computer and use it in GitHub Desktop.
Install rstudio-server and setup nginx on in order to have http://default_server/rstudio on Ubuntu precise (and other ubuntus probably)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash -x | |
# Distribution codename: | |
which lsb_release >/dev/null|| (echo "Could not find lsb_release" ; exit 1) | |
which apt-get >/dev/null|| (echo "Could not find apt-get" ; exit 1) | |
codename=$(lsb_release -cs) # "precise" | |
# Add R repository: | |
rsourceslist="/etc/apt/sources.list.d/r_sources.list" | |
if [ ! -f "${rsourceslist}" ]; then | |
echo "deb http://cran.rstudio.com/bin/linux/ubuntu $codename/" | \ | |
sudo tee "${rsourceslist}" || \ | |
(echo "Could not write r_sources.list"; exit 1) | |
fi | |
# Add signing key for R repository: | |
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9 || exit 1 | |
# Update package list | |
sudo apt-get update || exit 1 | |
# Install R and R-development: | |
sudo apt-get install r-base r-base-dev || exit 1 | |
# Install common dependencies to build packages: | |
sudo apt-get install build-essential xsltproc libgsl0-dev libjpeg-dev \ | |
libncurses5-dev libpng12-dev libsqlite3-dev libssl-dev \ | |
zlib1g-dev libopenmpi-dev libnetcdf-dev pandoc \ | |
texlive-latex-base texlive-latex-recommended texlive-science \ | |
markdown texlive-font-utils latex-beamer texlive-lang-spanish \ | |
liblapack-dev libblas-dev libatlas-dev p7zip-full \ | |
zip unzip tar git-core dh-make devscripts \ | |
m4 tcl8.5 tk8.5 || exit 1 | |
sudo apt-get build-dep r-cran-rgl || exit 1 | |
# Install Rstudio: | |
sudo apt-get install gdebi-core || exit 1 | |
sudo apt-get install libapparmor1 || exit 1 # Required only for Ubuntu, not Debian | |
rpackagefilename="rstudio-server-0.97.551-amd64.deb" | |
wget "http://download2.rstudio.org/$rpackagefilename" || exit 1 | |
sudo gdebi "$rpackagefilename" || exit 1 | |
echo "using nginx and reverse proxy..." | |
# Config rserver.conf | |
rserverconf="/etc/rstudio/rserver.conf" | |
if [ -f "$rserverconf" ]; then | |
sudo mv "$rserverconf" "${rserverconf}.bak" | |
fi | |
echo "www-address=127.0.0.1" | sudo tee "$rserverconf" | |
# Config rsession.conf | |
rsessionconf="/etc/rstudio/rsession.conf" | |
if [ -f "$rsessionconf" ]; then | |
sudo mv "$rsessionconf" "${rsessionconf}.bak" | |
fi | |
echo "r-libs-user=~/R/%p-library/%v" | sudo tee "$rsessionconf" | |
# Restart rstudio-server: | |
sudo rstudio-server restart | |
# Install nginx: | |
which nginx || ( ps aux | grep nginx | grep -v grep ) || sudo apt-get install nginx | |
nginxlocationsdir="/etc/nginx/isplab_locations" | |
sudo mkdir -p "$nginxlocationsdir" | |
cat << EOF | sudo tee "${nginxlocationsdir}/rstudio-server.conf" | |
location /rstudio/ { | |
rewrite ^/rstudio/(.*)$ /\$1 break; | |
proxy_pass http://localhost:8787; | |
proxy_redirect http://localhost:8787/ \$scheme://\$host/rstudio/; | |
access_log /var/log/nginx/rstudio-access.log; | |
error_log /var/log/nginx/rstudio-error.log; | |
} | |
EOF | |
isplab_nginx_main="/etc/nginx/sites-available/isplab-main.conf" | |
if [ ! -f "${isplab_nginx_main}" ]; then | |
cat << EOF | sudo tee "${isplab_nginx_main}" | |
server { | |
listen 80 default_server; | |
index index.html; | |
root /var/www; | |
include /etc/nginx/isplab_locations/*.conf; | |
} | |
EOF | |
fi | |
(cd "/etc/nginx/sites-enabled"; sudo ln -s "../sites-available/isplab-main.conf" "isplab-main.conf") | |
sudo service nginx reload || (echo "Error reloading nginx"; exit 1) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment