speed up ports install
Jeremy Chadwick
koitsu at FreeBSD.org
Sun Oct 19 13:43:37 UTC 2008
On Sun, Oct 19, 2008 at 06:39:34AM -0700, Jeremy Chadwick wrote:
> On Sun, Oct 19, 2008 at 09:21:18AM -0400, Eitan Adler wrote:
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> >
> > I have a simple idea to make use the threads without any possibility of
> > conflicts. I am sure there will be someone to point out a negative, but
> > I don't see any.
> > When you do "make install" launch a "make fetch-recursive" thread at the
> > same time. That way you don't need to wait for the files to
> > install->fetch the next one->install it->fetch the next one...
> > For those who don't want that you could get the old behavior with "make
> > onlyinstall". I currently do this with a "make" wrapper script and I
> > find installation to be faster.
>
> What about this scenario?
>
> # cd /usr/ports/friendly/apes
> # make install
>
> <forked copy of 'make fetch-recursive' is launched in background>
> <fetch for friendly/apes finishes, "make" starts>
> <"make" finds a dependency which isn't installed, friendly/dogs>
> <"make" begins to build friendly/dogs, but friendly/dogs is still being
> downloaded from fetch-recursive, because the source is very large;
> say, 30MBytes>
> <"make" for friendly/dogs forks another fetch-recursive......>
>
> What I'm trying to say is, there would need to be mechanisms put in
> place to cause the entire build process to block (halt/pause) until the
> backgrounded fetch-recursive has completed.
And I forgot another scenario:
Let's say you've added perl as a package, e.g. pkg_add -r perl, and
now you're going to build a program that's dependent upon it.
One of the known problems with ports/pkg "stuff" is that in the above
scenario, fetch and fetch-recursive will download a copy of the source
for perl (when detected as a dependency for something), which ultimately
serves zero purpose. This doesn't happen when simply doing "make" or
"make install".
More food for thought.
--
| Jeremy Chadwick jdc at parodius.com |
| Parodius Networking http://www.parodius.com/ |
| UNIX Systems Administrator Mountain View, CA, USA |
| Making life hard for others since 1977. PGP: 4BD6C0CB |
More information about the freebsd-ports
mailing list