1 |
On Tue, Mar 23, 2004 at 02:31:52PM -0500, Paul Smith wrote: |
2 |
> %% Lisa Seelye <lisa@g.o> writes: |
3 |
> |
4 |
> ls> On Tue, 2004-03-23 at 13:44, Paul Smith wrote: |
5 |
> >> Hi all; |
6 |
> >> |
7 |
> >> I'm interested in allowing Portage to install packages into disk areas |
8 |
> >> rooted somewhere besides /. |
9 |
> |
10 |
> ls> Try setting the ROOT envvar. |
11 |
> |
12 |
> But this unquestionably won't work: it's quite trivial to find examples |
13 |
> of paths in Portage which do not reference any variable, but simply use |
14 |
> a string constant fully-qualified path. |
15 |
> |
16 |
> In fact, I gave an example in the email you replied to, from the latest |
17 |
> Portage CVS :-) : |
18 |
> |
19 |
> myworld=open("/var/cache/edb/world","w") |
20 |
> |
21 |
> No setting of ROOT can possibly cause this to open any file other than |
22 |
> "/var/cache/edb/world". I want it to access the file |
23 |
> "$ROOT/var/cache/edb/world" instead. |
24 |
|
25 |
actually you are incorrect. It does reference $ROOT/var/cache/edb/world |
26 |
just try it and see. |
27 |
In fact, if you use '$ROOT emerge blah blah' on an empty directory it |
28 |
will create that /var/cache/edb heirarchy for you. |
29 |
|
30 |
> |
31 |
> There are _many_ such examples in the code, esp. looking for things like |
32 |
> "/etc/portage/...". |
33 |
> |
34 |
|
35 |
IIRC there was a time when the only thing that was read from / and not |
36 |
$ROOT was make.conf |
37 |
|
38 |
I think that may have changed, I recall somebody mentioning a patch on IRC. |
39 |
|
40 |
> |
41 |
> Maybe I should step back a bit and ask, is it the design intent of the |
42 |
> $ROOT variable that, if set, it would behave in the way I would like? |
43 |
> Where I could keep multiple completely separate images rooted in |
44 |
> different directories on a single system? |
45 |
> |
46 |
> If so, then maybe the changes we have made here are better termed bug |
47 |
> fixes rather than enhancements. That would be nice :). |
48 |
> |
49 |
> But, I don't think that this is so. It seems to me that $ROOT is |
50 |
> supposed to do something different than what I want: there are |
51 |
> references to a root variable in the code in some places, but not all |
52 |
> places. |
53 |
> |
54 |
> It looks like maybe ROOT allows you to redefine the installation |
55 |
> location only, BUT it still uses the Portage database and configuration |
56 |
> setup for the "real" system. I need to have multiple completely |
57 |
> independent installations with different sets of packages, etc. so I |
58 |
> need the EDB, config (make.defaults, etc.) to be found in the ROOT as |
59 |
> well. |
60 |
> |
61 |
|
62 |
If you are not cross compiling then you could just take a stage2 |
63 |
snapshot from a mirror somewhere, put it in /usr/stage2, then chroot |
64 |
to there, with a fully functional toolchain/system and build to your |
65 |
hearts desire. |
66 |
|
67 |
> |
68 |
> Maybe understanding what ROOT is for would help me with my confusion |
69 |
> about the db["/"] vs. db[myroot] question as well. |
70 |
> |
71 |
> |
72 |
|
73 |
-- |
74 |
gentoo-dev@g.o mailing list |