On 13 Jul 2010, at 06:11, Kenta Murata wrote:

> Bug #3564: 'gem uninstall' doesn't remove executables which were installed with --format-executable option
> http://redmine.ruby-lang.org/issues/show/3564
> 
> Author: Kenta Murata
> Status: Open, Priority: Normal
> Category: lib, Target version: 1.9.2
> ruby -v: ruby 1.9.2dev (2010-07-11 revision 28613) [x86_64-darwin10.4.0]
> 
> 'gem uninstall' command doesn't remove executables installed with --format-executable option, but ones installed without the option.
> The command, unfortunately, doesn't allow us the option so we are obliged to remove the executables manually.
> 
> Operation Log:
> 
> [12:15:24#104]mrkn$ ls /opt/rubies/bin/spec*
> /opt/rubies/bin/spec       /opt/rubies/bin/spec-1.9.2
> [14:03:11#105]mrkn$ gem-1.9.2 uninstall --format-executable rspec
> ERROR:  While executing gem ... (OptionParser::InvalidOption)
>    invalid option: --format-executable
> [14:03:47#106]mrkn$ gem-1.9.2 uninstall rspec
> Remove executables:
>        autospec, spec
> 
> in addition to the gem? [Yn]  y
> Removing autospec
> Removing spec
> 
> You have requested to uninstall the gem:
>        rspec-1.3.0
> addressable-2.1.2 depends on [rspec (>= 1.0.8)]
> autotest-growl-0.2.4 depends on [rspec (>= 1.3.0)]
> bundler-0.9.26 depends on [rspec (>= 0)]
> g-1.4.0 depends on [rspec (>= 0)]
> If you remove this gems, one or more dependencies will not be met.
> Continue with Uninstall? [Yn]  y
> Successfully uninstalled rspec-1.3.0
> [14:04:24#107]mrkn$ ls /opt/rubies/bin/spec*
> /opt/rubies/bin/spec-1.9.2


This is a known issue in RubyGems, I have proposed that --format-executable be removed as a command line option from the install command, and only exist in the configuration (gemrc). This way behaviour will be consistent unless the user explicitly changes the configuration. I have not yet come around to writing either solution, or removing the option.

There is a core problem with this whereby RubyGems does not maintain a manifest of items installed, and as such it is not aware at the time of uninstall, which binary name was installed with the package. Arbitrary use of the format executable parameter to install is for now, very much not recommended.

This bug should be reported to one of the RubyGems trackers, either at:

 http://help.rubygems.org

or

 http://rubyforge.org/tracker/?group_id=126

Please do note though, that this is a dup of a bug already in the rubyforge tracker:

 http://rubyforge.org/tracker/index.php?func=detail&aid=25826&group_id=126&atid=575