So I’ve been curious about running more FreeBSD for a while, it’s kind of an interesting OS. I’ve been dipping my toes in the water by managing to install it on my hackbook (HP Compaq TC1100) with the intention of taking it to 32C3 as my main device.

FreeBSD has some lovely architecture features that I really enjoy - the base system is more or less an immutable image between installs, bar a few files… At least it is in my use case. No fancy kernels for me, etc. Any tweaks you do make to the base system you can easily be reminded of by comparing yourself to it.

If I install any software using the pkg tool, it gets installed to /usr/local/bin or /usr/local/sbin, similar to most stuff on Debian, but the difference that impressed me is that all-non-base system packages operate out this directory. So my configs live in /usr/local/etc intead of /etc, as that directory is reserved for base system files.

That’s super impressive. When I finally worked that one out, and some of the implications, my face must have been excellent. I’m really enjoying working through the extensive manual as I come across new problems.

Of course, when the problem becomes super hard to me, I forget this nice logical path and it all falls apart. Take upgrading from FreeBSD 10.3-RELEASE to FreeBSD 11-RELEASE. I found a helpful online resource about how to do it using the comprehensive and impressive freebsd-upgrade tool (of course…) and went at it.

After all the dust had settled, SLiM wasn’t booting, x wasn’t starting and pkg couldn’t upgrade due to the following error:

libssl.so.7 not found, required by pkg

and a collection of cousins it had. Clearly my libraries hadn’t been updated properly. One quick ls /lib/ told me my libssl.so was .8, not .7. As were almost all the libraries it was complaining about. Maybe I should fetch a copy of the base system and unzip new libraries into it. Off to the internet I went and I spent more time reading and getting nowhere. A quick freebsd-update IDS to compare my system against the list of known good files told me that no, my base install was as expected. Hmm. No idea, I’ll leave it for a while and let the idea simmer a bit.

Shortly after I had a conversation with tj about how this had fucked up and I was annoyed. He’d run into the same problem, the same errors and said he’d fixed it with a quick pkg -f or similar. Of course, this didn’t work, nor did pkg upgrade -f, but he had mentioned using the manual to fix the issue.

Off to the FreeBSD manual I went and Section 23.2. FreeBSD Update held my answer. I’d managed freebsd-update fetch and freebsd-update install correctly to update the kernel, restart, another freebsd-update install to update the base system, and a restart. But I hadn’t bothered to update my packages. Section 23.2.3.2. Upgrading Packages After a Major Version Upgrade states exactly what I had to do - pkg-static upgrade -f. As if by magic, it updated and reinstalled every package I’ve put on the system against the FreeBSD 11 base system instead of FreeBSD 10.3 and, after a reboot, everything worked as expected.

I feel like I very recently had RTFM related issues. C’mon man, this is embarassing - just read the damn thing like you tell other people to do.

Overall I’m super impressed with FreeBSD as a desktop OS. I hope to become more competent as time goes on - next step is wifi. Maybe Section 11.5. Setting Up Network Cards would be a better starting point than googling FreeBSD wifi driver intel. What do you think?