Is it possible at this time upgrading step by step from 12.2-RELEASE to 14.2-RELEASE?

Yes, I know that release is very old today, but is has something very important. I always run the system in text mode, in that release I have installed in a virtual machine, I can open two o three text terminals, one or two like root and one as normal user. The advantage is I have mouse working perfectly in every terminal, when installed a program in general at the end of installation there are a few notes about the installed program. I copy those notes and opening a text file like normal user, in my normal user terminal, paste these notes and save them.

In releases like 14.0 and so on there is no possibility to get this advantage.
I guess I could modify config files pointing at freebsd.archive... and checking if it is possible doing an upgrade step by step.
What do you think?
Thank you
 
Last edited:
I always run the system in text mode,
The advantage is I have mouse working perfectly in every terminal,
The mouse in the console (text mode) can be enabled on all currently supported releases in /etc/rc.conf by setting moused_enable="YES" and started immediately, without a system reboot, executing service moused start.

when installed a program in general at the end of installation there are a few notes about the installed program. I copy those notes and opening a text file like normal user, in my normal user terminal, paste these notes and save them.
Those post-install notes can be saved easier than by copy & paste from the console. Every package with a pkg-message can show those notes with pkg info -D <package_name>, the output saved in a file.

Example:
Code:
 % pkg info -D firefox > firefox-msg.txt

pkg-info(8)
Code:
     -D, --pkg-message
             Show the pkg-message for matching packages.
 
Regarding the upgrade, it should be possible to upgrade step-by-step with freebsd-update(8). 12.2 -> 12.4 -> 13.4 (or 13.5) -> 14.2.

EDIT: Have a look in the handbook 26.2. FreeBSD Update, to freshen up the upgrade process.

Don't forget to backup important data. Just in case.

Best approach would be to backup the data, make a clean install of 14.2-RELEASE, restore data on new system.
 
Check the release notes too, I seem to recall some "different" things going from 13 to 14 - uefi and zfs stuff I think? Nothing major but a couple of extra steps to avoid boot issues.
 
If you use freebsd-update, don't forget to update it.
 
And, most important, update the bootcode. See handbook 26.3. Updating Bootcode.

Bootcode is backwards compatible, the 14.2 bootcode can be used directly. Fetch a bootonly.iso or a mini-memstick.img and copy from there.

Also, if ZFS, starting with the 13 branch, ZFS has moved from Solaris ZFS to OpenZFS, be advised, there could be unsupported properties.

IMO, it would be best to make a fresh install and restore the data from backup. You need to pay much less attention to pitfalls.
 
I would like to disagree. On FreeBSD, I have not experienced any problems with upgrades across minor or major versions, so I expect the upgrade 12.2 -> ... -> 14.2 to be tedious but trouble-free. In particular because the data would not have to be migrated (obviously, it needs to be backed up first, but that's always true). A new setup from scratch may be faster (in elapsed wall time), but I think it is more work of making sure all the configurations and setups from the old system have been migrated. And that leads to higher risk.
 
I would like to disagree. On FreeBSD, I have not experienced any problems with upgrades across minor or major versions, so I expect the upgrade 12.2 -> ... -> 14.2 to be tedious but trouble-free. In particular because the data would not have to be migrated (obviously, it needs to be backed up first, but that's always true). A new setup from scratch may be faster (in elapsed wall time), but I think it is more work of making sure all the configurations and setups from the old system have been migrated. And that leads to higher risk.
There's probably something about your systems in particular if you personally had no trouble with freebsd-update(8), ralphbsz ... And I suspect that your systems are text-mode only, no GPU kernel modules loaded, no Xorg/Wayland, and probably very few packages installed. And the ones that are installed - they don't care if it's 12.2 or 14.2, like lang/per5... When the checkboxes are simple, freebsd-update(8) has no trouble keeping track. Are my assumptions in the ballpark? It's OK if I'm completely off-base, I'm just curious... 😅
 
And I suspect that your systems are text-mode only, no GPU kernel modules loaded, no Xorg/Wayland,
Correct. My FreeBSD machines are purely servers with no GUI.

and probably very few packages installed.
Between 100 and 150 packages. Plus about 20 or 30 that are installed with pip (because no corresponding pkg is available). No ports at all, I no longer compile anything, except stuff that I have developed myself.

And the ones that are installed - they don't care if it's 12.2 or 14.2, like lang/per5...
I no longer write any perl scripts, haven't in about 10 years. I know perl is installed (why? some package needed it), and it is perl5. Haven't noticed any breakage related to perl. There is breakage related to python though, and it comes from the interplay between versions installed by pkg and those installed by pip. That's not freebsd-update though, it is pkg upgrade.

So are you telling me that on a FreeBSD that has a GUI installed, freebsd-update is not reliable? That alone would be a reason for me to drop FreeBSD like a hot potato.
 
So are you telling me that on a FreeBSD that has a GUI installed, freebsd-update is not reliable? That alone would be a reason for me to drop FreeBSD like a hot potato.
Unfortunate, but yeah. It's just as bad on the Linux side of things, though. With FreeBSD, it's easier for me to tolerate, because I know what options are available.

If something (like Xorg) relies on a kernel module that is very tightly related to the release version (like drm-kmod), then yeah, anything graphical will break with freebsd-update. When dependency resolution is minimal, the pkg-upgrade that follows has a chance of being reliable. But a LOT of graphical packages do rely on a specific version of Python to be around. If you check the dependency tree from the GUI package back to the base install, you'll see that to be the case.

so, to reiterate: freebsd-update will break drm-kmod, that in turn does break anything Xorg-related.Specific Python versions are also a culprit in broken compatibility, so that contributes to pkg upgrade not being reliable, as well.

Thanks for confirming, it seems like I guessed right as to what contributes to freebsd-update and the follow-up pkg-upgrade run being reliable. I have a LOT more installed (a full KDE desktop with Firefox), Having a simple setup does lend itself well to automation.
 
There's probably something about your systems in particular if you personally had no trouble with freebsd-update(8), @ralphbsz .
Ever since the introduction of freebsd-update(8) I've used it hundreds, if not thousands of times to upgrade systems. Desktop systems and servers alike. I never had an issue with it. It has proven to be quite reliable.

If something (like Xorg) relies on a kernel module that is very tightly related to the release version (like drm-kmod), then yeah, anything graphical will break with freebsd-update.
If it happens it only happens during the 3 month grace period between two minor versions. Or with a major version upgrade, but then you're likely to break everything, which is why you need to reinstall all ports/packages.

so, to reiterate: freebsd-update will break drm-kmod
The onus isn't with freebsd-update(8) but with changes in the kernel, you know this, freebsd-update(8) is simply a tool that upgraded it. Pkgbase isn't going to solve this problem either, you'll have the exact same issue. The upgrade tool isn't the cause of the problem, it didn't break your system, the changes in the kernel broke it.
 
Anyway, back to our scheduled programming.

Yes, I know that realease is very old today, but is has something very important. I always run the system in text mode, in that release I have installed in a virtual machine, I can open two o three text terminals, one or two like root and one as normal user.
I'm confused. It's a virtual machine and you're always working on the console? Or did you mean something else with "terminals"? Why don't you simply ssh(1) into the VM and work that way? Open multiple terminal sessions if you want, or learn to use session multiplexers like tmux(1), screen(1) or dvtm(1). Most terminals (i.e. PuTTY, MobaXterm) also support mouse control? And copy/pasting will work as long as the host system has that functionality.

when installed a program in general at the end of installation there are a few notes about the installed program. I copy those notes and opening a text file like normal user, in my normal user terminal, paste these notes and save them.
Ehm, no need for copy/paste, pkg info -D package-name > package-msg.txt (you can do this as a user, it doesn't require root privileges), or if you can't remember which package specifically, just print them all; pkg info -aD
 
Ever since the introduction of freebsd-update(8) I've used it hundreds, if not thousands of times to upgrade systems. Desktop systems and servers alike. I never had an issue with it. It has proven to be quite reliable.
There's probably something about your systems that makes freebsd-update work OK. I've used freebsd-update only on bare installs that were earmarked to become full graphical desktops later.

It sounds like timing is important, as well as figuring out exactly where in the process freebsd-update is appropriate to use.

I'm highly reluctant to use freebsd-update at a random time, because I don't want to run the risk of breaking a desktop that I have painstakingly built up to work the way I like. Oh, and I compile ports with all options turned on, so pkg upgrade (which kind of needs to happen after freebsd-update) will definitely break all my compiled stuff.

For freebsd-update (and the pkg-upgrade that follows) to work reliably, it sounds like the best way to achieve that is to not touch the defaults that the Freebsd devs have arrived at.

I personally am not wild about that, because that, in my mind, makes FreeBSD not that different from Linux. I like FreeBSD because of the ports system, whilch allows me to turn on options in a given package that are not available in pre-compiled stuff.
 
There's probably something about your systems that makes freebsd-update work OK.
Funny, you claimed the same about ralphbsz systems. There's nothing extraordinary about the systems I maintain.

I'm highly reluctant to use freebsd-update at a random time
Maybe that's the problem here, you run it at "random times". Why? I only use it when there's a patch update available (those are never going to break anything), or when the currently running system is quickly approaching its EoL date. That's not random, that's planned, in advance. Because I planned in advance I'm also keenly aware of any potential pitfalls.

Oh, and I compile ports with all options turned on, so pkg upgrade (which kind of needs to happen after freebsd-update) will definitely break all my compiled stuff.
So do I, by way of my own repositories, created with poudriere(8) so I get consistent results, and I tested beforehand. I don't enable all options though (some are downright conflicting), I'm more likely to turn off a bunch of options I don't need.
 
Funny, you claimed the same about ralphbsz systems. There's nothing extraordinary about the systems I maintain.
I'm not making any judgements, we all are free to tune our FreeBSD systems to our liking. But I still want to point out that FreeBSD devs do pick defaults for pre-compiled systems. Those defaults do lend themselves well to the automation that freebsd-update (and pkg-update) provides. But if I want to change those defaults, and tune the system to my liking, that does break the whole automation enchilada, sometimes at very inconvenient points.

From that it follows that I have to be extremely careful when tuning my system. I would have to consider the likelihood of something breaking and what it takes to resolve that breakage, and thoroughly test it before I commit to a given change. I don't always have the time/energy/inclination/skill to be that thorough. Sometimes, the only real way to find out if the automation is broken is to put a system through the paces. Make a change, and then test it to see if freebsd-update (and later, pkg-update) is OK with that change, or will it start the recursive incompatibility/dependency resolution that only leads to a train wreck?

And I suspect most rank-and-file FreeBSD users are like that. The details between users may differ, but they add up to the same thing.

Maybe that's the problem here, you run it at "random times". Why? I only use it when there's a patch update available (those are never going to break anything), or when the currently running system is quickly approaching its EoL date. That's not random, that's planned, in advance. Because I planned in advance I'm also keenly aware of any potential pitfalls.
For me, 'random times' really means 'a more up-to-date port finally came out, that will really solve the problems I've been having with it'. But installing an up-to-date port really sets off dependency hell of recursively resolving incompatibilities. Because of that, I end up just wating until Firefox says 'no more, I'm done'. I tried upgrading Firefox before, but pre-compiled versions depended on hard-coded library versions (and sent me into the recursive dependency hell), and compiling a later version meant hours of researching how to edit the Makefile. Eventually, my system was such a mess that I decided it's easier to do a clean reinstall with all the up-to-date stuff than to finish digging through a train wreck.


So do I, by way of my own repositories, created with poudriere(8) so I get consistent results, and I tested beforehand.
A few years ago, I tried setting up Poudriere myself, because I wanted to be able to upgrade KDE without touching anything else. I did deviate from defaults quite a bit, at least in part because I wanted to turn on security-related options every step of the way. Not an impossible task, just very time-consuming. Not everybody has the same great ideas that I do. I did have to drop that project because other things IRL demanded my attention. Not every rank-and-file user has the skill, interest, time, hardware, and energy to do a Poudriere setup that does the job right. The option to do it is there, and I like that about FreeBSD.

I do realize that there's no such thing as a perfect system. But if a system lends itself well to automation, there IS something special and different about it. I do have to ask myself if I want a system tuned to my preferences or a system that lends itself well to automation. That's kind of the price I pay for having my own preferences. And that's OK, I just think that the very existence of this proverbial 'Yin and Yang' needs to be acknowledged.
 
But I still want to point out that FreeBSD devs do pick defaults for pre-compiled systems.
Port maintainers, not FreeBSD devs. Although some FreeBSD devs are also port maintainers.

But if I want to change those defaults, and tune the system to my liking, that does break the whole automation enchilada, sometimes at very inconvenient points.
Automation works best if you standardize. If the only standard you have is that everything is an exception, then you're going to have a difficult time. I wrote a whole bunch of puppet code to maintain almost 1000 servers (RedHat, not FreeBSD unfortunately), there was very little standardized when I started. Couldn't get everything in line (some application maintainers flat-out refused changes; "we've been doing this for 10 years, we're not going to change") but still got some resemblance of a "standard" base install on top of which the applications could run.

For me, 'random times' really means 'a more up-to-date port finally came out, that will really solve the problems I've been having with it'. But installing an up-to-date port really sets off dependency hell of recursively resolving incompatibilities.
None of this has anything to do with freebsd-update(8).
 
Port maintainers, not FreeBSD devs. Although some FreeBSD devs are also port maintainers.
Looking at https://portsfallout.com/, it's a fairly small subset of port maintaners who actually have the common cooperation point of building entire repos for different architectures, multiplied by the releases that FreeBSD supports. And yeah, those people are the ones saddled with figuring out if something even compiles, and they are the ones with authority to decide which options get turned on when ports get compiled into packages for distribution.

Automation works best if you standardize. If the only standard you have is that everything is an exception, then you're going to have a difficult time.
I completely agree with you on that point. Standards compliance is how the Internet was built. When it comes to software on an individual machine, standards are much harder to enforce. The benefits of being able to ping a machine nearly anywhere on the Internet are clear. But any standard has limits to how far we can push the enforcement. But if pre-packaged VLC comes without the ability to turn on soft subtitles because that's the standard, I'm stuck either looking for an alternative (which may have other things missing that I like in VLC), I can learn to live with it, or I can break the automation, but have VLC with the features I want.

I can tolerate locked-in standardization at work, because that comes with benefits that compensate for the inconvenience. I get prompt support, easy solutions, and I'm paid to use a functional tool. Off-duty, I have preferences that I prioritize and pay for, even if 'paying' is not financial. I make decisions I can live with.

None of this has anything to do with freebsd-update(8).
Standard advice for using freebsd-update has been to run pkg-update right afterwards. And the reason? if you have drm-kmod, that package kind of does need to be updated for the correct FreeBSD release because the drm-kmod modules are compiled targeting a specific FreeBSD release. freebsd-update won't do pkg-update for you. Now, a given version of Xorg can frankly work with nearly any version of drm-kmod that is properly installed and loaded. But - pkg-update will try to grab updates for EVERYTHING from a single repo. And trying to get that under control is not easy - you either build your own repo (which takes time, hardware, and skill), or you let someone else make decisions for you, and you'll end up with software that doesn't quite do everything you expect. The way I personally see it, ti's that kind of tradeoff that I'm looking at. Not exactly a no-brainer to go either way.
 
The mouse in the console (text mode) can be enabled on all currently supported releases in /etc/rc.conf by setting moused_enable="YES" and started immediately, without a system reboot, executing service moused start.


Those post-install notes can be saved easier than by copy & paste from the console. Every package with a pkg-message can show those notes with pkg info -D <package_name>, the output saved in a file.

Example:
Code:
 % pkg info -D firefox > firefox-msg.txt

pkg-info(8)
Code:
     -D, --pkg-message
             Show the pkg-message for matching packages.

Anyway, back to our scheduled programming.


I'm confused. It's a virtual machine and you're always working on the console? Or did you mean something else with "terminals"? Why don't you simply ssh(1) into the VM and work that way? Open multiple terminal sessions if you want, or learn to use session multiplexers like tmux(1), screen(1) or dvtm(1). Most terminals (i.e. PuTTY, MobaXterm) also support mouse control? And copy/pasting will work as long as the host system has that functionality.


Ehm, no need for copy/paste, pkg info -D package-name > package-msg.txt (you can do this as a user, it doesn't require root privileges), or if you can't remember which package specifically, just print them all; pkg info -aD
Thank you SirDice, I appreciate your information, so now I will copy the text and after to give a reading paying very attention for your comments
 
Thank you SirDice, I appreciate your information, so now I will copy the text and after to give a reading paying very attention for your comments
I believe the word "terminal" I have used is wrong, console I think is the right one. Normally I start the system in text mode, open a few screens or consoles, using Ctrl-Alt F1, Ctrl-Alt F2, and so on, is a matter of personal taste I believe.
Then I install packages using root account and at the very end of installation appear some comments about the program installed. Such information I copied and write on a text file.
Of course I would use sudo instead. In my rc.conf the mouse is enabled always, then I will investigate why the mouse don´t work in a pure console.
If I get inside graphical mode by "startx" the mouse works perfectly.
 
Back
Top