I’m setting up a secondary machine to run tests. I’ve run into a
problem with gems not being found. Everything works fine on my
primary machine, and I haven’t been able to tease out what the
difference is in the two setups.
I’ve installed Ruby 1.8.5 and rubygems 0.9.0, both from source, on
Mac OS X 10.4.8.
Ruby configuraiton:
$ ./configure --prefix=/usr/local
rubygems installation:
$ sudo /usr/local/bin/ruby setup.rb
I installed the PostgreSQL bindings gem using:
$ sudo gem install postgres
The bindings appeared to install correctly. Using gem query, I can see:
*** LOCAL GEMS ***
postgres (0.7.1)
The extension library to access a PostgreSQL database from Ruby.
sources (0.0.1)
This package provides download sources for remote gem installation
However, when testing with irb to see if the postgres gem can be
found, I get:
$ which ruby
/usr/local/bin/ruby
$ which irb
/usr/local/bin/irb
$ irb
irb(main):001:0> require ‘rubygems’
=> true
irb(main):002:0> require ‘postgres’
LoadError: no such file to load – postgres
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/
custom_require.rb:27:in gem_original_require' from /usr/local/lib/ruby/site_ruby/1.8/rubygems/ custom_require.rb:27:in
require’
from (irb):2
I’m stumped. On my primary machine, the above two commands work just
fine in irb.
Looking around custom_require.rb and seeing the private init_gemspecs
method, I tried:
irb(main):006:0> gs = Gem::GemPathSearcher.new
…
irb(main):017:0> pp gs.send(:init_gemspecs)
I can see the postgres gem included in the list (relevant part of the
output is posted below).
However, the find method fails:
irb(main):018:0> gs.find(‘postgres’)
=> nil
The default dir appears to be correct:
irb(main):020:0> Gem.default_dir
=> “/usr/local/lib/ruby/gems/1.8”
In the shell:
$ ls -la /usr/local/lib/ruby/gems/1.8
total 4040
drwxr-xr-x 7 root wheel 238 Nov 12 22:11 .
drwxr-xr-x 3 root wheel 102 Nov 12 22:10 …
drwxr-xr-x 11 root wheel 374 Nov 12 22:24 cache
drwxr-xr-x 10 root wheel 340 Nov 12 22:24 doc
drwxr-xr-x 11 root wheel 374 Nov 12 22:24 gems
-rw-r–r-- 1 root wheel 2066469 Nov 12 22:12 source_cache
drwxr-xr-x 11 root wheel 374 Nov 12 22:24 specifications
Any help would be appreciated. I’ve been staring at this for quite a
while now and nothing new is coming to me. I don’t have any GEM_*
environmental variables or .gemrc files on either machine. Anything
else I should try or check?
Thanks!
Michael G.
grzm seespotcode net
partial init_gemspecs output
#<Gem::Specification:0x585ffc
@authors=[],
@autorequire=“postgres”,
@bindir=“bin”,
@cert_chain=nil,
@date=Wed Oct 20 00:00:00 +0900 2004,
@default_executable=nil,
@dependencies=[],
@email=“[email protected]”,
@executables=[],
@extensions=[“extconf.rb”],
@extra_rdoc_files=[],
@files=
[“ChangeLog”,
“doc”,
“extconf.rb”,
“MANIFEST”,
“postgres-ruby.gemspec”,
“postgres.c”,
“README”,
“README.ja”,
“sample”,
“doc/postgres.html”,
“doc/postgres.jp.html”,
“sample/losample.rb”,
“sample/psql.rb”,
“sample/psqlHelp.rb”,
“sample/test1.rb”,
“sample/test2.rb”,
“sample/test4.rb”],
@has_rdoc=false,
@homepage=“http://www.postgresql.jp/interfaces/ruby/”,