I really like FreeBSD, and I run it on my home server, but the whole update process really needs a lot of work. The process described in this announcement is accurate in my experience: Run freebsd-update twice, reboot, run freebsd-update again, reinstall or rebuild applications, reboot again, run freebsd-update yet again. The upgrade process works well, but it's much more manual than it is in the Linux world. When Pk…
FreeBSD 12.2-BETA1
31–40 of 55 posts
Re: FreeBSD 12.2-BETA1
#32I really like FreeBSD, and I run it on my home server, but the whole update process really needs a lot of work. The process described in this announcement is accurate in my experience: Run freebsd-update twice, reboot, run freebsd-update again, reinstall or rebuild applications, reboot again, run freebsd-update yet again. The upgrade process works well, but it's much more manual than it is in the Linux world. When Pk…
I actually think there is nothing wrong with the upgrade process. What about pkg-style makes it better? On those other systems you still need a reboot for kernel changes to take effect.
The current process for upgrading FreeBSD is roughly, assuming that you're just using packages and not ports is:
* freebsd-update upgrade
* freebsd-update install
* reboot
* freebsd-update install
* pkg upgrade
* reboot
* freebsd-update install
* (optional) reboot
In comparison, the process for upgrading OpenSuse Tumbleweed, assuming that you're just using packaged software, is:
* zypper dup
* reboot
If the base system were managed by pkg, the FreeBSD version of the process should probably look a lot like the OpenSuse Tumbleweed version. Condensing upgrades down to a two-step process seems like it will be a significant quality-of-life improvement to me.
Re: FreeBSD 12.2-BETA1
#33Earlier quoted context omitted.
I actually think there is nothing wrong with the upgrade process. What about pkg-style makes it better? On those other systems you still need a reboot for kernel changes to take effect.
It's more the number of reboots and invocations of freebsd-update. Since these are all manual steps, you need to keep track of where you are and invoke the next step manually. The current process for upgrading FreeBSD is roughly, assuming that you're just using packages and not ports is: * freebsd-update upgrade * freebsd-update install * reboot * freebsd-update install * pkg upgrade * reboot * freebsd-update install…
At least, I have heard this explanation in the context of OpenBSD, and assume it may also apply to FreeBSD.
Re: FreeBSD 12.2-BETA1
#34Really looking forward to tinkering with this. Is it me, or does it seem that the BSDs are really losing more and more mind share as time marches on? I have very few issues with FreeBSD or OpenBSD beyond the occasional incompatibility, and it's always something minor like suspend or sound that can fixed with a few queries.
But the graphics have to play a catch up game with Linux, and in my experience a couple of drivers were missing or not working properly (like wireless stuff, acpi, etc..)
The performance of the network stack is the best of any OS, and the interface with the OS in general is much more well designed than Linux, giving Linux is more of a Bazar effort with things stitched here and there to make some things works.
It's sad that the amount of man-hours on Linux, make it almost unavoidable and i bet this will be more and more true with time even with Windows and OS X.
Re: FreeBSD 12.2-BETA1
#35Earlier quoted context omitted.
I actually think there is nothing wrong with the upgrade process. What about pkg-style makes it better? On those other systems you still need a reboot for kernel changes to take effect.
It's more the number of reboots and invocations of freebsd-update. Since these are all manual steps, you need to keep track of where you are and invoke the next step manually. The current process for upgrading FreeBSD is roughly, assuming that you're just using packages and not ports is: * freebsd-update upgrade * freebsd-update install * reboot * freebsd-update install * pkg upgrade * reboot * freebsd-update install…
Re: FreeBSD 12.2-BETA1
#36Earlier quoted context omitted.
I actually think there is nothing wrong with the upgrade process. What about pkg-style makes it better? On those other systems you still need a reboot for kernel changes to take effect.
It's more the number of reboots and invocations of freebsd-update. Since these are all manual steps, you need to keep track of where you are and invoke the next step manually. The current process for upgrading FreeBSD is roughly, assuming that you're just using packages and not ports is: * freebsd-update upgrade * freebsd-update install * reboot * freebsd-update install * pkg upgrade * reboot * freebsd-update install…
Re: FreeBSD 12.2-BETA1
#37Earlier quoted context omitted.
It's more the number of reboots and invocations of freebsd-update. Since these are all manual steps, you need to keep track of where you are and invoke the next step manually. The current process for upgrading FreeBSD is roughly, assuming that you're just using packages and not ports is: * freebsd-update upgrade * freebsd-update install * reboot * freebsd-update install * pkg upgrade * reboot * freebsd-update install…
But if there are ABI breakages in base (say, a new syscall used in libc) you want to boot the new kernel with the old userland, then get the new userland later. At least, I have heard this explanation in the context of OpenBSD, and assume it may also apply to FreeBSD.
To solve this, the updater could create a new boot environment[0], install everything in that boot environment using as many passes as required, then reboot into that environment. OpenSuse already does a similar thing[1], though I don't know how well it works.
[0] https://www.freebsd.org/cgi/man.cgi?beadm
[1] https://news.opensuse.org/2018/05/15/transactional-updates-i...
Re: FreeBSD 12.2-BETA1
#38Earlier quoted context omitted.
But if there are ABI breakages in base (say, a new syscall used in libc) you want to boot the new kernel with the old userland, then get the new userland later. At least, I have heard this explanation in the context of OpenBSD, and assume it may also apply to FreeBSD.
I believe that's the same in FreeBSD as well. I also think it's a solved problem in the Linux world - OpenSuse Tumbleweed sometimes rebuilds every package because they've changed libc. Apart from watching 2000+ packages get updated, there's really no impact when this happens. To solve this, the updater could create a new boot environment[0], install everything in that boot environment using as many passes as required…
Any time a new syscall is wrapped the userland maintainers need to account for what happens when run on an old kernel and typically have some fallback logic.
Re: FreeBSD 12.2-BETA1
#39Earlier quoted context omitted.
It's more the number of reboots and invocations of freebsd-update. Since these are all manual steps, you need to keep track of where you are and invoke the next step manually. The current process for upgrading FreeBSD is roughly, assuming that you're just using packages and not ports is: * freebsd-update upgrade * freebsd-update install * reboot * freebsd-update install * pkg upgrade * reboot * freebsd-update install…
I absolutely agree. I run FreeBSD on my NAS to take advantage of ZFS but every time I update it I have to Google the process or find my notes since it's incredibly non-intuitive.
At this point, I've only got two services (postgresql and mosquitto) which run on bare metal, everything else is in VMs. Once I move those off of FreeBSD the upgrade process will be greatly simplified (well, as simplified as FreeBSD gets anyway).
Re: FreeBSD 12.2-BETA1
#40Earlier quoted context omitted.
I actually think there is nothing wrong with the upgrade process. What about pkg-style makes it better? On those other systems you still need a reboot for kernel changes to take effect.
It's more the number of reboots and invocations of freebsd-update. Since these are all manual steps, you need to keep track of where you are and invoke the next step manually. The current process for upgrading FreeBSD is roughly, assuming that you're just using packages and not ports is: * freebsd-update upgrade * freebsd-update install * reboot * freebsd-update install * pkg upgrade * reboot * freebsd-update install…
For base updates, we'd usually shut down services, install kernel and userland, and reboot --- I know this isn't the proper order, but most of the time the new userland is compatible enough to reboot (and you can usually power cycle if that doesn't work out). For updates where rebooting would be hard this way, we'd do it the right way, but then you need to add an extra reboot after installing userland, or restart all the services from base. If needed, we'd install the compat packages after the reboot. We would not update ports/pkg/etc at the same time; old binaries are expected to continue to work on a new system (and generally do). In house binaries are either compiled on the system they run, or centrally on a machine (or chroot/jail) running the oldest release on the fleet.
Generally,
When you need to upgrade software not from base, because of security updates or new features or ennui, you do that isolated from base changes. The only complication here is if you haven't updated base recently enough, pkg may provide binaries you can't run, and ports may provide software you can't compile (this one takes longer).
We would generally only update base for exceptional releases, or when it became hard to update non-base software on older releases. However, new machine installs would get the most recent release we had tested.