Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Sep 2014 23:14:03 +0200
From:      Roland Smith <rsmith@xs4all.nl>
To:        Dave Babb <dcbdbis@comcast.net>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Request for buildworld clarification
Message-ID:  <20140910211403.GC20274@slackbox.erewhon.home>
In-Reply-To: <541093BB.5030808@comcast.net>
References:  <541093BB.5030808@comcast.net>

next in thread | previous in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
On Wed, Sep 10, 2014 at 12:08:59PM -0600, Dave Babb wrote:
> I am requesting a clarification on make buildworld. I am junior with
> FreeBSD (< 8 months)...and I am getting confused with Gentoo's
> definition of build world, and FreeBSD's.
>
> Under Gentoo, when you rebuilt your world, everything got rebuilt. Every
> package that you had installed in your system including the base.
>
> Am I understanding that in FreeBSD this is a two step process. "make
> buildworld" simply rebuilds the base system from source. Then to rebuild
> your ports....I understand that I need to call "portmaster -af"...Am I
> correct, or is their a different set of switches I need to pass to
> portmaster to tell it to rebuild every installed port?

In this context, you can consider a typical FreeBSD installation to consist of
two separate parts;

1) the base system; kernel, libraries, utilities, documentation
2) ports; everything that isn't in base.

Using `make buildworld` *rebuilds* most components of the base system, but *not
the kernel*. You need to run `make buildkernel` to rebuild the kernel.

Note that in both these case rebuilding does *not* include installation!

To install the newly built kernel and/or world you need to run `make
installkernel` first and reboot (to start the new kernel). It is *advised* to
run `make installworld` from single-user mode.

Note that this is a general overview. Read the section COMMON ITEMS in
/usr/src/UPDATING and the Handbook for more detailed instructions.

As for ports, in general it is almost never necessary to rebuild *all* ports.
Two situations that can occur are;

* You are upgrading to a new major FreeBSD version (e.g. from 9.x to 10.x). In
  this case it is *advised* to make a list of all ports, remove all ports and
  re-install them. This is to prevent new ports from linking to old libraries
  that might still be around, especially if e.g. the library version of libc
  or libm has been changed because of incompatible changes.

* The shared library version of a fundamental library like e.g. gettext (which
  is used by a lot of packages) has changed. In this case `portmaster -R -r
  <portname>` is usually sufficient.

In any case, read /usr/ports/UPDATING after updating the ports tree but
*before* updating the ports themselves. Follow all special instructions that
apply to your situation.

Roland
-- 
R.F.Smith                                   http://rsmith.home.xs4all.nl/
[plain text _non-HTML_ PGP/GnuPG encrypted/signed email much appreciated]
pgp: 5753 3324 1661 B0FE 8D93  FCED 40F6 D5DC A38A 33E0 (keyID: A38A33E0)

[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBAgAGBQJUEL8bAAoJEED21dyjijPgYdcP/jex/D0xaTkDNxpTmcWiRcUd
BEm25w1F29sQJlLSm8iHE9wq0meMpfP0BZZZhrF6DsJjI4cho6CV96o5qRBhUEJm
Ad/LQv19V/bmKTQyW3D4ievloPb9jo4csPySGf8uPSDMHUNCCeD8740VJ/8Q+HMe
SSrmEEPVsRqn5qLlZqKjlFtwvKZ07ttmKOiojEtEjMufxXTLqMcvEeQlC2VtOoO9
F6kwuV6+zU2Rc6eBiftKeIoc7sM0w8OfdpMQdfZt2fViXMbHPBR5lBlU29r2Kfqk
ibdCNMl9wkJcq3y6yKrnAp5ylpdZUbhluOzKIuaQv4AipAhi/1BrfSxEh/nHHlxS
J6jt44fto4uwISLxyBWZLbR6hxLBgMolzZRU8aAqjcqcJTDK/O7dWVw1/LTcfDtu
MgbZHCkIS4C9jlh1Xp/7ZADWuSuoYFOlcfeGFO5GPuL36frMj5lDSrROxxvtvZ8H
rmV0MCfgIEdfQ0/Ij5qJLUDPFPdHv/1A+BN8e1Rgn09lzwdoCAtbDG4KzH1T4W87
GVflc1pIjFXGp6ilv1jiRGLT7SUjme24A8XrcdLkGFIFRGWuX/I8Jhjyp6pipMQn
9QeyLj4lLt6MhnMlsphOPOccLTlVi4TTdj2tMVBOIF9d20yPkk4CtEuE93WNTW2V
mKiRx6Vb7MPachQDQj2c
=ueyb
-----END PGP SIGNATURE-----

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