[Rubygems-developers] [ rubygems-Bugs-25882 ] Handling of Windows paths broken in 1.3.3

noreply at rubyforge.org noreply at rubyforge.org
Tue May 12 08:01:19 EDT 2009


Bugs item #25882, was opened at 2009-05-12 14:01
You can respond by visiting: 
http://rubyforge.org/tracker/?func=detail&atid=575&aid=25882&group_id=126

Category: `gem install` command
Group: v1.3.x
Status: Open
Resolution: None
Priority: 3
Submitted By: Lars Christensen (larsch)
Assigned to: Nobody (None)
Summary: Handling of Windows paths broken in 1.3.3

Initial Comment:
Installing gems from local drives other than the current is broken on Windows. RubyGems strips the drive letter (through using the URI class for something which isn't an URI).

C:\> gem install p:\path\to\mygem-2.1.18.gem

ERROR:  While executing gem ... (Errno::ENOENT)
    No such file or directory - /path/to/mygem-2.1.18.gem

Then I tried to pass a valid URI:

C:\> gem install file:///p:/path/to/mygem-2.1.18.gem

But that doesn't work either;

ERROR:  could not find gem file:///p:/path/to/mygem-2.1.18.gem locally or in a repository

I believe this is because URI#path returns "/p:/path/to/mygem..." (with leading slash), which is not a valid path on Windows.

Finally, I attempted to hack RubyGems to prefix file:/// itself, but I don't understand the reason for this line of code in remote_fetcher.rb:

        remote_gem_path = File.join(path, 'gems', gem_file_name)

That causes this error instead:

ERROR:  While executing gem ... (Errno::ENOENT)
    No such file or directory - p:/path/to/gems/mygem-2.1.18.gem

Notice the extra /gems/ path.


----------------------------------------------------------------------

You can respond by visiting: 
http://rubyforge.org/tracker/?func=detail&atid=575&aid=25882&group_id=126


More information about the Rubygems-developers mailing list