Ruby and Rails on Leopard

I asked on the Ruby list the best way to switch from my Hivelogic source
installed versions of Ruby and Rails, to the Leopard native versions.
The reply was to just change my PATH to move the /usr/local/bin to the
end of the path. That way the ruby and rails (and svn, and rake, etc.)
commands would use the OS X native versions, and other things I’ve
installed would continue to work.

That all seemed to work OK. Then I decided I’d try updating the gems
(Leopard comes with Rails 1.2.3).

The gem update was proceeding along fine, until it hit an error and
stopped the update process:

Installing ri documentation for activerecord-1.15.5…
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rdoc/rdoc.rb:101:in
`error’: (RDoc::RDocError)
Directory /Library/Ruby/Gems/1.8/doc/activerecord-1.15.5/ri already
exists, but it looks like it
isn’t an RDoc directory. Because RDoc doesn’t want to risk
destroying any of your existing files, you’ll need to
specify a different output directory name (using the
–op option).

Don’t know what to do now… the directory referenced:
/Library/Ruby/Gems/1.8/doc/activerecord-1.15.5/ri and is empty - it was
actually installed by the gem update process (the /doc directory was
empty before the gem update)

Anyone have any idea?

Thanks

You are pretty much on your won updating to 1.2.5 right now, which for
me and my app seems to break a few things. However, if you so
desperately need to upgrade rails…

first off, are you just upgrading rails? Or using gem update --system?
Have you tried using --no-doc --no-ri?

I have not attempted to update to 1.2.5 and don’t plan to right away.
So I don’t know how much help I can be.

On 10/28/07, John T. [email protected] wrote:

specify a different output directory name (using the

Posted via http://www.ruby-forum.com/.


Michael S.
Linux Admin/Developer
AIM: mikesteinfeld
GTALK: [email protected]

After a little reading,

The problem is that RDoc empties the output directory, but
leaves the directory itself there. RDoc doesn’t like putting
documentation into an empty directory, because it doesn’t want to
clobber someone else’s space. It wants to create the directory
itself, or
at least find a “created.rid” file there.

my advice, manually remove the directory and try again. Or use the
–no-doc switch.

Hope that helps.

I just did a “sudo gem update”

(this is on a non-production, critical, system - I was just testing to
see how it’s all going to work.)

I’d guess since the update it putting the updated gems into a separate
directory, from the system installed gems, that may be the problem.
I’ll try with the --no-doc switch and see what happens.

thanks.

John T. wrote:

I just did a “sudo gem update”

(this is on a non-production, critical, system - I was just testing to
see how it’s all going to work.)

I’d guess since the update it putting the updated gems into a separate
directory, from the system installed gems, that may be the problem.
I’ll try with the --no-doc switch and see what happens.

thanks.

Well, I think it’s not just the Leopard native system. I just tried
doing a gem update on my installed-from-source version (in /usr/local)
and I got the same error about activerecord -

Installing ri documentation for activerecord-1.15.5…
/usr/local/lib/ruby/1.8/rdoc/rdoc.rb:101:in `error’: (RDoc::RDocError)
Directory /usr/local/lib/ruby/gems/1.8/doc/activerecord-1.15.5/ri
already exists, but it looks like it
isn’t an RDoc directory. Because RDoc doesn’t want to risk
destroying any of your existing files, you’ll need to
specify a different output directory name (using the
–op option).

This file is what was just installed by the gem update command, so it
makes sense that the ri directory exists - it came from the gem!

And it looks like it just happened when updating rake:

Successfully installed rake-0.7.3
Installing ri documentation for rake-0.7.3…
/usr/local/lib/ruby/1.8/rdoc/rdoc.rb:101:in `error’: (RDoc::RDocError)
Directory /usr/local/lib/ruby/gems/1.8/doc/rake-0.7.3/ri already exists,
but it looks like it
isn’t an RDoc directory. Because RDoc doesn’t want to risk
destroying any of your existing files, you’ll need to
specify a different output directory name (using the
–op option).

I’m just copying the created.rid file from another directory and
re-installing.