running unicorn under rvm

Joseph McDonald superjoe at
Tue Aug 17 18:37:18 EDT 2010

Thanks Eric, see below:

On Mon, Aug 16, 2010 at 8:52 PM, Eric Wong <normalperson at> wrote:
> Joseph McDonald <superjoe at> wrote:
>> unicorn 1.1.2 runs fine under my system ruby, but when trying to run
>> it using rvm, I get:
>> % rvm use 1.8.7
>> info: Using ruby 1.8.7 p299
>> % unicorn
>> /home/joe/.rvm/gems/ruby-1.8.7-p299/gems/unicorn-1.1.2/lib/unicorn/configurator.rb:494:in
>> `eval': undefined local variable or method `host' for main:Object
>> (NameError)
> Hi Joseph,
> Is there any chance you have an older "unicorn" executable script
> somewhere that gets exposed rvm switches the environment on you?  That's
> the only thing I can think of right now.

I'm sure I'm running the right version of unicorn.
what's weird is if I remove the reference to TOPLEVEL_BINDING, it works, i.e.:

 host, port, set_listener, options, daemonize =
                    eval("[ host, port, set_listener, options, daemonize ]")

works, it gets the right port from the file.

my file looks like"
#\ -w -p 4452
require './mystuff'
run Sinatra::Application

another strange thing:  I need to add the "./"  in front of mystuff,
but when i'm not using rvm (rvm use system), I don't need to do that.

I'm curious if anyone else is using unicorn with rvm and not having
this problem.  I'm guessing it's something weird with my system, but
not sure.


>> line 494 looks like:
>>  # XXX ugly as hell, WILL FIX in 2.x (along with Rainbows!/Zbatery)
> Yes, I still need to work on 2.x and clean up a lot of the
> ugly internal API bits :)
> --
> Eric Wong
> P.S.: At least nowadays I'm (finally) getting some experience
> developing/supporting applications using Unicorn and Rainbows! (or
> Zbatery).  Things like e4d0b226391948ef433f1d0135814315e4c48535 in
> unicorn.git are a direct result of that.

More information about the mongrel-unicorn mailing list