# File lib/rubygems/remote_installer.rb, line 50
    def install(gem_name, version_requirement = "> 0.0.0", force=false,
                install_dir=Gem.dir, install_stub=true)
      unless version_requirement.respond_to?(:satisfied_by?)
        version_requirement = Version::Requirement.new [version_requirement]
      end
      installed_gems = []
      begin
        spec, source = find_gem_to_install(gem_name, version_requirement)
        dependencies = find_dependencies_not_installed(spec.dependencies)

        installed_gems << install_dependencies(dependencies, force, install_dir)

        cache_dir = @options[:cache_dir] || File.join(install_dir, "cache")
        destination_file = File.join(cache_dir, spec.full_name + ".gem")

        download_gem(destination_file, source, spec)

        installer = new_installer(destination_file)
        installed_gems.unshift installer.install(force, install_dir, install_stub)
      rescue RemoteInstallationSkipped => e
        puts e.message
      end
      installed_gems.flatten
    end