What is the prefered way of updating all software in a Fedora installation?
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.
You can use
yum update
(to upgrade all packages )
and
yum update <packageName>
(to update individual installed packages)
This works on a Fedora and/or CentOS and/or Redhat EL systems
You can also use
yum install <packagename>
or yum install <RPM Name or web path>
(to install packages on these systems as well)
There is an application called Software Updater that provides a GUI but yum
is actually very efficient and pretty intuitive.
If you have any questions about what switches you can run with yum you can use
yum --help
Although I found no online page that would describe this, the # apt-get
upgrade
alternative on Fedora seems to be # yum update
.
From the man pages of yum:
update --- If run without any packages, update will update every currently installed package. If one or more packages or package globs are specified, Yum will only update the listed packages. While updating packages, yum will ensure that all dependencies are satisfied. (See Specifying package names for more information) If the packages or globs specified match to packages which are not currently installed then update will not install them. update operates on groups, files, provides and filelists just like the "install" command.