Can't run Rails under Cygwin, due to LoadError: No such process from digest/md5
In trying to run Rails under Cygwin, the ./script/server command is producing a load error that I can't find a solution for searching on Google. I can reproduce this error in irb as follows:
irb(main):001:0> require 'rubygems'
=&开发者_Go百科gt; true
irb(main):002:0> require 'digest/md5'
LoadError: No such process - /usr/lib/ruby/1.8/i386-cygwin/digest/md5.so
from /usr/lib/ruby/1.8/i386-cygwin/digest/md5.so
from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
from (irb):2
$ ruby --version ruby 1.8.7 (2008-08-11 patchlevel 72) [i386-cygwin]
rails (2.3.8, 2.1.0) both fail with the same error
$ uname -a CYGWIN_NT-5.1 XXXXXX 1.5.25(0.156/4/2) 2007-12-14 19:21 i686 Cygwin
My problem turned out to be that rubyoci8 was getting built against one Oracle client and but using another one. I have multiple Oracle clients on my machine including a number of full clients and an instant client. All of these were on my Windows $PATH, along with all kinds of other junk.
The rubyoci8 make program searches the $PATH to detect whether a full client is installed, but then uses the $ORACLE_HOME variable at another point - I suspect this double searching might have something to do with the problem.
The solution for me was to clear the $PATH down (in one of my .bash* scripts) to just the bare essentials, and then include only the full client path I needed. I set $ORACLE_HOME to the same location, rebuilt rubyoci8, and it worked.
精彩评论