Search code examples
rubywindows-vistarubygems

Error "set_paths: undefined method uid for nil:NilClass (NoMethodError)" while installing RubyGems on Vista


I get the following error when attempting to install RubyGems. I've tried Googling but have had no luck there. Has anybody encountered and resolved this issue before?


C:\rubygems-1.3.0> ruby setup.rb
.
.
install -c -m 0644 rubygems/validator.rb C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/validator.rb
install -c -m 0644 rubygems/version.rb C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/version.rb
install -c -m 0644 rubygems/version_option.rb C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/version_option.rb
install -c -m 0644 rubygems.rb C:/Ruby/lib/ruby/site_ruby/1.8/rubygems.rb
install -c -m 0644 ubygems.rb C:/Ruby/lib/ruby/site_ruby/1.8/ubygems.rb
cp gem C:/Users/brian/AppData/Local/Temp/gem
install -c -m 0755 C:/Users/brian/AppData/Local/Temp/gem C:/Ruby/bin/gem
rm C:/Users/brian/AppData/Local/Temp/gem
install -c -m 0755 C:/Users/brian/AppData/Local/Temp/gem.bat C:/Ruby/bin/gem.bat
rm C:/Users/brian/AppData/Local/Temp/gem.bat
Removing old RubyGems RDoc and ri
Installing rubygems-1.3.0 ri into C:/Ruby/lib/ruby/gems/1.8/doc/rubygems-1.3.0/ri
./lib/rubygems.rb:713:in `set_paths': undefined method `uid' for nil:NilClass (NoMethodError)
        from ./lib/rubygems.rb:711:in `each'
        from ./lib/rubygems.rb:711:in `set_paths'
        from ./lib/rubygems.rb:518:in `path'
        from ./lib/rubygems/source_index.rb:66:in `installed_spec_directories'
        from ./lib/rubygems/source_index.rb:56:in `from_installed_gems'
        from ./lib/rubygems.rb:726:in `source_index'
        from ./lib/rubygems.rb:138:in `activate'
        from ./lib/rubygems.rb:49:in `gem'
        from setup.rb:279:in `run_rdoc'
        from setup.rb:296

C:\rubygems-1.3.0>

I have Ruby 1.8.6 installed on my laptop running Windows Vista.


Solution

  • I assume you're not trying to install under cygwin; that install is meant for unix-like operating systems. Edit: (Actually, from the log above it looks like there is some Windows-specific stuff being run... perhaps you're running into a UAC protection issue?)

    If you just use the Windows ruby one-click installer, it includes rubygems. If you're not getting the rubygems functionality, you may need to require "rubygems" in your script, or add -rubygems to your RUBYOPT environment variable. (You can also require rubygems from the command line with ruby -rubygems myscript.rb.

    Are you trying to install it separately for some other reason?