README.md in capistrano-rbenv-install-0.0.1 vs README.md in capistrano-rbenv-install-1.0.0

- old
+ new

@@ -1,23 +1,116 @@ # Capistrano::Rbenv::Install -### About +Capistrano plugin for **lightweight** rubies management with rbenv. +Works with Capistrano 3 (only). For Capistrano 2 support check +[this repository](https://github.com/yyuu/capistrano-rbenv) +(version 1.x of `capistrano-rbenv` gem). + ### Installation -### Standard usage +Install by adding the following to the `Gemfile`: -### How it works + gem 'capistrano', '~> 3.1' + gem 'capistrano-rbenv', '~> 2.0' # required + gem 'capistrano-rbenv-install' -### Gotchas +then: -### Debugging + $ bundle install -### Configuration +### Configuration and usage -### Contributing and bug reports +The following goes to `Capfile`: + require 'capistrano/rbenv_install' + +This plugin heavily relies on +[capistrano-rbenv config options](https://github.com/capistrano/rbenv#usage). +So make sure to properly setup `capistrano-rbenv` and you'll be good. + +For example, in `config/deploy.rb`: + + set :rbenv_ruby, '2.0.0-p247' + +Other than that, this plugin does not need any setup. + +Run: + + $ bundle exec production deploy + +And watch ruby being installed. + +### Purpose + +Installing software packages on servers is called +[provisioning](http://en.wikipedia.org/wiki/Provisioning#Server_provisioning). +Installing and managing rubies falls into that domain, and is best done with a +proper tool like chef, puppet, ansible or something else. + +Why this plugin then? + +- Capistrano is a great tool (written in ruby btw) so, when there's a need, +installing rubies with it should be easy too +- not everyone knows (or has time to learn) how to use provisioning tools +mentioned above +- sometimes installing ruby manually is just easier than fiddling with your +chef cookbooks. Instead of manually, you can do it with this plugin now + +Imagine you want to quickly deploy a ruby `1.9.2` app to a server that already +has one or more ruby `2.0.0` apps. +"Oh, let's just quickly update our cookbooks" - yea right! I'd rather manually +`ssh` to the server directly and run `rbenv install 1.9.2-p320`. But I don't +want to manually `ssh` to the server too. In that case I just can install +`capistrano-rbenv-install` and forget about it altogether. + +### What it does + +It only does the bare minimum that's required for Capistrano to work. That's +why it's a plugin for *lightweight* ruby management. + +It makes sure that: + +- `rbenv` and `ruby build` are installed (installs them using `git`) +- ruby specified with `:rbenv_ruby` option is installed +- `bundler` gem is installed + +### What it does NOT do + +It **does not**: + +- manage ruby gems<br/> +`bundler` is installed by default and that's pretty much it. + +- does not install ruby dependency packages<br/> +(git-core build-essential libreadline6-dev etc ...). You should probably +install/provision those some other way. + +- does not manage `rbenv` plugins<br/> +It only installs `ruby build` for the purpose of installing ruby. + +- does not setup rbenv for direct use on the server via the command line<br/> +Example: `ssh`ing to the server and manually running ruby commands is not +supported. + +### More Capistrano automation? + +If you'd like to streamline your Capistrano deploys, you might want to check +these zero-configuration, plug-n-play plugins: + +- [capistrano-postgresql](https://github.com/bruno-/capistrano-postgresql)<br/> +plugin that automates postgresql configuration and setup +- [capistrano-unicorn-nginx](https://github.com/bruno-/capistrano-unicorn-nginx)<br/> +no-configuration unicorn and nginx setup with sensible defaults +- [capistrano-safe-deploy-to](https://github.com/bruno-/capistrano-safe-deploy-to)<br/> +if you're annoyed that Capistrano does **not** create a deployment path for the +app on the server (default `/var/www/myapp`), this is what you need! + ### Thanks + +@yyuu and the original +[capistrano-rbenv](https://github.com/yyuu/capistrano-rbenv) project for +inspiration ### License [MIT](LICENSE.md)