# File src/ruby_supportlib/phusion_passenger/platform_info.rb, line 374
    def self.find_all_commands(name)
      search_dirs = ENV['PATH'].to_s.split(File::PATH_SEPARATOR)
      search_dirs.concat(%w(/bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin))
      ["/opt/*/bin", "/opt/*/sbin", "/usr/local/*/bin", "/usr/local/*/sbin"].each do |glob|
        search_dirs.concat(Dir[glob])
      end

      # Solaris systems may have Apache installations in
      # /usr/apache2/2.2/bin/sparcv9/
      Dir["/usr/apache2/*/bin"].each do |bindir|
        search_dirs << bindir
        Dir["#{bindir}/*"].each do |binsubdir|
          if File.directory?(binsubdir)
            search_dirs << binsubdir
          end
        end
      end

      search_dirs.delete("")
      search_dirs.uniq!

      result = []
      search_dirs.each do |directory|
        path = File.join(directory, name)
        if !File.exist?(path)
          log "Looking for #{path}: not found"
        elsif !File.file?(path)
          log "Looking for #{path}: found, but is not a file"
        elsif !File.executable?(path)
          log "Looking for #{path}: found, but is not executable"
        else
          log "Looking for #{path}: found"
          result << path
        end
      end
      return result
    end