gems in userdir - Could not find RubyGem ...

M

Markus Kolb

Hi,

I am new to ruby and gem and I have installed a few gems (rails and
deps) in userdir.

$ HOME=$HOME/html gem list rails

*** LOCAL GEMS ***

rails (1.1.0)
Web-application framework with template engine, control-flow layer,
and ORM.


So gem seems to find the installed rails but:


$ HOME=$HOME/html ruby/bin/rails
/usr/lib/ruby/1.8/rubygems.rb:204:in `report_activate_error': Could not
find RubyGem rails (> 0) (Gem::LoadError)
from /usr/lib/ruby/1.8/rubygems.rb:141:in `activate'
from /usr/lib/ruby/1.8/rubygems.rb:37:in `require_gem_with_options'
from /usr/lib/ruby/1.8/rubygems.rb:31:in `require_gem'
from ruby/bin/rails:17


In $HOME/html is a .gemrc file with configured gemhome and gempath.


So what I have to do so that the gem is found at execution?

Thanks
Markus
 
M

Markus Kolb

Markus said:
Hi,

I am new to ruby and gem and I have installed a few gems (rails and
deps) in userdir.

$ HOME=$HOME/html gem list rails

*** LOCAL GEMS ***

rails (1.1.0)
Web-application framework with template engine, control-flow layer,
and ORM.


So gem seems to find the installed rails but:


$ HOME=$HOME/html ruby/bin/rails
/usr/lib/ruby/1.8/rubygems.rb:204:in `report_activate_error': Could not
find RubyGem rails (> 0) (Gem::LoadError)
from /usr/lib/ruby/1.8/rubygems.rb:141:in `activate'
from /usr/lib/ruby/1.8/rubygems.rb:37:in `require_gem_with_options'
from /usr/lib/ruby/1.8/rubygems.rb:31:in `require_gem'
from ruby/bin/rails:17


In $HOME/html is a .gemrc file with configured gemhome and gempath.


So what I have to do so that the gem is found at execution?

Some additional info:

$ irb
irb(main):001:0> require 'rubygems'
=> true
irb(main):002:0> require_gem 'rake'
Gem::LoadError: Could not find RubyGem rake (> 0.0.0)

from /usr/lib/ruby/1.8/rubygems.rb:204:in `report_activate_error'
from /usr/lib/ruby/1.8/rubygems.rb:141:in `activate'
from /usr/lib/ruby/1.8/rubygems.rb:37:in `require_gem_with_options'
from /usr/lib/ruby/1.8/rubygems.rb:31:in `require_gem'
from (irb):2
irb(main):003:0> require 'rake'
=> true
irb(main):004:0>

So rake.rb is found but require_gem doesn't find gem rake?!

Please, please, help me ;)
 
J

Jim Weirich

Markus said:
Some additional info:

$ irb
irb(main):001:0> require 'rubygems'
=> true
irb(main):002:0> require_gem 'rake'
Gem::LoadError: Could not find RubyGem rake (> 0.0.0)

from /usr/lib/ruby/1.8/rubygems.rb:204:in
`report_activate_error'
from /usr/lib/ruby/1.8/rubygems.rb:141:in `activate'
from /usr/lib/ruby/1.8/rubygems.rb:37:in
`require_gem_with_options'
from /usr/lib/ruby/1.8/rubygems.rb:31:in `require_gem'
from (irb):2
irb(main):003:0> require 'rake'
=> true
irb(main):004:0>

So rake.rb is found but require_gem doesn't find gem rake?!

Please, please, help me ;)

Perhaps rake is also installed as a non-gem?

Add a list of user repositories to the GEM_PATH environment variable.
 
M

Markus Kolb

Jim said:
Markus said:
Markus Kolb wrote: [...]
In $HOME/html is a .gemrc file with configured gemhome and gempath.


So what I have to do so that the gem is found at execution?
Some additional info:

$ irb
irb(main):001:0> require 'rubygems'
=> true
irb(main):002:0> require_gem 'rake'
Gem::LoadError: Could not find RubyGem rake (> 0.0.0) [...]
irb(main):003:0> require 'rake'
=> true
irb(main):004:0>

So rake.rb is found but require_gem doesn't find gem rake?!
[...]
Add a list of user repositories to the GEM_PATH environment variable.

Thank you Jim.
Oh, yes, with environment variable GEM_PATH it works. Why not with
..gemrc gempath? Seems that only the gem tool uses that config.

Markus
 
J

Jim Weirich

Markus said:
Jim said:
Markus said:
Markus Kolb wrote: [...]
Gem::LoadError: Could not find RubyGem rake (> 0.0.0) [...]
irb(main):003:0> require 'rake'
=> true
irb(main):004:0>

So rake.rb is found but require_gem doesn't find gem rake?!
[...]
Add a list of user repositories to the GEM_PATH environment variable.

Thank you Jim.
Oh, yes, with environment variable GEM_PATH it works. Why not with
..gemrc gempath? Seems that only the gem tool uses that config.

It would certainly be more consistent for RubyGems to always use .gemrc.
But if it did, then every program using RubyGems would need to load the
gemrc file on startup. That was a bit more overhead[1] than we were
willing to introduce to unsuspecting programs. Since the only thing the
average program needs is the gem path, this is simple enough to provide
via the environment variable. The gem command does allow for more
configuration options, so it does use a configuration file.

At least that's how it stands today. Its a judgement call, so I'm
willing to be convinced otherwise for future versions.

--
-- Jim Weirich

[1] Not just time overhead, but also conceptual overhead. E.g. reading
gemrc requires that YAML be loaded in programs that don't otherwise
need it.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,994
Messages
2,570,223
Members
46,815
Latest member
treekmostly22

Latest Threads

Top