From: Daniel Berger Date: 2008-10-30T07:22:30+09:00 Subject: Re: Could not find RubyGem - because it's not a gem On Oct 15, 3:49 pm, Daniel Berger wrote: > Hi all, > > Sorry, a bit of a cross-post here,becauseI'mnotsure if this is a > Rails issue or a gems issue. The problem is that I've got sys-admin > installed, justnotas agem, and that's causing a problem. > > First, some config info: > > RubyGems Environment: >   - RUBYGEMS VERSION: 1.3.0 >   - RUBY VERSION: 1.8.6 (2008-03-03 patchlevel 114) [i386-mswin32_80] >   - INSTALLATION DIRECTORY: C:/ruby/lib/ruby/gems/1.8 >   - RUBY EXECUTABLE: C:/ruby/bin/ruby.exe >   - EXECUTABLE DIRECTORY: C:/ruby/bin >   - RUBYGEMS PLATFORMS: >     - ruby >     - x86-mswin32-80 >   -GEMPATHS: >      - C:/ruby/lib/ruby/gems/1.8 >      - C:/Documents and Settings/djberge/.gem/ruby/1.8 >   -GEMCONFIGURATION: >      - :update_sources => true >      - :verbose => true >      - :benchmark => false >      - :backtrace => false >      - :bulk_threshold => 1000 >   - REMOTE SOURCES: >      -http://gems.rubyforge.org/ > > irb(main):001:0> require 'sys/admin' > => true > > However, if I try to fire up Rails I get this: > > C:/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:628:in > `report_activate_error': Couldnotfind RubyGem sys-admin (>= 0) > (Gem::LoadError) >         from C:/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:139:in > `activate' >         from C:/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:163:in > `activate' >         from C:/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:162:in `each' >         from C:/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:162:in > `activate' >         from C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb: > 31:in `require' >         from C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/ > active_support/dependencies.rb:510:in `require' >         from C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/ > active_support/dependencies.rb:355:in `new_constants_in' >         from C:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/ > active_support/dependencies.rb:510:in `require' >          ... 12 levels... >         from C:/ruby/lib/ruby/gems/1.8/gems/rails-2.1.1/lib/commands/ > server.rb:39 >         from C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb: > 27:in `gem_original_require' >         from C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb: > 27:in `require' >         from script/server:3 > > What's happening here? Problem with my setup or environment? Or a > problem with Rails? Ok, I think I've narrow this down a bit. The background to this is that I've installed the library called "win32-file" via rubygems. That library has a dependency on win32-file-stat, which in turn has a dependency on windows-pr, which in turn has a dependency on windows- api which in turn has a dependency on win32-api. You with me so far? It's the win32-api gem (or lack thereof) that's ultimately causing the issue. You see, I'm using a custom built Ruby using VC++ 8.0, so I had to uninstall win32-api (because the current binary gem I have out there is incompatible with my runtime), so that rubygems defaults to the win32-api I've built by hand and installed in Ruby's sitelibdir. At least that's what I thought it would do. And here's where it seems to get confused. Because one of the dependencies itself has a dependency on win32-api, but I've removed the win32-api gem, it dies instead of resorting to gem_original_require as a last ditch effort. I _think_ this can be resolved by rescuing Gem::LoadError in custom_require.rb, but I'm still deciding how to proceed. If anyone has any suggestion in the meantime, I'm all ears. Regards, Dan