From nobody Wed Aug 11 09:59:52 2021 X-Original-To: freebsd-pkg@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id E0198174F08C for ; Wed, 11 Aug 2021 10:00:02 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from relay11.mail.gandi.net (relay11.mail.gandi.net [217.70.178.231]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4Gl50L4bNLz4k1c for ; Wed, 11 Aug 2021 10:00:02 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: (Authenticated sender: andriy.gapon@uabsd.com) by relay11.mail.gandi.net (Postfix) with ESMTPSA id 66DCD100007; Wed, 11 Aug 2021 09:59:54 +0000 (UTC) Subject: Re: pkg installation into non-default location To: Emmanuel Vadot Cc: freebsd-pkg@FreeBSD.org References: <8b76441a-e52f-9321-bb9c-65b75e9e8908@FreeBSD.org> <20210810155714.8b87aa83d4dccde70ec85dd9@bidouilliste.com> From: Andriy Gapon Message-ID: <4807d99c-e8f3-12ff-2990-3ae2c6aacaa3@FreeBSD.org> Date: Wed, 11 Aug 2021 12:59:52 +0300 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0 Thunderbird/78.12.0 List-Id: Binary package management and package tools discussion List-Archive: https://lists.freebsd.org/archives/freebsd-pkg List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-pkg@freebsd.org MIME-Version: 1.0 In-Reply-To: <20210810155714.8b87aa83d4dccde70ec85dd9@bidouilliste.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 4Gl50L4bNLz4k1c X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] X-ThisMailContainsUnwantedMimeParts: N On 2021-08-10 16:57, Emmanuel Vadot wrote: > On Tue, 10 Aug 2021 15:47:03 +0300 > Andriy Gapon 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