this post was submitted on 14 Sep 2023
61 points (94.2% liked)

Linux

45573 readers
668 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 5 years ago
MODERATORS
 

Hi I'm relatively new to Linux. There's talk about updating, say from Fedora 37 to 38.

Is this something that needs to happen manually? If I solely update through the updater software, I'm not getting the whole "38"?

I understand that, of course, I won't see updates on the installer or I won't use a new supported partition type unless I install it again.

Apart from that, what's missing? Some software won't be updated? The kernel?

Thank you all!

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 11 points 9 months ago (1 children)

Upgrades are just a whole bunch of updates stuck together. Unlike Windows or OSX there isn't really a clean way to determine which files are part of your OS and which aren't. Microsoft doesn't release a major new version of WinHTTP until Windows 12 comes out, but OpenSSL doesn't care it Fedora is halfway through building Fedora 40 or if the next version is a year away. They release a new version when it's done, and distros have to choose whether they want to package it or if they wait for the next version.

Every Linux distro comes with hundreds of support libraries that programs use so they don't need to reinvent the wheel. Some deal with reading XML files, some deal with talking HTTPS over the network, some do weird shit to make GPUs work. All of these libraries and tools are independent software packages, many of them maintained by different people and teams.

Most stable distros will try to keep compatible versions of software as long as the main version doesn't change. That means libfoobar-1.1.2 will get updated to libfoobar-1.1.9, but not to libfoobar-2.1.1 because that's a potentially breaking change, making programs who aren't prepares for the update crash.

The thing about updating libfoobar to 2.1.1 is that libwidgetbaz will also need to get updated to support the new version, which in turn requires an update for ThatToolYouActuallyUse from version 21.2 to 23.4. The whole Linux ecosystem is full of these dependency and version chains and a significant portion of distro work goes into finding versions of software and libraries that'll all work together.

You can't just update one library out of the blue if you don't want to update the rest of the system. Distros like Arch do so, but their approach is "you update everything or you accept randomly breaking software". This gets you the latest features, but also means that if ThatToolYouActuallyUse doesn't get updated anymore, an update to libfoobar can just break it, crashing the program until you either find a hack to install both versions of the library or until someone comes up with a fix.

Fedora/Debian/Ubuntu/etc. basically package groups of software and software versions together, porting fixes back to old software for a couple of years, often with a specific time they promise to support the (by then outdated) software for a specific version.

If you move from Fedora 38 to Fedora 39, hundreds or thousands of programs and support libraries will get an update. Some are minor updates, some are major updates. These updates have the side effect that things may look different, but that's not always the case, depending on the tools you use and the desktop environment you've installed.

You can see every individual package get upgraded individually if you upgrade through the command line. Doing these upgrades looks very impressive to people unfamiliar with the command line, but you can probably just stick with the normal updater tool if you don't care about all that.

[–] [email protected] 2 points 9 months ago

This is a great 101, thanks!