[PUP-146] Install multiple packages with one call to the underlying package manager Created: 2013/07/03  Updated: 2019/04/19

Status: Open
Project: Puppet
Component/s: Types and Providers
Affects Version/s: None
Fix Version/s: None

Type: Epic Priority: Major
Reporter: Eric Sorenson Assignee: Unassigned
Resolution: Unresolved Votes: 14
Labels: customer
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
is duplicated by PUP-1507 batchable yum and RPM transactions sh... Closed
relates to PUP-550 Work to enhance Puppet Performance Closed
relates to PUP-1061 Install multiple packages within a si... Accepted
Epic Name: Batch Processing of Resources
CS Priority: Reviewed
QA Contact: Eric Thompson


This is a JIRA clone of Redmine #2198, which is the #1 highest-voted bug in Redmine.

During the configuration applying process the package manager is called for each package installation. It is possible to reduce the number of calls to the package manager by gathering package installation and delayed some package installation. Naturally, this modification should not break the dependency graph.

Comment by Kylo Ginsberg [ 2013/09/04 ]

Estimating this at 8 story points. It should probably be broken into subtasks; at a minimum, there's room here for a design task (what are we going to do?) and an implementation task (do it). Part of the design question should be what package providers would support this m.o. and what the interface to the providers would need to be, etc.

Comment by Chris Nossing [ 2015/06/12 ]

It's been very quiet on this subject for a while now. Just wanted to say there are still people out there who would really appreciate it if this feature would work! Even a way to specify your own batches would be awesome... I wouldn't mind figuring out which packages can go into a batch myself if Puppet provided a way to install these batches.

Comment by Benjamin Fischer [ 2015/08/04 ]

Just for a short note: This feature would allow downgrade of packages with dependencies in yum.
When downgrading packages with dependencies, you need to downgrade all packages within a single yum call, otherwise downgrading will fail.

Comment by Roy Williams [ 2015/12/01 ]

I am annoyed we haven't seen any progress on this and instead we are still forced to use Exec resource hacks to work around the issue hoping later there will be a code re-factor. It seems there have been multiple tickets open on JIRA already on this very issue including "PUP-1061" which seems to be a year old. There was a patch submitted as well some time ago for dealing with this issue with a "combine" option for the package class.

From: https://github.com/phantez/puppet/commit/51ff88c950c172e6060ae63c1c71968e7898b462

I suspect this is no longer applicable given no progress has been made other than a community patch that got re-based at least once since this issue was brought up 4 years. Is there no one looking at this problem?

Comment by Kylo Ginsberg [ 2016/01/11 ]

Yes, sadly, there's been no progress on this, and it's not currently planned. So many things to do and somehow this hasn't made it to the top of anyone's list.

Roy Williams I wasn't aware of that patch but that looks like a solid starting point. From a quick look, I do have some questions about it, but probably awkward to discuss here. Do any of the watchers here want to kick off a PR or a thread on puppet-dev? It'd be easier to discuss in one of those venues.


Comment by Michael Smith [ 2018/09/27 ]

I think I missed this entirely when I put up https://github.com/puppetlabs/puppet/pull/7025. The earlier patch would be interesting to compare against.

Comment by David Alexander [ 2019/03/18 ]

Macquarie Group in Australia have requested this functionality. Is it still active? It's this sort of thing that will creep up on us when a competitor brings out better functionality (looking at you Red Hat) as it's not particularly sexy, it's just a fundamental requirement.

Generated at Tue Jul 14 03:50:33 PDT 2020 using Jira 8.5.2#805002-sha1:a66f9354b9e12ac788984e5d84669c903a370049.