def install_component
      if (backend != :stdlib && command?('rsync')) || backend == :rsync
        FileUtils.mkdir_p destination_path
        cmd = [command?('rsync'), '-rtc', '--del', '--links', "#{source_path}/", destination_path]
        logger.debug { "Running command: #{cmd.join ' '}" }
        system(*cmd)
      else
        FileUtils.remove_entry_secure destination_path if Dir.exist? destination_path
        FileUtils.mkdir_p destination_path
        FileUtils.cp_r "#{source_path}/.", destination_path, preserve: true
      end
    end
def install_component
      if (backend != :stdlib && command?('rsync')) || backend == :rsync
        FileUtils.mkdir_p destination_path
        cmd = [command?('rsync'), '-rtc', '--del', '--links', "#{source_path}/", destination_path]
        logger.debug { "Running command: #{cmd.join ' '}" }
        system(*cmd)
      else
        FileUtils.remove_entry_secure destination_path if Dir.exist? destination_path
        FileUtils.mkdir_p destination_path
        FileUtils.cp_r "#{source_path}/.", destination_path, preserve: true
      end
    end
Recursively creates the necessary directories and installs the component.
 Any files in the install directory not in the source directory are removed.
 Use rsync if available.