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.
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 yourGemfile
to point to that version of unicorn, runbundle install
and uninstallunicorn v3 gem
from your server.