Forum: Ruby gems in userdir - Could not find RubyGem ...

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Markus K. (Guest)
on 2006-04-02 06:16
(Received via mailing list)
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
Markus K. (Guest)
on 2006-04-02 14:50
(Received via mailing list)
Markus K. wrote:
>     Web-application framework with template engine, control-flow layer,
>         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 ;)
Jim W. (Guest)
on 2006-04-02 15:00
Markus K. wrote:
> Markus K. wrote:
>>     Web-application framework with template engine, control-flow layer,
>>         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 ;)

Perhaps rake is also installed as a non-gem?

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

--
-- Jim W.
Markus K. (Guest)
on 2006-04-02 15:46
(Received via mailing list)
Jim W. wrote:
> Markus K. wrote:
>> Markus K. 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.

Markus
Jim W. (Guest)
on 2006-04-02 21:17
Markus K. wrote:
> Jim W. wrote:
>> Markus K. wrote:
>>> Markus K. 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 W.

[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.
This topic is locked and can not be replied to.