Hi François-Xavier,
On 5/14/20 7:02 AM, François-Xavier Carton wrote:
> Hi,
>
> Is there a way of installing packages in a different prefix while still
> using system packages? I've tried setting EPREFIX, however doing that
> will install all dependencies in the prefix, even if there are already
> installed in the system.
>
> I was hoping to install some packages in user directories, but I also
> don't want to duplicate the packages installed globally. For example,
> most packages eventually depend on gcc, which I definitely don't want to
> compile twice. So ideally, only dependencies that are not installed
> globally should be pulled in.
>
> I was not able to find a way of doing that, but I feel like it shouldn't
> be too hard, because EPREFIX almost does what I want. Does someone know
> if it's possible without too much tweaking?
What you're after is known as "Prefix/Stack", where you have some "base"
Prefix, which's portage does manage packages in another - stacked - Prefix.
While this does work already with "Prefix/Guest" as base Prefix, there is no
technical reason to not work with "Prefix/Standalone" or even "Gentoo Linux"
as the base Prefix. The only problem maybe is that "Prefix/Guest" does use
a portage version with additional patches.
But still, you can get an idea about how this works, using "Prefix/Guest":
$ docker run -t -i gentooprefix/prefix-guest-64bit-fedora -c /bin/bash
At the docker prompt:
Enter the Guest Prefix preinstalled to /tmp/gentoo:
$ /tmp/gentoo/startprefix
Set up your stacked Prefix:
$ prefix-stack-setup --eprefix=$HOME/stack
--profile=/tmp/gentoo/etc/portage/make.profile
Note that "~/stack" will not work here, bash refuses to resolve '~' after '='.
Leave the Guest Prefix:
$ exit
Enter your just created stacked Prefix:
$ ~/stack/startprefix
Emerge your package, for example:
$ emerge sys-libs/zlib
Have fun!
HTH,
/haubi/