# How do I install world/base and world/doc?



## Jay F. Shachter (Nov 11, 2019)

Esteemed colleagues:

I am trying to upgrade to 12.1, because 12.0 does not support the RTL8188E wireless device and 12.1 claims that it does.  I have obtained wired Ethernet connectivity for a few hours.  When I invoke the `freebsd-update` command I see the following troubling output:


```
# freebsd-update -r 12.1-RELEASE upgrade
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching metadata signature for 12.0-RELEASE from update1.freebsd.org... done.
Fetching metadata index... done.
Inspecting system... done.

The following components of FreeBSD seem to be installed:
kernel/generic

The following components of FreeBSD do not seem to be installed:
kernel/generic-dbg src/src world/base world/base-dbg world/doc
world/lib32 world/lib32-dbg

Does this look reasonable (y/n)? n
#
```

How did I lose world/base and world/doc?  More precisely, since I do not care how I lost them, how do I get them back?  If I upgrade kernel/generic to 12.1 without upgrading world/base, the header files in /usr/include will be wrong, and I won't be able to compile programs properly, which means, among other things, that I won't be able reliably to rebuild any of my ports.  Please don't tell me to create an installation CD or USB drive, because I don't have any here in the place where I have access to wired Ethernet.  Thank you in advance for any and all replies. -- jay at m5 dot chicago dot il dot us


----------



## rigoletto@ (Nov 11, 2019)

This is configured at freebsd-update.conf(5) and you probably disabled them at some point since that is not the default behavior.

Btw, I don't use freebsd-update(8) and don't ever have it installed but since you didn't upgrade yet I suppose just re-enabling them should work, otherwise you probably will need to build from source (preferentially not modifying anything default, including not touching /etc/src.conf) to later be able to use `freebsd-update` again without any major hassle.

This is also a good idea to left "src/src" ON (indeed the default values) in order to be able to run mergemaster(8) [-UiF] after the installation to upgrade the config files too.


----------



## Jay F. Shachter (Nov 11, 2019)

rigoletto@ said:


> This is configured at freebsd-update.conf(5) and you probably disabled them at some point since that is not the default behavior.



I did not disable them.  This is the relevant line from /etc/freebsd-update.conf:

```
Components src world kernel
```

Nevertheless, freebsd-update thinks that only kernel/generic is installed, and, specifically, that world/base and world/doc -- which I want -- are not installed. This means, most likely, that I must reinstall them, before (or after) running freebsd-update.  How do I do that?  Thank you in advance for any and all replies.


----------



## Phishfry (Nov 11, 2019)

Jay F. Shachter said:


> Inspecting system... done. The following components of FreeBSD seem to be installed: kernel/generic The following components of FreeBSD do not seem to be installed: kernel/generic-dbg src/src world/base world/base-dbg world/doc world/lib32 world/lib32-dbg





Jay F. Shachter said:


> How did I lose world/base and world/doc? More precisely, since I do not care how I lost them, how do I get them back?





Jay F. Shachter said:


> most likely, that I must reinstall them, before (or after) running freebsd-update. How do I do that? Thank you in advance for any and all replies.


You do not need to install them (source aka world).
freebsd-update simply checks your computer for the FreeBSD source files(world). It will update them as well as your OS if they are installed.
FreeBSD source is not needed at all to update.
There is no problem here.


----------



## Phishfry (Nov 11, 2019)

If you really want the source you can get the FreeBSD 12.1 source with this command:
`svnlite checkout svn://svn.freebsd.org/base/releng/12.1/ /usr/src`


----------



## Jay F. Shachter (Nov 11, 2019)

Phishfry said:


> You do not need to install them (source aka world).
> freebsd-update simply checks you[r] computer for the FreeBSD source files(world). It will update them as well as your OS if they are installed.
> FreeBSD source is not needed at all to update.
> There is no problem here.



Please forgive me for contradicting you -- I know you are trying to be helpful -- but src is clearly not the same component as world. They are listed separately in /etc/freebsd-update.conf, and they are listed separately in the output of the freebsd-update command, which claims, after inspecting my system, that src/src is not installed, and also that (among other things) world/base and world/doc are not installed (see the output of freebsd-update, presented above in the initial posting).  They are separate components. I do not want the src component, but I do want at least certain minimal parts of the world component, which freebsd-update thinks, after inspecting my system, that I have not got.  How do I get them? Thank you in advance for any and all replies.


----------



## Phishfry (Nov 12, 2019)

Source is something you download.
World is something you build from said source.


			Building FreeBSD World And Kernel: The Short Form
		


If you download the source like my above instructions and then build world and kernel you will acheive the same thing as f`reebsd-update`.
Instead of using pre-compiled binaries you will be building it from source.
`freebsd-update` is much quicker because it uses pre-built files.


----------



## rigoletto@ (Nov 12, 2019)

The source code is also updated by freebsd-update, but now with the given information (I don't use it) I think it will just update if you have it in there already, either by selecting it during the installation or placing it using svn/git or just unpacking the tar file.


----------



## SirDice (Nov 12, 2019)

If world/base was missing you won't have an OS to boot in the first place. What's known as "world" is the entire userland part of FreeBSD, everything in /bin/,/sbin/, /usr/bin, /usr/lib, etc.


----------



## Jay F. Shachter (Nov 12, 2019)

Yes, certainly, if world/base was missing I wouldn't have even a minimally functional system. However freebsd-update thinks that world/base is not installed, or not fully installed, which means -- since freebsd-update only updates the components that are installed -- that if I updated the kernel to 12.1, the header files would not be correspondingly updated, and the system would be left in an inconsistent state. So perhaps my question should have been phrased more precisely -- instead of "How do I install world/base and world/doc?", perhaps I should have asked. "How do I complete the installation of world/base and world/doc. so that freebsd-update will think, upon inspecting my system, that those components are present, and therefore that they should be updated, when I update my system to 12.1?"

In the meantime I am downloading the source code, but I hope that I can update my system other than by rebuilding it, since such things always take between 20 and 80 times as long as one reasonably thinks they will, it would be an unending drain on my resources, sad experience has taught me that that's how such things always turn out.


----------

