FreeBSD's quality implementation, quality documentation and overall sane configuration / management should be apluaded. There are so many little things that make using it joyful, like the ncurses TUI for configuration options when building packages from source.
I have used it for servers and NAS/ZFS/Samba applications for over 10 years and it's been exceptionally solid. But these days I've moved over completely to Debian systems now that OpenZFS 2.x branch is pretty mature and probably won't go back and it's due to the package management aspects.
Sometime around FBSD 10.x the package system moved to a rolling release which means if you don't keep your machine up to date you eventually can't get binary packages for whatever FBSD version you're on which seems like a sadistic thing to do. A server that works fine but one where you might need to install some random utility suddenly breaks in 20 different ways if you enter the depths of trying to install said utility on modern FBSD.
I thought my understanding of this was broken and reached out to FBSD devs on IRC and they confirmed that it's basically a rolling release model these days.
With Linux distros like Debian after development on a version ceases (i.e 10.x) apt-get still works but you may not get the latest or greatest, bug fixes or security fixes. But if you need something and it's in the repository you can at least limp along until you bite the bullet and do a major release upgrade, assuming you need the latest/greatest.
I know everyone's experiences here will vary but I've had very little breakage going between major version of Debian, but with FBSD too many things would break when doing a major release upgrade.
Say you install FreeBSD 12.1, you can keep your package system using the 12.1 package set forever. No updates will be available. But they'll always work.
In /etc/pkg/FreeBSD.conf you will find something like this:
> url: "pkg+http://pkg.FreeBSD.org/${ABI}/quarterly",
Assuming using amd64 that maps to:
https://pkg.freebsd.org/FreeBSD:12:amd64/
There you can see there are "release_X" sets that map to 12.0 12.1 12.2 12.3. Again, no updates will ever be published on those but they will be guaranteed to continue working so long as they don't get deleted.
The FreeBSD community just doesn't have the manpower (of volunteers) or willpower to maintain what you're asking for.
My understanding is those files for previous versions go away so you can't reliably get packages for older versions even if you "pin it". If I'm wrong, please let me know, I would like to be wrong.
I don't know what volunteer / manpower is needed to just keep files around but storage and bandwidth is definitely an issue.
I do agree that FreeBSD tends to delete stuff the second that it goes EOL. The ports project is the worst violator of this. The ports tree takes manpower to maintain and keep building. The mirrors for packages use very large donated systems and bandwidth (AFAIK) and don't have as much pressure to delete old packages.
>> I know everyone's experiences here will vary but I've had very little breakage going between major version of Debian, but with FBSD too many things would break when doing a major release upgrade.
I encounter much the same in Debian/Ubuntu systems on major upgrades too. It all depends on what you are doing, and what the port maintainer has coded to deal with upgrades. If the port maintainer has written scripts to deal with moving old schemas to new ones, great. But that is far from universal. Sometimes FreeBSD does it better, sometimes Debian does it better.
Much more often than not, on FreeBSD or Linux, it usually is simpler to roll out a new machine and roll your data onto it to test. Otherwise I get headaches of incompatibility for either system for what I tend to do.
I have used it for servers and NAS/ZFS/Samba applications for over 10 years and it's been exceptionally solid. But these days I've moved over completely to Debian systems now that OpenZFS 2.x branch is pretty mature and probably won't go back and it's due to the package management aspects.
Sometime around FBSD 10.x the package system moved to a rolling release which means if you don't keep your machine up to date you eventually can't get binary packages for whatever FBSD version you're on which seems like a sadistic thing to do. A server that works fine but one where you might need to install some random utility suddenly breaks in 20 different ways if you enter the depths of trying to install said utility on modern FBSD.
I thought my understanding of this was broken and reached out to FBSD devs on IRC and they confirmed that it's basically a rolling release model these days.
With Linux distros like Debian after development on a version ceases (i.e 10.x) apt-get still works but you may not get the latest or greatest, bug fixes or security fixes. But if you need something and it's in the repository you can at least limp along until you bite the bullet and do a major release upgrade, assuming you need the latest/greatest.
I know everyone's experiences here will vary but I've had very little breakage going between major version of Debian, but with FBSD too many things would break when doing a major release upgrade.