mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/rubygems: Import RubyGems 1.8.7:
Added missing require for `gem uninstall --format-executable`. The correct name of the executable being uninstalled is now displayed with --format-executable. Fixed `gem unpack uninstalled_gem` default version picker. RubyGems no longer claims a nonexistent gem can be uninstalled. `gem which` no longer claims directories are requirable files. `gem cleanup` continues cleaning up gems if one can't be uninstalled due to permissions. Issue #82. Gem repository directories are no longer created world-writable. Patch by Sakuro OZAWA. [Ruby 1.9 - Bug #4930] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32852 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
d24997cce1
commit
3434676e9e
13 changed files with 143 additions and 14 deletions
|
@ -61,6 +61,8 @@ installed elsewhere in GEM_PATH the cleanup command won't touch it.
|
|||
|
||||
deps = deplist.strongly_connected_components.flatten.reverse
|
||||
|
||||
original_path = Gem.path
|
||||
|
||||
deps.each do |spec|
|
||||
if options[:dryrun] then
|
||||
say "Dry Run Mode: Would uninstall #{spec.full_name}"
|
||||
|
@ -74,20 +76,21 @@ installed elsewhere in GEM_PATH the cleanup command won't touch it.
|
|||
:version => "= #{spec.version}",
|
||||
}
|
||||
|
||||
if Gem.user_dir == spec.base_dir then
|
||||
uninstall_options[:install_dir] = spec.base_dir
|
||||
end
|
||||
uninstall_options[:user_install] = Gem.user_dir == spec.base_dir
|
||||
|
||||
uninstaller = Gem::Uninstaller.new spec.name, uninstall_options
|
||||
|
||||
begin
|
||||
uninstaller.uninstall
|
||||
rescue Gem::DependencyRemovalException, Gem::InstallError,
|
||||
Gem::GemNotInHomeException => e
|
||||
Gem::GemNotInHomeException, Gem::FilePermissionError => e
|
||||
say "Unable to uninstall #{spec.full_name}:"
|
||||
say "\t#{e.class}: #{e.message}"
|
||||
end
|
||||
end
|
||||
|
||||
# Restore path Gem::Uninstaller may have change
|
||||
Gem.use_paths(*original_path)
|
||||
end
|
||||
|
||||
say "Clean Up Complete"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue