Agreed with all your yum issues, its a bit of a pain.

With the help of a few others in anvil we have made a small-mini helper tool 
(that uses the same underlying yum python apis) so that we can get better 
control over the whole process.

- https://github.com/stackforge/anvil/tree/master/tools#yyoom
- https://github.com/stackforge/anvil/blob/master/tools/yyoom

The name is meant to be similar for a reason, ha. It is being used to help 
interact with the yum python api (yes yum is in python) to attempt to overcome 
some of the issues u stated. Also it has json output which is a lot easier to 
consume from programs using yyooom (anvil itself), which is much nicer than 
scraping out the information from the yum output. *note its not really meant to 
be a full replacement for yum at all, just a helper tool to make the anvil+yum 
'pain' a little less* With some tweaking I think it could probably solve your 
issue of version ranges, since I think the underlying yum library could do it, 
if the main yum program can't (at this moment).

From: Jay Buffington <[email protected]<mailto:[email protected]>>
Reply-To: OpenStack Development Mailing List 
<[email protected]<mailto:[email protected]>>
Date: Tuesday, August 6, 2013 9:40 AM
To: OpenStack Development Mailing List 
<[email protected]<mailto:[email protected]>>
Subject: Re: [openstack-dev] [DevStack] Python dependencies: PyPI vs distro 
packages

On Tue, Aug 6, 2013 at 8:35 AM, Joshua Harlow 
<[email protected]<mailto:[email protected]>> wrote:
I think jay your usage also was before anvil started to build all the *missing* 
dependencies automatically (something u inspired me to get going in the first 
place) so hopefully said updates to rhel.yaml are only now needed for 
exceptions and not the common path :)

+1 I'm glad to hear that.  I don't think any of the problems I saw with
Anvil were intractable,  but I do think packaging up the venv is much
less error prone.

My major complaints are issues related to yum. First off, yum can't
resolve a version range (see my message to the yum list:
http://lists.baseurl.org/pipermail/yum/2013-February/023922.html)
which seems like a pretty basic task for a package manager.

Also, Yum seems to do dependency resolution in a single pass.  So
yum can't provide an install solution for cases like this even when a
valid one exists:

package foo depends on pkgdep <= 2.0
package bar depends on pkgdep >= 1.0, <= 2.0
pkgdep 2.1 and 2.0 are available for install

"sudo yum install foo" when none of those three packages are installed
results in an error.  Yum tries to install pkgdep 2.1 and then gives up
when it sees foo doesn't work with pkgdep 2.1 rather than doing a second
pass at building a dependency graph and finding that pkgdep 2.0
would satisfy all dependencies.

Cases like these come up regularly with the 100+ python packages
that openstack depends on (in requirements.txt) when building packages
continuously.  I came to the conclusion that yum is bad software and I
should avoid it globbing up most everything into one big rpm.  Three
months into making the switch I'm happy with that decision.

Jay
_______________________________________________
OpenStack-dev mailing list
[email protected]
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to