# Gems and custom\_require problem for ruby(1.9.2dev)/rubygems(1.3.6) installed in $HOME

**URL:** <https://www.ruby-forum.com/t/gems-and-custom-require-problem-for-ruby-1-9-2dev-rubygems-1-3-6-installed-in-home/185292>\
**Category:** Ruby\
**Created:** [March 17, 2010, 4:12pm UTC](https://www.ruby-forum.com/t/gems-and-custom-require-problem-for-ruby-1-9-2dev-rubygems-1-3-6-installed-in-home/185292 "2010-03-17T16:12:46Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Nikolai\_L](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/2acd7d/32.png) [@Nikolai\_L](https://www.ruby-forum.com/u/Nikolai_L)\
**Post date:** [March 17, 2010, 4:12pm UTC](https://www.ruby-forum.com/t/gems-and-custom-require-problem-for-ruby-1-9-2dev-rubygems-1-3-6-installed-in-home/185292/1 "2010-03-17T16:12:46Z")

</div>

I installed ruby 1.9.2dev (2010-03-17 trunk 26961) [i686-linux] in my  
$HOME dir using configure --prefix=$HOME && make install  
also i set PATH=$HOME/bin:$PATH

Then, I tried to run rake test on edge rails version, having required  
gems installed via “bundle install”

gem list shows them installed

But, “rake test”, complained that it cannot find required rubygems,  
like: activerecord/test/cases/helper.rb:12:in `require’: no such file  
to load – mocha

As a workaround, it started only with following RUBYOPT options:

RUBYOPT="-rubygems -rrubygems/custom\_require" rake test

What am I missing that causes the problem?

Also, here is sample IRB session showing the issue:  
$ irb  
irb(main):001:0\> RUBY\_VERSION  
=\> “1.9.2”  
irb(main):002:0\> Gem::VERSION  
=\> “1.3.6”  
irb(main):003:0\> require ‘mocha’  
LoadError: no such file to load – mocha  
from (irb):3:in `require' from (irb):3 from /home/nlugovoi/bin/irb:12:in`’  
irb(main):004:0\> require ‘rubygems’  
=\> false  
irb(main):005:0\> require ‘mocha’  
LoadError: no such file to load – mocha  
from (irb):5:in `require' from (irb):5 from /home/nlugovoi/bin/irb:12:in`’  
irb(main):006:0\> require ‘rubygems/custom\_require’  
=\> true  
irb(main):007:0\> require ‘mocha’  
=\> true  
irb(main):008:0\> Gem.path  
=\> ["/home/nlugovoi/.gem/ruby/1.9.1",  
“/home/nlugovoi/lib/ruby/gems/1.9.1”]

---

<div class="post-metadata">

**Author:** ![Nikolai\_L](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/2acd7d/32.png) [@Nikolai\_L](https://www.ruby-forum.com/u/Nikolai_L)\
**Post date:** [March 17, 2010, 5:18pm UTC](https://www.ruby-forum.com/t/gems-and-custom-require-problem-for-ruby-1-9-2dev-rubygems-1-3-6-installed-in-home/185292/2 "2010-03-17T17:18:54Z")

</div>

Here is another oddity, and I could not trace source of it:

irb(main):001:0\> Gem::ConfigMap  
=\> {:EXEEXT=\>"", :RUBY\_SO\_NAME=\>“ruby”, :arch=\>“i686-linux”,  
:bindir=\>"/home/nlugovoi/lib/ruby/bin",  
:libdir=\>"/home/nlugovoi/lib/ruby/lib", :ruby\_install\_name=\>“ruby”,  
:ruby\_version=\>“1.9.1”,  
:rubylibprefix=\>"/home/nlugovoi/lib/ruby/lib/ruby",  
:sitedir=\>"/home/nlugovoi/lib/ruby/lib/ruby/site\_ruby",  
:sitelibdir=\>"/home/nlugovoi/lib/ruby/lib/ruby/site\_ruby/1.9.1"}  
irb(main):002:0\> Gem.path  
=\> ["/home/nlugovoi/.gem/ruby/1.9.1",  
“/home/nlugovoi/lib/ruby/lib/ruby/gems/1.9.1”]  
irb(main):003:0\> Gem.clear\_paths  
=\> nil  
irb(main):004:0\> Gem::ConfigMap  
=\> {:EXEEXT=\>"", :RUBY\_SO\_NAME=\>“ruby”, :arch=\>“i686-linux”,  
:bindir=\>"/home/nlugovoi/bin", :libdir=\>"/home/nlugovoi/lib",  
:ruby\_install\_name=\>“ruby”, :ruby\_version=\>“1.9.1”,  
:rubylibprefix=\>"/home/nlugovoi/lib/ruby",  
:sitedir=\>"/home/nlugovoi/lib/ruby/site\_ruby",  
:sitelibdir=\>"/home/nlugovoi/lib/ruby/site\_ruby/1.9.1",  
:datadir=\>"/home/nlugovoi/share",  
:vendordir=\>"/home/nlugovoi/lib/ruby/vendor\_ruby",  
:vendorlibdir=\>"/home/nlugovoi/lib/ruby/vendor\_ruby/1.9.1"}  
irb(main):005:0\> Gem.path  
=\> ["/home/nlugovoi/.gem/ruby/1.9.1",  
“/home/nlugovoi/lib/ruby/gems/1.9.1”]

so, at the moment of loading, Gem::ConfigMap points to wrong  
directories, :rubylibprefix=\>"$HOME/lib/ruby/lib/ruby" instead of  
:rubylibprefix=\>"$HOME/lib/ruby", and fixes that only after  
Gem.clear\_paths

How can that happen that in gem\_prelude.rb ConfigMap receives such  
incorrect values?

---

<div class="post-metadata">

**Author:** ![Nikolai\_L](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/2acd7d/32.png) [@Nikolai\_L](https://www.ruby-forum.com/u/Nikolai_L)\
**Post date:** [March 17, 2010, 5:59pm UTC](https://www.ruby-forum.com/t/gems-and-custom-require-problem-for-ruby-1-9-2dev-rubygems-1-3-6-installed-in-home/185292/3 "2010-03-17T17:59:18Z")

</div>

Actually, that seems to be a bug, introduced in svn rev26881, that  
results in :

ruby.c:448:  
rb\_const\_set(rb\_cObject, rb\_intern\_const(“TMP\_RUBY\_PREFIX”),  
rb\_obj\_freeze(rb\_str\_new(RUBY\_LIB\_PREFIX,  
sizeof(RUBY\_LIB\_PREFIX)-1)));

added to ruby bugs: [http://redmine.ruby-lang.org/issues/show/2978](http://redmine.ruby-lang.org/issues/show/2978)

sorry for the noise
