Sunday, November 01, 2020

Re: pkg_add version scripting ?

On Sun, Nov 01, 2020 at 12:23:44PM +0000, Laura Smith wrote:
> Hi
>
> As far as I can tell from the docs, only pkg_info supports spec style ?
>
> I am trying to script an OpenBSD setup and as part of that certain packages need to be installed. For most packages that is not a problem, however, for example, with gnupg, there are two versions in the 6.8 repo :
> gnupg-1.4.23p4.tgz
> gnupg-2.2.23p0.tgz
>
> I cannot seem to find a way to tell pkg_add to install >=2  (or better still, install "the latest" version).

"Better still" to be discussed.

Newer is not always better, especially when some things stop working and
stuff like that.

It's generally considered that scripting is meant to give you a reliable
system...


> Any ideas ?

You should read pkg_add(1) more closely.

pkg_add also understands 'stems', that is, package names without any
version specification. For instance, with 'pkg_add kdelibs', pkg_add
will look in the current directory (or the PKG_PATH) for a kdelibs
package.

pkg_add may ask questions in interactive mode, or error out otherwise.
Interactive mode is the default on a tty, see options -I/i.

For instance 'pkg_add screen' is ambiguous as it matches screen-4.03p6
and screen-4.03p6-shm.

To avoid ambiguities, pkg_add supports 'stems with flavors', that is, a
stem separated from flavors with a double dash. For instance, the
previous ambiguity could be resolved by using 'pkg_add screen--' (matches
only the empty flavor) or 'pkg_add screen--shm' (matches only the shm
flavor).

There is also an ambiguity related to ports with multiple branches. For
instance 'pkg_add python' is ambiguous, as there are several versions of
python in the ports tree. So is 'pkg_add postfix'. The special form
'pkgname%branch' can be used to restrict matches to a branch matching the
pkgpath(7).

The above ambiguities can be resolved using 'pkg_add postfix%stable' and
'pkg_add python%3.4', respectively.


stuff like pkg_add gnupg%gnupg and pkg_add gnupg%gnupg2
in 6.8, with possibly a bit more to take care of flavors as well.

(note that pkg_info -z will give you the exact specs you want)

No comments:

Post a Comment