I just installed Ruby and RubyGems using MacPorts and a whole bunch of gems. I am trying to run a Rails project that works on Ubuntu, but now I am trying to make it run on Leopard. I got an error when I just run script/console: jamison:redesign rlaw$ script/console Loading development environment. /opt/local/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/ active_support/dependencies.rb:477:in `const_missing'':NameError: uninitialized constant Gem::Version::NUM_RE I find it awk Gem::Version::NUM_RE is not initialized. I then traced and found that I have two Ruby directories: jamison:ruby rlaw$ ls -alF total 0 drwxr-xr-x 6 root admin 204 Dec 2 13:55 ./ drwxrwxr-x 167 root admin 5678 Dec 1 07:14 ../ drwxr-xr-x 111 root admin 3774 Dec 1 03:47 1.8/ drwxr-xr-x 3 root admin 102 Dec 1 04:01 gems/ drwxr-xr-x 4 root admin 136 Dec 1 03:47 site_ruby/ drwxr-xr-x 4 root admin 136 Dec 1 03:47 vendor_ruby/ And my Ruby $LOAD_PATH is as follow:>> puts $LOAD_PATH/opt/local/lib/ruby/site_ruby/1.8 /opt/local/lib/ruby/site_ruby/1.8/i686-darwin9.1.0 /opt/local/lib/ruby/site_ruby /opt/local/lib/ruby/vendor_ruby/1.8 /opt/local/lib/ruby/vendor_ruby/1.8/i686-darwin9.1.0 /opt/local/lib/ruby/vendor_ruby /opt/local/lib/ruby/1.8 /opt/local/lib/ruby/1.8/i686-darwin9.1.0 . Things in site_ruby and vendor_ruby are obviously different. Specifically, /opt/local/lib/ruby/vendor_ruby/1.8/rubygems/version.rb has NUM_RE defined but /opt/local/lib/ruby/site_ruby/1.8/rubygems/ version.rb does not. Since Ruby looks in site_ruby first, that''s exactly why it breaks. So my solution is to swap site_ruby and vendor_ruby, and it works. However, why are there two directories, site_ruby and vendor_ruby? How did it end up like this? Is there any repercussion if I swap them? Ray --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Ola Mork
2007-Dec-19 16:12 UTC
Re: RubyGems break because Ruby has both site_ruby and vendor_ruby
I fixed this on my project by putting this in my environment above the
initializer:
module Gem
class Version
NUM_RE = /\s*(\d+(\.\d+)*)*\s*/
end
end
- Ola
On Dec 2, 2:45 pm, ray <rayvi...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:> I just installed Ruby and RubyGems using MacPorts and a whole bunch of
> gems. I am trying to run a Rails project that works on Ubuntu, but
> now I am trying to make it run on Leopard. I got an error when I just
> run script/console:
>
> jamison:redesign rlaw$ script/console
> Loading development environment.
> /opt/local/lib/ruby/gems/1.8/gems/activesupport-1.4.2/lib/
> active_support/dependencies.rb:477:in `const_missing'':NameError:
> uninitialized constant Gem::Version::NUM_RE
>
> I find it awk Gem::Version::NUM_RE is not initialized. I then traced
> and found that I have two Ruby directories:
>
> jamison:ruby rlaw$ ls -alF
> total 0
> drwxr-xr-x 6 root admin 204 Dec 2 13:55 ./
> drwxrwxr-x 167 root admin 5678 Dec 1 07:14 ../
> drwxr-xr-x 111 root admin 3774 Dec 1 03:47 1.8/
> drwxr-xr-x 3 root admin 102 Dec 1 04:01 gems/
> drwxr-xr-x 4 root admin 136 Dec 1 03:47 site_ruby/
> drwxr-xr-x 4 root admin 136 Dec 1 03:47 vendor_ruby/
>
> And my Ruby $LOAD_PATH is as follow:
>
> >> puts $LOAD_PATH
>
> /opt/local/lib/ruby/site_ruby/1.8
> /opt/local/lib/ruby/site_ruby/1.8/i686-darwin9.1.0
> /opt/local/lib/ruby/site_ruby
> /opt/local/lib/ruby/vendor_ruby/1.8
> /opt/local/lib/ruby/vendor_ruby/1.8/i686-darwin9.1.0
> /opt/local/lib/ruby/vendor_ruby
> /opt/local/lib/ruby/1.8
> /opt/local/lib/ruby/1.8/i686-darwin9.1.0
> .
>
> Things in site_ruby and vendor_ruby are obviously different.
> Specifically, /opt/local/lib/ruby/vendor_ruby/1.8/rubygems/version.rb
> has NUM_RE defined but /opt/local/lib/ruby/site_ruby/1.8/rubygems/
> version.rb does not. Since Ruby looks in site_ruby first, that''s
> exactly why it breaks. So my solution is to swap site_ruby and
> vendor_ruby, and it works.
>
> However, why are there two directories, site_ruby and vendor_ruby?
> How did it end up like this? Is there any repercussion if I swap
> them?
>
> Ray
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---