RVM::FW works really well to make it possible to use RVM (or rbenv even) inside a restrictive LAN or Firewall just like you do at home.
$ git clone git://github.com/stevenhaddox/rvm_fw.git $ bundle install
Download Rubiez and packages:
$ bundle exec rake boot:strap
Archive your local setup of RVM::FW and import it into your network.
Deploy! RVM::FW is a simple Sinatra application so you can deploy it anywhere you have Ruby or Rack available internally!
How to Use RVM::FW Once It's Deployed
View a demo to see RVM::FW's user views & instructions for how to setup and use RVM internally. Obviously there are no rubies due to file-size / RVM itself existing on the real Internet.
http(s)://<your_host>:<port>/db to get a plain-text file that your users need to copy and paste into:
~/.rvm/user/db. This file overrides the defaults built into RVM's
~/.rvm/config/db and will point it to your RVM::FW instance to download it's rubies.
You can also visit:
http(s)://<your_host>:<port>/known to get a plain-text file that a user can be put into:
~.rvm/config/known. This will provide a more a accurate list of available rubies when a user runs
rvm list known.
I Want to Help!
Bonus: If you're an rbenv fan but still stuck in a restricted environment you can use RVM::FW as a simple way to host a central location to keep your Ruby source code. Accessing your desired version of Ruby for rbenv is as simple as querying
http(s)://<your_host>:<port>/public/rubies/<ruby_platform>/<ruby_specific_path>. All the Ruby source paths & packages are easily discoverable within the config/rubies.yml file.
Adding More Rubiez
We're looking into rendering the views for db.erb and known.erb dynamically based upon your custom configuration or the default configuration of config/rubies.yml, but until then you have to manually update and maintain the following files:
- customize config/rubies.yml (defaults to: config/rubies.yml.example)
- update views/db.erb
- update views/known.erb
Special thanks to those who've contributed and helped me maintain RVM::FW over the years.