0

I just tried to upgrade to Unicorn 3.0. I changed my Gemfile and did a bundle install. When restarting my Unicorn I got tons of errors beginning with:

Unhandled listen loop exception #<Errno::ENOSYS: Function not implemented - accept>.
/usr/lib/ruby/gems/1.8/gems/unicorn-3.0.0/lib/unicorn/http_server.rb:593:in `kgio_tryaccept'

I’m on Ubuntu 10.04.

And, can anyone explain to me why the heck I can’t use an older version of a Gem than the most recent installed? After getting the errors above I just changed the version number of Unicorn in my Gemfile to 1.1.4. But this didn’t solve the problem, Ruby told me that

You have already activated unicorn 3.0.0, but your Gemfile requires unicorn 1.1.4. Consider using bundle exec. (Gem::LoadError)

Do I really have to?

Thanks in advance for your help, guys.

Ulf
  • 387
  • 1
  • 5
  • 18

1 Answers1

0

Bundler is the one which takes care of loading the gems with the right versions. To make your server use unicorn 1.1.4 change your Gemfile to point to that version of unicorn, run bundle install and uninstall unicorn v3 gem from your server.

  • Do I really have to? Then there seems no possibility other than RVM to operate Rails 2 and Rails 3 apps on the same machine, right? – Ulf Dec 17 '10 at 16:02
  • 1
    AFAIK you can deploy rails2 and rails3 on the same machine, if you don't install the *gems* on the *server*. Use `bundle install --deployment` to install all the required gems, this installs them in a `bundle` folder under the root of your app. [Checkout Bundler Deployment for more info](http://gembundler.com/deploying.html) – Khaja Minhajuddin Dec 17 '10 at 19:18