On Thu, May 14, 2020 at 09:07:43AM +0100, Michael wrote: > On Thursday, 14 May 2020 06:13:33 BST Dale wrote: > > 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? > > > > > > Thanks, > > > -François-Xavier > > > > I'm clueless on EPREFIX but if you want to avoid compiling a package > > twice, would the -k option help? If you have portage set to save the > > binaries you compiled before, it would install from that instead of > > compiling things twice. > > > > Just thought I'd mention just in case it would help. > > > > Dale > > > > :-) :-) > > The whole concept of EPREFIX is predicated on installing a Gentoo system > within a different path/filesystem than the / of the host installation and > being able to run it as a non-root user. As I understand it, using libraries > from the main system and potentially altering them in the process is not > going > to work without changing Gentoo's eprefix intended design. > > It should be possible to change the prefix paths selectively, in particular > the LD_LIBRARY_PATH to link binaries from within the prefix to libraries in > the host system, but I'm not sure what privileges are needed to install/run > such a hybrid linkage and how an update of the host system will break > installed packages within the EPREFIX and vice versa. We're talking of a > Frankenstein build here with the potential of install operations on one > system > would be breaking the other, including portage itself. > > With containerisation of applications there may be easier ways to achieve > what > François-Xavier is looking for. I am thinking of running sandboxed > applications in the likes of flatpack, snap, zero-install, appimage and > whatever else may have been devised lately. However, with these systems you > end up using what's already been developed and any static libraries their > devs > considered desirable. If you want a bespoke installation optimised for your > hardware and chosen compilation flags, then you are probably looking to > develop a containerised application for your own use. > > Someone more knowledgeable in both Gentoo's EPREFIX project and containerised > apps should chime in soon to offer more helpful advice.
I wouldn't try to install different versions of the same package, just add new packages to the base system. But I can see your point about updates; since the base system is not aware of the prefixed one, it cannot rebuild the packages in the prefix automatically when needed. It's indeed more complex than what I hoped :(