A software upgrade is the process of replacing an older version of one or more programs to a newer version. Use this tag for questions about upgrading individual packages, or the entire operating system to a later release.
What constitutes a software upgrade:
When a software upgrade is performed, an older version of one or more programs are replaced with a newer version, while carrying over the current configuration and settings for the application. Software upgrades are typically performed to address any of the following:
- Fixing security vulnerabilities
- Fixing bugs
- Introducing new features
- Removing redundant features (often related to security)
Some software upgrades that affect the core part of the system will require a reboot before they are applied. This is true for kernel upgrades, as well as updates to glibc and openssl.
Some basic definitions:
Version - an identifier (usually a number and/or name) which helps to distinguish where the program is in development. Earlier forms (and/or non finished products) may have numbers or names like:
- 0.01
- Alpha
- Unstable
- Testing
- 0.90
- Beta
- Etc.
Later forms may be:
- 1.0
- Release
- Stable
- Etc.
Brief introduction to the subject:
The version name of a program usually will increase in value, from 1 - 1.01 for minor releases, and 1.99 - 2.0. With versions of Ubuntu (and other programs/operating systems) the releases are tied to a date, and are given a name (such as Saucy, Lucid, etc.) There are also working versions which will be given terms such as Stable, Unstable, and Testing (when looking at Debian GNU/Linux). This determines what software is available in the repositories, and often is tied into the amount of testing which has gone into the system as a whole.
When a version of anything comes out it must be tested if it is to be released to the public. This is where quality assurance/testing comes into play. During the initial phase the testing may be put into Alpha stage for testing with a small amount of people. After improvements the program may be put into Beta phase, which may open the program up for testing to the public, or a closed group of testers. Then it may go to release. This is not always the case, but it is an example.
Moving from one version of a program to another is called "upgrading". It does not always mean that the new program is better, but usually there is a reason the program has been "upgraded".