puppetlabs/puppet · error · Puppet::Error
No package found with the specified name [%{name}]
Error message
No package found with the specified name [%{name}] What it means
Raised in the eix-backed `query` (lib/puppet/provider/package/portage.rb:225) on Gentoo: when the eix search yields zero parsed packages for the resource name, the provider raises Puppet::Error 'No package found with the specified name'. The name simply does not exist in the eix view of the portage tree.
Source
Thrown at lib/puppet/provider/package/portage.rb:225
# This DOES NOT choose to install/upgrade or not, just provides current info
# prefer checking versions to slots as versions are finer grained
search = qatom[:pv]
search = search + '-' + qatom[:pr] if qatom[:pr]
if search
package[:version_available] = eix_get_version_for_versions(package[:installable_versions], search)
package[:ensure] = eix_get_version_for_versions(package[:installed_versions], search)
elsif qatom[:slot]
package[:version_available] = eix_get_version_for_slot(package[:slot_versions_available], qatom[:slot])
package[:ensure] = eix_get_version_for_slot(package[:installed_slots], qatom[:slot])
end
package[:ensure] = package[:ensure] || :absent
packages << package
end
case packages.size
when 0
raise Puppet::Error, _("No package found with the specified name [%{name}]") % { name: @resource[:name] }
when 1
@eix_result = packages[0]
else
raise Puppet::Error, _("More than one package with the specified name [%{search_value}], please use the category parameter to disambiguate") % { search_value: search_value }
end
rescue Puppet::ExecutionFailure => detail
raise Puppet::Error, detail
end
end
def latest
query[:version_available]
end
private
def eix_get_version_for_versions(versions, target)
# [2.7.10-r1,2.7.12,3.4.3-r1,3.4.5,3.5.2] 3.5.2View on GitHub (pinned to e227c27540)
Solutions
- Run `eix-update` on the node, then `eix --exact <name>` to confirm the package is findable.
- Fix the resource name, using `category/name` form for precision.
- Sync portage and any overlays so the tree actually contains the package.
- If the package is virtual/set, check whether it needs the @set syntax or a different provider.
Defensive patterns
Strategy: validation
Validate before calling
# Confirm the name resolves in eix before the agent run
eix-update >/dev/null 2>&1; eix --exact --only-names "${name}" | grep -q . || echo "name not found - fix manifest or sync tree" Prevention
- Run `eix-update` (or eix-sync) after adding overlays or syncing portage.
- Prefer `category/name` titles so single-match is guaranteed.
- Lint package titles against eix in CI for Gentoo profiles.
When it happens
Trigger: Typo in the package title; package not present in any configured repo or overlay; eix cache stale after adding an overlay or syncing portage (puppet only auto-runs eix-update when /usr/portage/metadata/timestamp is newer than the cache).
Common situations: Overlay added but eix cache never refreshed; package names copied from another distro; renamed/removed packages after a tree sync.
Related errors
- detail
- More than one package with the specified name [%{search_valu
- Could not find package %{name}
- Could not find package %{name}
- Could not find package %{name}
AI-assisted analysis of puppetlabs/puppet@e227c27540 (2026-08-21).
Data as JSON: /api/errors/2b3b6ad571bea781.
Report an issue: GitHub.