class Bundler::Installer

def run(options)

def run(options)
  # Create the BUNDLE_PATH directory
  begin
    Bundler.bundle_path.mkpath unless Bundler.bundle_path.exist?
  rescue Errno::EEXIST
    raise PathError, "Could not install to path `#{Bundler.settings[:path]}` " +
      "because of an invalid symlink. Remove the symlink so the directory can be created."
  end
  if Bundler.settings[:frozen]
    @definition.ensure_equivalent_gemfile_and_lockfile(options[:deployment])
  end
  if dependencies.empty?
    Bundler.ui.warn "The Gemfile specifies no dependencies"
    return
  end
  if Bundler.default_lockfile.exist? && !options["update"]
    begin
      tmpdef = Definition.build(Bundler.default_gemfile, Bundler.default_lockfile, nil)
      local = true unless tmpdef.new_platform? || tmpdef.missing_specs.any?
    rescue BundlerError
    end
  end
  # Since we are installing, we can resolve the definition
  # using remote specs
  unless local
    options["local"] ?
      @definition.resolve_with_cache! :
      @definition.resolve_remotely!
  end
  # Must install gems in the order that the resolver provides
  # as dependencies might actually affect the installation of
  # the gem.
  specs.each do |spec|
    install_gem_from_spec(spec)
  end
  lock
end