Am Sat, 4 Mar 2017 14:56:03 +0100 (CET) schrieb k...@aspodata.se: > I need booth guile-2 (for geda) and guile-1.8 (for lilypond). > > I can install either of the two > # emerge -aqv dev-scheme/guile:12/8 # version 1.8.8 > # emerge -aqv dev-scheme/guile:12/22 # version 2.0.14 > > but not both > > # emerge -aqvuDN dev-scheme/guile:12/22 dev-scheme/guile:12/8 > [ebuild UD] dev-scheme/guile-1.8.8-r3 [2.0.14] USE="deprecated > emacs%* networking nls readline%* regex threads -debug > -debug-freelist% -debug-malloc -discouraged%" > > !!! Multiple package instances within a single package slot have been > pulled !!! into the dependency graph, resulting in a slot conflict: > ... > > So, does anyone know how to install both of them ?
Actually, they are both in the same slot, namely 12. The subslot is there for ABI compatibility to force rebuilds of dependers upon ABI changes. So you cannot install them at the same time. > Searching I find info. how to specify slotting in ebuild files, but > not how to actually install things in slots; man emerge wasn't to much > help either. Usually you give the slot like this: # emerge -1a guile:12 I'm not sure if you can also give the subslot there but probably you could. However, that makes no difference, as the main slot "12" conflicts. > I could install it outside of emerge, in /usr/local. I did that for > some version of guile 2.0, but removed it so not to interfere with the > emerge work thing. But then, when I tried to emerge guile 2.0.14 I > got > > make: error while loading shared libraries: libguile-2.0.so.22: > cannot open shared object file: No such file or directory > > I thougth it was strange that building guile would fail on missing > the libguile, and it happened whatever I did, until I realized that > make had a dependancy on libguile. Stupid thing, I couldn't rebuild > make with USE=-guile, since make didn't work any longer. So, I'd > prefer not go through that again (in the end I grabbed make from a > stage3 I had laying). You could try to clone the ebuild of the older version into your own overlay, and adjust the ebuild to not install conflicting files with the main version. For this, install the newer version. Then turn on the protect-owned feature of portage in make.conf, then copy the older ebuild to your own overlay and use the ebuild command to test building it. If it works, adjust the ebuild to not have a slot conflict and try again. Now you can try to merge the ebuild with emerge. First, add your overlay to make.conf. Then use emerge like this: # emerge -a dev-scheme/guile:12::your-overlay-name You could then mask the gentoo version: # package.mask # <dev-scheme-2::gentoo and unmask your own version: # package.unmask # <dev-scheme-2::your-overlay-name To setup your own overlay you need to recreate the same directory structure (that is, create your-overlay-name/dev-scheme/guile), and add some metadata files to identify your repository correctly for portage. If should have the following files: profiles/repo_name metadata/layout.conf The Gentoo portage developer documentation will give you more hints. You may also want to look how other public overlays use these files as a quick start. -- Regards, Kai Replies to list-only preferred.