# File src/ruby_supportlib/phusion_passenger/config/installation_utils.rb, line 52
      def find_or_create_writable_support_binaries_dir!
        if File.exist?(PhusionPassenger.support_binaries_dir)
          result = directory_writable?(PhusionPassenger.support_binaries_dir)
          if result == true  # return value can be a SystemCallError
            return PhusionPassenger.support_binaries_dir
          end

          if Process.euid == 0
            if result == false
              print_installation_error_header
              render_template 'installation_utils/support_binaries_dir_not_writable_despite_running_as_root',
                :dir => PhusionPassenger.support_binaries_dir,
                :myself => myself
            else
              render_template 'installation_utils/unexpected_filesystem_problem',
                :dir => PhusionPassenger.support_binaries_dir,
                :exception => result
            end
            abort
          else
            return find_or_create_writable_user_support_binaries_dir!
          end
        else
          if Process.euid == 0
            mkdir_p_preserve_parent_owner(PhusionPassenger.support_binaries_dir)
            return PhusionPassenger.support_binaries_dir
          else
            return find_or_create_writable_user_support_binaries_dir!
          end
        end
      end