How to use @preexec to test for installed packages

Bob Eager rde at tavi.co.uk
Sat Apr 6 14:18:18 UTC 2019


On Sat, 6 Apr 2019 15:58:48 +0200
Matthias Fechner <idefix at fechner.net> wrote:

> Dear all,
> 
> as pkg cannot handle CONFLICTS_INSTALL I tried now to implement this
> as a preinstall command using @preexec in pkg-plist.
> 
> The command should check if a package is installed and stop the
> installation or continue if the package is not installed.
> 
> I tried it with the following command:
> @preexec `/usr/sbin/pkg -N info -e gogs`; if [ $? -eq 0 ]; then echo
> "Gitlab cannot be installed together with gogs as both of them modify
> .ssh/authorized_keys" && exit 1; else echo "Gogs not installed,
> continue."; fi
> 
> But it does not work.
> Now matter if gogs is installed or not.
> If I execute the same line in a shell script, it works fine.
> 
> Anyone an idea?

I think you'll find it has to be ONE command. So use && instead of the
first semicolon.


More information about the freebsd-ports mailing list