[gobolinux-devel] Re: [gobolinux-commits] tools/ChrootCompile
SetupChrootEnv
André Detsch
detsch at gmail.com
Sat Sep 2 22:56:13 UTC 2006
On 9/2/06, Jonas Karlsson <jonka750 at student.liu.se> wrote:
> On Sun, 03 Sep 2006 00:11:21 +0200, André Detsch <detsch at gmail.com> wrote:
>
> > On 9/2/06, Jonas Karlsson <jonka750 at student.liu.se> wrote:
> >> Isn't LinkOrExpandAll needed in building the environment? Then why is it
> >> symlinked in update_tools() in SetupChrootEnv?
> >
> > I'm not sure if I got the question, but the reason why LinkOrExpandAll
> > is linked to the ChrootCompile './' directory is to make it easy to
> > run this tool in systems other than GoboLinux.
> Problem is that since ported to C one has to do "make" on the scripts, to
> get the LinkOrExpandAll executable. Before that the created link is dead.
> That's why I added the "make" call.
Hmm.. ok, looks like you are right.
> > Actually, I've talked
> > with Hisham, and we agreed that it would be good to make ChrootCompile
> > more '/Programs' friendly (like BuildLiveCD, for example).
> >
> I haven't experimented much with these tools so I'm not really sure what
> you mean here.
Basically do not have everything at the same directory, but having the
executables linked at /S/L/Executables, and the settings linked at
/S/Settings.
> > Please feel free to do any question about how to run ChrootCompile, so
> > we got, at least, some ad-hoc documentation of the most non-obvious
> > points :)
> >
> Ok, I'll ask questions as I get some.
> First question: why does ChrootCompile install the exact same packages as
> SetupChrootEnv? Wouldn't it be smarter to just do a check first?
SetupChrootEnv only fetches the tarballs and provides a
'meta-environment'. Each time ChrootCompile is run, an actual running
enviromnent is prepared, with a /Programs, /System, legacy links and
so on. This environment is created inside a 'Area-<program>-<version>'
dir.
For speeding up the process of multiple compilations, a ./Unpacked
directory is used as a cache of unpacked tarballs, binded within
'Area-<program>-<version>/Programs/' when the package is required.
(So, we don't need to unpack or copy multiple packages each time a
compilation is initiated).
Tip: by using the '-l' option at ChrootCompile, your /Files/Compile/
directory is binded within the Area-* environment. This is useful if
you don't want to download a Archive again, for example.
--
Andre Detsch
More information about the gobolinux-devel
mailing list