pkg installation into non-default location

From: Andriy Gapon <>
Date: Tue, 10 Aug 2021 15:47:03 +0300
I noticed at least three way of installing a package under "alternative
root".  One of them is very straightforward, but for two other I am not
sure about details.  I guess, I can get them all from the source code,
but maybe someone would be kind to give me a summary.

So, the obvious way is to use pkg with -c or -j option.  In this case
pkg just chroot-s or jexec-s before doing anything.  So, conceptually
everything is like the normal operation, but in the chroot or the jail.

Then, there is -r option:
     -r ⟨root directory⟩, --rootdir ⟨root directory⟩
             pkg will install all packages within the specified ⟨root
It's not entirely clear what that means and when that can be useful.
In other words, why this option exists if we already have -c and -j.

Finally, pkg add has (deprecated) --relocate option:
     --relocate location
                Annotates the package as having been relocated to location,
                which is an alternate system root.  This is an experimental
                feature and intended for cross-architecture package
                management.  There is no corresponding single letter option.

Again, not completely clear how this works.
E.g., can the same package be pkg-add-ed multiple times with different
--relocate locations (or without the option) ?
How would pkg -r /some/path add differ from pkg add --relocate /some/path ?

Asking for a friend who encountered all three variants within a certain
(closed source) image building system :-)

Thank you!
Andriy Gapon
Received on Tue Aug 10 2021 - 12:47:03 UTC

Original text of this message