def run
      before_install
      run_steps
      return true
    rescue Abort
      puts
      return false
    rescue SignalException, SystemExit
      raise
    rescue PlatformInfo::RuntimeError => e
      new_screen
      puts "<red>An error occurred</red>"
      puts
      puts e.message
      exit 1
    rescue Exception => e
      show_support_options_for_installer_bug(e)
      exit 2
    ensure
      after_install
    end
def run
      before_install
      run_steps
      return true
    rescue Abort
      puts
      return false
    rescue SignalException, SystemExit
      raise
    rescue PlatformInfo::RuntimeError => e
      new_screen
      puts "<red>An error occurred</red>"
      puts
      puts e.message
      exit 1
    rescue Exception => e
      show_support_options_for_installer_bug(e)
      exit 2
    ensure
      after_install
    end
Create an AbstractInstaller. All options will be stored as instance
 variables, for example:

   installer = AbstractInstaller.new(:foo => "bar")
   installer.instance_variable_get(:"@foo")   # => "bar"
 Start the installation by calling the #install! method.