#\ -s puma
/home/username/.rvm/gems/ruby-1.9.3-p392/gems/rack-1.5.2/lib/rack/handler.rb:76:in `require': cannot load such file -- rack/handler/puma (LoadError)
puma version 2.0.1
Puma 2.0.1 starting...
* Min threads: 0, max threads: 16
* Environment: development
* Listening on tcp://localhost:4567
Sandbox the gems so they don't get mixed up with those installed by Rubygems.
Remove current bundler stuff with
rm -rf .bundle Gemfile.lock bin vendor
and then run
bundle install --binstubs --path vendor
This installs all gems into
vendor/RUBY-ENGINE/VERSION/ and all executables into the
bin dir. These are separate from the ones installed via the
gem command, which will be system wide.
bundle exec, but since the
--binstubs command was used you can instead run
bundle exec or one of the executables from
bin/ you're telling Bundler to only use the gems that it installed. If you installed Puma with Bundler then it will install the Puma handler with the Rack that Bundler installed. But, you'll probably have another version of Rack installed by Rubygems (via
gem install rack -r) that doesn't have the handler. To get the right one, sandbox your project's gems and always run stuff from the
bin/ directory. If you need the
ruby command then use
bundle exec ruby… and Bundler will load the correct gems for the project.
I do this with every project now and only install gems via
gem install… if I need them system wide. It also makes sure you don't miss any gems out of the Gemfile because you had them already available on your system - no nasty surprises on deployment!