$ cat > foo.rb
#!/usr/bin/ruby
require ‘rubygems’
require ‘builder’
^D
$ chmod +x foo.rb
$ foo.rb
/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:21:in require__': no such file to load -- builder (LoadError) from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:21:inrequire’
from ./foo.rb:3
What’s going on here? I only experience this with builder. Other
modules seem fine. Incidentally, there’s a builder.rb at
/usr/local/lib/site_ruby/1.8/rubygems/builder.rb
right next to the custom_require.rb that fails to find it.
I guessed that maybe the fact that I was using /usr/bin/ruby and there
was a separate /usr/local/bin/ruby might be a problem. They are the
same version
ruby 1.8.6 (2007-03-13 patchlevel 0) [i686-linux]
and in fact, one turns out to be a symlink to the other(!) but using
/usr/bin/ruby in the shebang fails, while using /usr/local/bin/ruby in
the shebang succeeds.
Print the value of $: to determine the directories in which Ruby will
look for libraries. Those directories are largely determined by the
directory in which Ruby is installed at the time Ruby is installed. If
Ruby is actually installed in /usr/local then it won’t search for
libraries in /usr.
Good luck!
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.