Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 5 Dec 2002 15:53:54 -0600 (CST)
From:      "Scott A. Moberly" <smoberly@karamazov.org>
To:        <hartzell@kestrel.alerce.com>
Cc:        <freebsd-ports@freebsd.org>
Subject:   Re: NFS mounting the ports tree.
Message-ID:  <38311.65.221.169.187.1039125234.squirrel@mail.karamazov.org>
In-Reply-To: <15855.50834.811514.388015@rosebud.alerce.com>
References:  <15855.50834.811514.388015@rosebud.alerce.com>

next in thread | previous in thread | raw e-mail | index | archive | help
>
> I have a group of machines, one that is big and powerful, and others
> which are lighter weight.  I'd like to maintain a central repository of
> stuff on the big machine and let the littler guys take advantage of it.
>
> Everything is currently FreeBSD 4.7p2.
>
> I have successfully mounted /usr/src and /usr/obj onto the client and
> used "make installkernel KERNCONF=FOOBAR" and "make installworld" w/
> mergemaster to update the lighter weight machines.
>
> I want to track the ports tree.  If anyone out there is living this way,
> I'd love to hear how you do it.  I have a few points of confusion in my
> stumbling around:
>
>   1) I found the section of the freebsd handbook that explains how to
>      set up the distfiles directory and the workdirectory.  This
>      still seems to require that the client actually build the thing,
> which is what I'm trying to avoid.
>      (http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/small-lan.html)

You can do it, but...  /etc/make.conf would have to be generic, use
includes based on hostname(1) or manually (script) move
/etc/make.`hostname` around...

>   2) I've tried just mounting /usr/ports, cd'ing into the directory of
>      interest, and doing a "make install".  This fails quickly, since
> the INSTALLCOOKIE is there.
>
>      Doing a "make deinstall" then a "make install" works for simple
> ports, but sometimes causes recompilation.

make clean is a quicker alternative

>   3) Metaports really break the approach described in 2) above.  "make
>      deinstall" predictably enough doesn't do much.  "make
>      deinstall-dependencies" seems to work, but some things seem to end
> up being recompiled even though everythings all ready to go.
>
>      And sometimes the deinstall seems to do more than just remove the
> cookies, but actually rips out something that's already there.
>
>      And sometimes there are dependencies which don't seem to be
>      supported.  For example, the gnome2 metaport wants freetype,
>      which in turn needs gmake.  And someone somewhere else in the
> metaport (didn't write the details down) needed unzip.  It's not
> clear to me if these are bugs in the dependency lists for the
> gnome2 metaport or if it's caused by the broken thing I'm trying to
> do.

have /var/db/pkg a temporary mount for building installing.

> The best alternative that I've found seems to be to have the server
> build packages from the ports, put them in a common place, and install
> from there.
>
> Is this what people are doing?  Does it work right in the context of
> metaports (e.g. do the ports recursively make packages?, do they get the
> dependencies correct)?  [Some of these I can beat on empirically]
>
> Is it possible for the server to build and package a port that it
> wants to share out, w/out actually installing it itself?
>
> I've had trouble trying to do a "make package" when I've already done a
> "make install".  It shows the same behaviour that I get when I
> repeat a "make install".  Are "package" and "install" mutually
> exclusive?

I personally just mount and let the client build after I have tested and
reviewed said port.

Hope this helps.

--
Scott A. Moberly
smoberly@karamazov.org



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?38311.65.221.169.187.1039125234.squirrel>