By xi’an
I’ve been using Webfaction as an inexpensive managed VPN. Part of me wants VPS root access, but I’m mostly happy to leave the administrative details to others. Webfaction seems to be a good example of a common VPS plan: user-only access in a rich development environment. Compilers, zsh
, and even tmux
are available from the shell, making this a very comfortable dev environment overall.
Most times root doesn’t matter, but sometimes it complicates new software installs. I’ve been looking forwards to testing R’s webapp package Shiny, but all of the docs assume root access (and some even state that it’s required). I set off without knowing if this would work, attempting to see how far I could get. What follows is a (hopefully) reproducible account of a user-land install of R & Shiny via ssh on a Webfaction slice. To the best of my knowledge, this requires only standard development tools, and so should(??) work.
In the following I use [tab] to indicate hitting tab key for auto-completion. The VPS login username is [user]. [edit] means call your editor of choice (vim, emacs, or, god forbid, nano). This assumes you are using bash (which seems to be the default shell on most VPNs).
Prepare the build environment
## ssh to webhost ## make directories, set paths, etc ## source build dir mkdir ~/src ## software install dir mkdir ~/local ## personal content dir CONTENTDIR=~/var mkdir $CONTENTDIR ## some hosts have /tmp set noexec? mkdir src/tmp ## Install software here INSTPREFIX=$HOME/local ## set paths: ## echo 'export PATH=$PATH:~/local/bin:~/local/shiny-server/bin' >> ~/.bashrc echo 'export TMPDIR=$HOME/src/tmp' >>~/.bashrc ## check that all is well [edit] ~/.bashrc ## update env . .bashrc
[Ref: temp dir and R packages]
Install R from source: fast and (mostly) easy
cd ~/src wget http://cran.us.r-project.org/src/base/R-3/R-3.2.3.tar.gz tar xzf R-3.2.3.tar.gz cd R-[tab] ./configure --prefix=$INSTPREFIX ## missing library, search and add directory CPPFLAGS=/usr/lib/jvm/java/include/ make make install cd ~
Prep R environment
## The following commands are in R install.packages(c('shiny', 'rmarkdown'))
## From the shell:
## on ...read moreSource:: r-bloggers.com