{"record":{"id":"2b3b6ad571bea781","repo":"puppetlabs/puppet","slug":"no-package-found-with-the-specified-name-name","errorCode":null,"errorMessage":"No package found with the specified name [%{name}]","messagePattern":"No package found with the specified name \\[%(.+?)\\]","errorType":"exception","errorClass":"Puppet::Error","httpStatus":null,"severity":"error","filePath":"lib/puppet/provider/package/portage.rb","lineNumber":225,"sourceCode":"        # This DOES NOT choose to install/upgrade or not, just provides current info\n        # prefer checking versions to slots as versions are finer grained\n        search = qatom[:pv]\n        search = search + '-' + qatom[:pr] if qatom[:pr]\n        if search\n          package[:version_available] = eix_get_version_for_versions(package[:installable_versions], search)\n          package[:ensure] = eix_get_version_for_versions(package[:installed_versions], search)\n        elsif qatom[:slot]\n          package[:version_available] = eix_get_version_for_slot(package[:slot_versions_available], qatom[:slot])\n          package[:ensure] = eix_get_version_for_slot(package[:installed_slots], qatom[:slot])\n        end\n\n        package[:ensure] = package[:ensure] || :absent\n        packages << package\n      end\n\n      case packages.size\n      when 0\n        raise Puppet::Error, _(\"No package found with the specified name [%{name}]\") % { name: @resource[:name] }\n      when 1\n        @eix_result = packages[0]\n      else\n        raise Puppet::Error, _(\"More than one package with the specified name [%{search_value}], please use the category parameter to disambiguate\") % { search_value: search_value }\n      end\n    rescue Puppet::ExecutionFailure => detail\n      raise Puppet::Error, detail\n    end\n  end\n\n  def latest\n    query[:version_available]\n  end\n\n  private\n\n  def eix_get_version_for_versions(versions, target)\n    # [2.7.10-r1,2.7.12,3.4.3-r1,3.4.5,3.5.2] 3.5.2","sourceCodeStart":207,"sourceCodeEnd":243,"githubUrl":"https://github.com/puppetlabs/puppet/blob/e227c27540975c25aa22d533a52424a9d2fc886a/lib/puppet/provider/package/portage.rb#L207-L243","documentation":"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.","triggerScenarios":"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).","commonSituations":"Overlay added but eix cache never refreshed; package names copied from another distro; renamed/removed packages after a tree sync.","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."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"# Confirm the name resolves in eix before the agent run\neix-update >/dev/null 2>&1; eix --exact --only-names \"${name}\" | grep -q . || echo \"name not found - fix manifest or sync tree\"","typeGuard":null,"tryCatchPattern":null,"preventionTips":["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."],"tags":["gentoo","portage","eix","package-not-found"],"backgroundTag":"package-not-found-in-repo","analyzedSha":"e227c27540975c25aa22d533a52424a9d2fc886a","analyzedAt":"2026-08-21T20:49:46.650Z","schemaVersion":2},"datasetVersion":"2026-08-21T23:17:16.201Z"}