On Apr 19, 6:08 am, Sans <r.santanu....@gmail.com> wrote:
> On Apr 18, 2:22 pm, jcbollinger <john.bollin...@stjude.org> wrote:> [ ..... ]
>
> > 1) The dependent package is managed by Puppet.  In this case, you must
> > ensure it absent too, else you cannot achieve a consistent
> > configuration.  You will either get Puppet failures or flip-flops
> > between whether httpd is installed or not.  (I am fairly sure that
> > this is why the yum Package provider uses "rpm -e" instead of "yum
> > remove" in the first place.)  To fix it, you have to ensure the
> > dependent package absent too, and in that case you can address your
> > original problem by twiddling the dependent package's dependencies.
> > For example:
>
> If I understand you correctly, how do one know about the packages that
> depend on a certain package?

Well that's part of a deeper problem, isn't it?  If you don't know
what packages you might end up removing or why they're installed in
the first place, then are you really comfortable with blindly removing
them?  I certainly wouldn't be.

> Even though someone may know about the
> "dependent" packages, do you mean to list all the packages with "no"
> parameter? Cheers!!

No, I don't mean that.  For a very tightly-controlled configuration,
one might choose to declare all packages that should be installed and
to purge anything else, but that can be hard to maintain, and I
wouldn't recommend it unless you really need it.  Most people don't go
that far.

I mean you test your manifests before rolling them out and collect
automated reports from the clients afterward, you troubleshoot
failures, and when you identify a package dependency that causes
removal of another package to fail, you add a
    package { "unwanted-dependency":
        ensure => absent,
        before => Package["dependent-package"]
    }
to the affected nodes' manifests.  (Or if the dependency is already
under management then adjust its declaration as needed.)

Also, the frequency of such problems will be reduced if you take
firmer control of your machines' initial provisioning.  For example,
your initial install might be the bare minimum needed to get Puppet
running, with everything else needed being installed under Puppet
control.  Alternatively, do at least consider a provisioning system
that starts all your systems in the same, known state -- that way you
can solve the dependency issues once for that configuration and cover
the majority of package dependency issues that you will ever need to
handle.


John

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to