brownvm
enables you to work on your files on brown's servers in totally new ways.
- the
/home/USERNAME
and/course
directories on brown's servers appear to be on your computer. that is, you get./home/USERNAME
and./course
on your local machine and you can treat them as you would any local file. - you also have a linux server with the
/course
and home directories mounted at the same place as they are on brown's servers. essentially you have a machine with the same operating system as brown's servers, but now you have the liberty to install whatever you want.
most things in this document assume you're running os x, but there is also information on linux.
total freedom.
- work locally: you now have all the same tools and programs you're comfortable with (running at native speed).
- target linux: if you want to compile your code, you can use the same great linux tools on department machines.
after installing, instantly mount your files:
and work locally, see changes reflected on server:
brownvm
's interface is done entirely through make
. here are the targets:
start
- mounts the brown files and starts the vm (only mounts if you're on linux)stop
- unmounts the brown files and stops the vm (only unmounts if you're on linux)install
- installs everything (you needbrew
if on os x)install_fs
- installs everything required to run sshfs (you needbrew
if on os x)init
- initializes the.uname
file that tracks your usernameupdate
- pulls down the latest version of this repomount
- mounts the brown filesumount
- unmounts the brown filesstart_vm
- starts vm (not available on linux)stop_vm
- stops vm (not available on linux)ssh
- ssh into the vm (not available on linux)clean
- unmounts the brown files, and removes extra directoriesclean_extra
- deletes.uname
the more likely use-case is that you just want the sshfs stuff. when this is the case,
only worry about mount
and unmount
.
after make install
, you run make mount
: your home directory is now mounted in this one
at ./home/USERNAME
. now, you work on your homeowrk using your favorite text editor while
dragging and dropping stuff around. once you've finished, you want to compile your code,
so you run make start_vm ssh
. you install your favorite clang
tools with sudo apt-get install -y llvm clang libblocksruntime-dev
; then you compile your code and run it, but
that was just for fun. now you have to do some web apps hw, but the department's version
of nodejs doesn't really work. instead of running the code on the vm, however, you just
run it locally since your computer already has the latest and greatest version. finally,
you do an ssh brown
and run the handin command for your assignment.
you must be able to ssh into brown by doing ssh brown
. in order to do so, add
Host brown
Hostname ssh.cs.brown.edu
User USERNAME
line to your ~/.ssh/config
file (on your local machine).
you need to have brew
installed.
first thing you have to do is:
git clone https://github.com/r-medina/brownvm.git && cd brownvm
to get this code and move into that directory. now you can run
make install
you now have all the dependancies for running sshfs and vagrant. if, however, you wanted a more light-weight installation without the vm, just do
make install_fs
and then be sure to only use the mount
and umount
targets to make
(instead of
start
and stop
).
installing will only get sshfs (since you don't need a linux vm). the start
and stop
make
targets only mount and dismount the brown filesystems.