[Rubygems-developers] Problem trying to uninstall an old gem

Eric Hodel drbrain at segment7.net
Sun Apr 27 01:37:49 EDT 2008


On Apr 25, 2008, at 16:58 PM, Luis Lavena wrote:
> On Fri, Apr 25, 2008 at 5:17 PM, Chad Woolley  
> <thewoolleyman at gmail.com> wrote:
>> On Fri, Apr 25, 2008 at 11:20 AM, Berger, Daniel
>>
>> <Daniel.Berger at qwest.com> wrote:
>>
>>> I guess it's getting confused by the lack of the '-60' on the  
>>> platform.
>>
>> Yeah, I think there are still a few edge cases in various commands
>> where platform matching isn't working completely right, especially if
>> you have installed gems that are not meant for the current platform.
>>
>
> Ok, I got it, still need to create a patch.
>
> The error can be traced down to lib/rubygems/uninstaller.rb:178..182:
>
>  def path_ok?(spec)
>    match_path = File.join @gem_home, 'gems', spec.full_name
>
>    match_path == spec.full_gem_path
>  end
>
> A pre-1.0 gem (mongrel 1.1.1) is trying to match spec.full_name to
> full_gem_path:
>
> spec.full_name => mongrel-1.1.1-x86-mswin32
> spec.full_gem_path => {...} mongrel-1.1.1-mswin32
>
> (I'm suppressing all the path there just to show the difference)
>
> In this case, match_path will never match the full_gem_path.

It should probably check original_name in addition to full_name.

>> If you have a reproducible case against 1.1.1, you should open a bug
>> with details.
>>
>
> Need to create a test case to reproduce this... couldn't locate a test
> where I can hook up and duplicate our situation... never got used to
> test/unit :-P

I haven't played much in the uninstaller, so I think there aren't many  
tests there :(


More information about the Rubygems-developers mailing list