class Wright::Provider::Package::Yum

Yum package provider. Used as a provider for {Resource::Package} on Fedora-based systems.

Public Instance Methods

installed_versions() click to toggle source

@return [Array<String>] the installed package versions

# File lib/wright/provider/package/yum.rb, line 13
def installed_versions
  version_format = '%{VERSION}-%{RELEASE}'
  rpm_args = %W(-q #{package_name} --qf #{version_format})
  stdout, _, status = Open3.capture3(env, 'rpm', *rpm_args)
  status.success? ? [stdout] : []
end

Private Instance Methods

install_package() click to toggle source
# File lib/wright/provider/package/yum.rb, line 22
def install_package
  yum(:install, package_options, package_name, package_version)
end
remove_package() click to toggle source
# File lib/wright/provider/package/yum.rb, line 26
def remove_package
  yum(:remove, package_options, package_name)
end
yum(action, options, package, version = nil) click to toggle source
# File lib/wright/provider/package/yum.rb, line 30
def yum(action, options, package, version = nil)
  cmd = 'yum'
  package_version = version.nil? ? '' : "-#{version}"
  args = ['-y', *options, action.to_s, package + package_version]
  exec_or_fail(cmd, args, "cannot #{action} package '#{package}'")
end