47
submitted 18 hours ago by that_leaflet@lemmy.world to c/linux@lemmy.ml

Lately I've been exploring FreeBSD and OpenBSD. One of the more interesting things about them is how they handle OS and package upgrades.

On FreeBSD, the freebsd-update command is used for upgrading the OS and the pkg command is used for managing user packages. On OpenBSD, the syspatch command is used for upgrading the OS and the pkg_* commands are used for managing user packages.

Unlike Linux, these BSDs have a clear separation of OS from these packages. OS files and data are stored in places like /bin and /etc, while user installed packages get installed to /usr/local/bin and /usr/local/etc.

On the Linux side, the closest thing I can think of is using an atomic distro and flatpak, homebrew, containers, and/or snap for user package management. However, it's not always viable to use these formats. Flatpak, snap, and containers have sandbox issues that prevent certain functionality; homebrew is not sandboxed but on Linux its limited to CLI programs.

There's work being done to work around such issues, such as systemd sysext. But I'm starting to feel that this is just increasing complexity rather than addressing root problems. I feel like taking inspiration from the BSDs could be beneficial.

you are viewing a single comment's thread
view the rest of the comments
[-] black_flag@lemmy.dbzer0.com 12 points 17 hours ago

I feel like in Linux any distinction between "OS" and "something else" would be arbitrary, except, perhaps the example of the AUR vs regular packages in arch, or maybe the universe repo in Ubuntu. Why would you want a whole different system for managing those packages?

[-] jollyrogue@lemmy.ml 5 points 14 hours ago

It’s not so much about a second package manager as it is about having a base system and separating extra software from the base system.

Moving extra packages out of the base system allows the extra packages to be updated quicker. Fewer things get frozen when the stable point in time distro release is tagged. This also helps the base as it can move without having to worry about every piece of software in the repos being compatible with the changes.

The concept exists as 3rd party repos. However, most aren’t setup to be as cleanly separated as ports are.

[-] that_leaflet@lemmy.world 5 points 17 hours ago

You're not really "managing" the OS files, you're just applying patches and upgrading to new releases. All the interesting stuff (from the user perspective) is done using pkg on FreeBSD and pkg_* on OpenBSD; it's with those you install your packages like the DE/WM, web browser, CLI tools, etc.

There's a couple of benefits to splitting these. Makes it easier to "reset" the system to its default state and makes it impossible to accidentally break the OS (you can't accidentally remove any critical components like the kernel).

this post was submitted on 26 Aug 2025
47 points (100.0% liked)

Linux

57670 readers
627 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 6 years ago
MODERATORS