Bug #2368
Issue with yum provider and long RPM names ?
| Status: | Needs More Information | Start date: | 06/26/2009 | |
|---|---|---|---|---|
| Priority: | Normal | Due date: | ||
| Assignee: | - | % Done: | 0% |
|
| Category: | package | |||
| Target version: | - | |||
| Affected Puppet version: | 0.24.8 | Branch: | ||
| Keywords: | ||||
| Votes: | 0 |
Description
Using the YUM provider/helper from 0.24.8 we have an issue with a package latest all 3 packages are in the manifest as “latest”:–
DBCF_4Q_LinuxAS4_DBCF_4Q_Linux_ins_DBCFStageLinux-5.03.1.0-5.03.1.0-0 DBCF_4Q_LinuxAS4_DBCF_4Q_Linux_ins_DBCFStageLinux-6.10.1.0-0 – this has an upgrade in the channels DBCF_4Q_LinuxAS4_DBCF_4Q_Linux_ins_DBCFStageLinux-6.02.1.0-6.02.1.0-0
However due to the length of the package name when we perform a puppet run this happens the system:– Package[DBCF_4Q_LinuxAS4_DBCF_4Q_Linux_ins_DBCFStageLinux]/ensure: ensure changed ‘6.10.1.0-0’ to ‘6.13.1.0-0’
Which it duly does however the other 2 RPM’s with similar names (but with version appended to allow for multiple revisions) are removed in the yum.log:– Jun 26 08:28:01 Updated: DBCF_4Q_LinuxAS4_DBCF_4Q_Linux_ins_DBCFStageLinux.noarch 6.13.1.0-0 Jun 26 08:28:01 Erased: DBCF_4Q_LinuxAS4_DBCF_4Q_Linux_ins_DBCFStageLinux-5.03.1.0 Jun 26 08:28:01 Erased: DBCF_4Q_LinuxAS4_DBCF_4Q_Linux_ins_DBCFStageLinux-6.02.1.0
Any ideas on how to resolve this ?
History
Updated by Peter Meier almost 3 years ago
Why do you think that the problem is related to long names?
I rather suspect that puppet’s latest feature doesn’t support multiple installations. One problem might be that puppet sees all these versions as the same package and ensures (how latest tell) that only the latest of them is installed. Which makes sense. I agree not, in your case or kernel packages. But how to identify the different use cases of latest?
Updated by Paul Seymour almost 3 years ago
But they all have different package names (2 with different version numbers appended) and only one is set to update so why did puppet upgrade the one it needed to and remove the others ?
Updated by Peter Meier almost 3 years ago
Paul Seymour wrote:
But they all have different package names (2 with different version numbers appended) and only one is set to update so why did puppet upgrade the one it needed to and remove the others ?
well puppet has somehow to extract the version from the package name to look for the latest. therefore puppet will treat the appended versions as version and this will lead to the issue that puppet will treat all as the same package.
I didn’t look at the code to verfiy my assumption, but you might have a look @ yumhelper.py and the rpm and yum provider (lib/puppet/provider/package/rpm.rb and yum.rb afair) to verify this assumption. maybe you’ll also find the actual problem…
Updated by James Turnbull almost 3 years ago
- Category set to package
- Status changed from Unreviewed to Needs More Information
Updated by Robert Lazzurs over 2 years ago
I would suggest this is more of a generic rpm/yum issue than an issue with puppet.
In my environment I have the same problems with multiple versions of java and get around this by setting the installonlypkgs and installonly_limit option in yum.conf, eg
installonly_limit=15 installonlypkgs=kernel, kernel-smp, kernel-bigmem, kernel-enterprise, kernel-debug, kernel-unsupported, jdk, jre showdupesfromrepos=1