Fedora Software – Preferred Way to Update All Software

fedorasoftware installationupgrade

When I install some system, I usually look for a bulk update method, one that will update my recently-installed software.

For example, in Debian, that would be changing the sources.list to point to what I want, and executing # apt-get update && apt-get dist-upgrade.

Is there an equivalent to this in Fedora (18)? Is there a GUI upgrade manager that I am missing?

A message in Gnome popped up that my system requires important updates. I dismissed it, as the only option it had presented me with was "Install updates", and I wasn't quite sure what would that do.

Now, the message has disappeared, and I cannot find it, not any software it might have been connected with.

What am I missing here?

Best Answer

Before Fedora 17

None of the Red Hat distros prior to Fedora 17 included the ability to do dist-upgrades as you've asked. This had been a long discussed option on many peoples' wish list but had never been implemented.

But before we start a clarification...

According to the Upgrading topic in the wiki, there was a method where you could put a DVD in your system for the next version of Fedora, and Anaconda would attempt to upgrade your system. Having tried this method on numerous occasions I would not consider this to be on par with the dist-upgrade available in the Debian/Ubuntu distros which actually worked very well.

Additionally having maintained RHEL, Fedora & CentOS systems for over the past decade, I would never even consider using this method for anything. It simply did not work.

So typically people would do one of the following:

Rawhide

Use the Rawhide release, which is the bleeding edge version, similar to how Sid is in Debian. Rawhide offers rolling releases in the sense that it always has the latest versions of packages, but it's by no means meant to be used as a day to day distro, it's really meant only for testing.

Stay with a single release

Just live with this fact and stay up to date as long as the distro stayed around, using yum. You can use yum to both apply any pending updates and/or update a single package. Additionally, yum can be used to install new packages too.

Apply all pending updates (assumes yes to all prompts):

sudo yum -y update

Update a single package:

sudo yum -y update apache\*

Install a new package:

sudo yum -y install apache\*

Software Update Applet

If you want to perform updates using a GUI you can use the software updater tool that shows up in your taskbar. This tool essentially does the same thing as the yum -y update above, and can be run on demand using the following command:

gpk-update-viewer

Re-install

As a new version comes out, you'd manually do a fresh install and take care to copy any data and configurations forward to the new system.

PreUpgrade

Make use of PreUpgrade tool. This tool essentially just collected your setups and the names of the packages you installed and would assist you in applying them to a new installation. See @JoelDavis' answer for this technique as well.

NOTE: This is no longer an option starting with Fedora 18 though so you've been warned.

Fedora 17 and after

Beginning with 17 you can now do rolling releases.

FedUp

New in Fedora 17/18 is a tool called FedUp (FEDora UPgrader) which purports to do "dist-upgrades" similar to Debian/Ubuntu distros.

FedUp (FEDora UPgrader) is the name of a new system for upgrading Fedora installs in Fedora 18 and above releases. It replaces all of the currently recommended upgrade methods (PreUpgrade and DVD) that have been used in previous Fedora releases. Anaconda, the Fedora installer does have not any in-built upgrade functionality in Fedora 18 or above releases. It has been completely delegated to Fedup.

Currently, FedUp is capable of upgrading Fedora 17 installs to Fedora 18 using a networked repository, similar to how PreUpgrade worked. More methods for upgrade are currently planned and this page will be updated as those features are completed.

Rolling Releases vs. Versioned Releases

The OP asked a follow-up question where he wanted me to elaborate on the following phrase:

"Beginning with 17 you can now do rolling releases."

When I made that comment I meant one thing and the phrase "rolling releases" really means something else. When I wrote that I meant "rolling release" to mean that you could now roll from one point release of Fedora (say 17) to version 18. Most distros such as Debian & Ubuntu provide this facility now.

However in looking up the description of what "rolling releases" actually means on wikipedia, I'm now more educated on the subject.

excerpt from wikipedia

... a rolling release or rolling update development model refers to a continually developing software system; this is instead of a standard release development model which uses software versions that must be reinstalled over the previous version. Rolling software, instead, is continually updated, in contrast to standard release software which is upgraded between versions. ...

So from a purists standpoint, Debian, Ubuntu, Fedora, are not "rolling releases". They are point standard released software that provide tools to assist in the upgrading from one point release to another.

The OP also asked the following question

Debian is only "kind of" rolling release if you use Sid. Rolling release = no versions, packages are just dumped into the distro from the upstream ASAP, right? So Debian is the complete opposite of a rolling release, Ubuntu as well. Fedora Rawhide is also kind-of a rolling release, but I already knew that (and don't want to use it, if that's what you were referring to).

Just so that it's clear to any future readers. Even the development branches of Debian (aka. Sid) and Fedora (aka. Rawhide) are not "rolling releases". Sure you can use them as such but they are merely a development "area" where new packages of software that may be incorporated into a future release can be presented to the community in a centralized way.

The level of testing that would go into a package being placed in one of these branches is less stringent than say when a package shows up as an update in a true "rolling release" distro such as ArchLinux (would be my expectation).

Here's the section of the wikipedia page that covers the use of development branches for standard release distros:

The distinction between rolling release software distributions and development branches of standard release software distributions is often overlooked by users inexperienced with rolling distributions. This can lead to confused comments, such as: "distro-X is a rolling distribution if you use its development branch" — where distro-X is a standard release distribution. Even in rare cases where the development branch is a rolling (versus the more common cyclical) development branch, this does not make the distribution rolling. Unlike standard release distributions, rolling release distributions do not have development branches.

Related Question