Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 03 Oct 2013 11:13:09 +0200
From:      "bw.mail.lists" <bw.mail.lists@gmail.com>
To:        freebsd-pkg@freebsd.org
Subject:   pkgng install/upgrade and puppet or similar
Message-ID:  <524D3525.4000201@gmail.com>

next in thread | raw e-mail | index | archive | help
The fact that pkg first upgrades itself then exits successfully when 
trying to install a package is unexpected behavior and can trip quite a 
few things.

Case in point.

I have a manifest that installs postfix, stops sendmail, then installs 
mailer.conf and main.cf in /usr/local/etc/postfix. Quite standard stuff. 
However, if there is an upgrade to pkg what will happen is puppet will 
run 'pkg install -y postfix' which will in fact upgrade pkg and exit 
successfully, while postfix is not actually installed. Next the manifest 
will stop sendmail and change mailer.conf to point to postfix, because 
it thinks it was installed successfully, then try to install main.cf in 
a nonexistent directory, which fails. This leaves the system with no MTA 
running, since sendmail was stopped but postfix was not installed. 
Obviously not good, even if postfix will (probably!) get installed the 
next time puppet runs.

I see two obvious choices, either
- exit with an error if pkg didn't execute what was actually requested, 
because I asked for postfix to be installed, not pkg to be upgraded
or
- let pkg upgrade itself then execute what was actually requested and 
return the error code of the second operation, assuming it got to it. If 
pkg insists on upgrading itself IMHO this would be the better way.

I hope I didn't miss it, but I didn't see any argument that can be 
passed to pkg to make it ignore the upgrade in the man page.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?524D3525.4000201>