On Thu, 16 Jul 2009, Douglas Kilpatrick wrote:
I'm trying to write a plugin to make it easier to manage packages on a host.
The basic idea is that each host has a per-host package that has as it's
requirements things I need the host to support.
ie:
foo.oppositelock.org-1.0-<epoch seconds>.noarch.rpm
requires:
httpd
sendmail
bind
This part is done. (per host packages generated automatically by rule, added
to a repository, etc)
The next part is to allow the per-host package to specify specific versions,
so that I can rollback a bad upgrade by pushing a new version of the per-host
package.
foo.oppositelock.org-1.0-<epoch seconds>.noarch.rpm
requires:
httpd=httpd-2.2.3-22.el5
sendmail=sendmail-8.13.8-2.el5
bind
This, obviously, has some issues; which is why I'm now fiddling with YUM
plugins.
So I've got a plugin that removes old versions of the per-host package, so
yum will only see the newest version of that package. As the next trick,
I'd like to get package downgrades to work correctly. I think skip-broken
like logic might help, but I'd need to not skip the host-specific package
(always try and upgrade that. Always).
Any suggestions for approach? Add skip-broken like logic to a post resolve
hook? Anything else I need to be aware of?
okay so the system has:
foo.domain.org-1.0-1.noarch.rpm installed
which has brought in bar = 1.1-1
you add a:
foo.domain.org-1.0-2.noarch.rpm to the repo which has
Requires bar = 1.0-1
Now, yum will not automatically downgrade pkgs as a depresolving step -
it's generally a bad idea anyway b/c it could very well mean downgrading
into a security whole or walking to backward incompatible versions of
things. No fun.
If you want to write a plugin to do this you'd be best off just calling
downgrade() for each of the pkgs you want to downgrade and then letting
yum depsolve normally from there.
-sv
_______________________________________________
Yum-devel mailing list
Yum-devel@lists.baseurl.org
http://lists.baseurl.org/mailman/listinfo/yum-devel