RVM::FW

Exposing hidden Rubies for firewalled RVMs

Getting Started:

RVM::FW now also works with both chruby and rbenv

The below instructions will guide you through installing RVM with RVM::FW

Install RVM and configuration files:

# Using curl:
$ \curl http://rvm-fw.herokuapp.com/install | bash
# Using wget:
$ \wget -qO- http://rvm-fw.herokuapp.com/install | bash

Multi-User (server-wide) RVM Install:

# Using curl:
$ \curl http://rvm-fw.herokuapp.com/install | sudo bash
# Using wget:
$ \wget -qO- http://rvm-fw.herokuapp.com/install | sudo bash

Packages (Optional)

One of the biggest benefits of RVM over other Ruby environment managers is it's inclusion of source package installs. If you want to help optimize your Ruby install run the following before installing any Rubies:

$ rvm pkg install libyaml --verify-downloads 1
$ rvm pkg install zlib --verify-downloads 1
$ rvm pkg install readline --verify-downloads 1
$ rvm pkg install iconv --verify-downloads 1
$ rvm pkg install libxml2 --verify-downloads 1
$ rvm pkg install libxslt --verify-downloads 1
$ rvm pkg install ncurses --verify-downloads 1
$ rvm pkg install openssl --verify-downloads 1
# NOTE: OpenSSL will install properly, but then throw an error if it can't download updated CA Certificates

Install Rubies

With system installed packages only:

$ rvm list known
# Install a Ruby without RVM packages (defaulting to any system installed packages):
$ rvm install <ruby_version> --verify-downloads 1
# e.g.: rvm install ruby-2.2.2 --verify-downloads 1

With RVM installed packages:

$ rvm list known
$ rvm install <ruby_version> --with-opt-dir=${HOME}/.rvm/usr --verify-downloads 1
# e.g.: rvm install ruby-2.2.2 --with-opt-dir=${HOME}/.rvm/usr --verify-downloads 1

About RVM::FW:

What is RVM::FW (Firewall)?

RVM::FW is a simple Sinatra application that runs on any rack-enabled server. It's main purpose is to host Ruby tarballs and library packages to facilitate easily installing Ruby via RVM, rbenv, chruby, etc. in a Intranet environment without Internet access.

What inspired RVM::FW?

Many corporate environments restrict access to the outside web in order to limit the risk of downloading viruses or causing damage throughout the network unintentionally. A lot of these places require special permission to download and install software. I've worked on contracts in these Enterprise environments, but I still wanted to be able to use the same RVM setup I have at home where I worked and needed it most! In turn I dug around and decided the easiest way to use RVM without outside internet access was modifying RVM's ~/.rvm/user/db file to point to an internal website that had many of the same Ruby versions readily available to install.