def install_package(name, version)
if @new_resource.source
yum_command("yum -d0 -e0 -y#{expand_options(@new_resource.options)} localinstall #{@new_resource.source}")
else
if @yum.version_available?(name, version, arch)
method = "install"
unless @yum.allow_multi_install.include?(name)
if RPMVersion.parse(@current_resource.version) > RPMVersion.parse(version)
if allow_downgrade
method = "downgrade"
else
raise Chef::Exceptions::Package, "Installed package #{name}-#{@current_resource.version} is newer " +
"than candidate package #{name}-#{version}"
end
end
end
yum_command("yum -d0 -e0 -y#{expand_options(@new_resource.options)} #{method} #{name}-#{version}#{yum_arch}")
else
raise Chef::Exceptions::Package, "Version #{version} of #{name} not found. Did you specify both version " +
"and release? (version-release, e.g. 1.84-10.fc6)"
end
end
if flush_cache[:after]
@yum.reload
else
@yum.reload_installed
end
end