Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Aug 2021 12:59:52 +0300
From:      Andriy Gapon <avg@FreeBSD.org>
To:        Emmanuel Vadot <manu@bidouilliste.com>
Cc:        freebsd-pkg@FreeBSD.org
Subject:   Re: pkg installation into non-default location
Message-ID:  <4807d99c-e8f3-12ff-2990-3ae2c6aacaa3@FreeBSD.org>
In-Reply-To: <20210810155714.8b87aa83d4dccde70ec85dd9@bidouilliste.com>
References:  <8b76441a-e52f-9321-bb9c-65b75e9e8908@FreeBSD.org> <20210810155714.8b87aa83d4dccde70ec85dd9@bidouilliste.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2021-08-10 16:57, Emmanuel Vadot wrote:
> On Tue, 10 Aug 2021 15:47:03 +0300
> Andriy Gapon <avg@FreeBSD.org> wrote:
> 
>>
>> 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
>>              directory?.
>> 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.
> 
>  Having -r is useful for different things :
> 
>  - We use that for the tests so every test installation/delete is done
> under a specified dir.
>  - It's also useful when creating image for a different arch than the
> native one.
>  - It's also useful for pkgbase to bootstrap a system/jail/whatever as
> at first you will not have something to chroot/jail on.

Thank you for the information!
Still curious about some technical details.

I assume that -r simply unpacks packages files under an alternative root
(similar to DESTDIR).
So, does it still use the package database under the main root?

Is a package installed with -r marked as such?
Or is it registered as if there was no -r ?

What about installation scripts that the package may have?
Is that the script's job to ensure that it works correctly with -r or
does pkg arrange an alternative root somehow?

Thank you.

-- 
Andriy Gapon



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4807d99c-e8f3-12ff-2990-3ae2c6aacaa3>