I want to know how the update manager for linux works. For instance, how does my linux distro check to see if there are any available updates for download and which servers to download these updates? If I am dealing with 3rd party software not apart of the main distro, how do those programs interact with my update manager to notify me that those programs have available updates? Lastly what would be some good literature on the subject?
closed as not a real question by Sathya♦ Jun 7 '12 at 7:13
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, see the FAQ.
It will vary a bit depending on your distro.
Generally each distribution keeps a huge list of all the software packages available to install. This is called a software repository or 'repo' for short. A package manager (apt, RPM, pacman, etc...) will pull in a list of updated packages periodically from the repo. Distribution developers take ownership over the packages in the repo, they will do things like package them in the format the distro expects (the repo generally has the compiled version of packages that are made from the original source code retrieved from upstream), watch bugs submitted to the distro about the packages, apply patches ontop of the official 'vanilla' source (perhaps to make them integrate into the system better, configure them, or fix issues that upstream hasn't gotten around to yet), and they will watch the upstream packages for updates they might apply to the version in the software repository.
Some distro's don't actually apply regular version updates. Ubuntu for example will stick with the version of software that was out when that version of the distro was released. They normally only fix security issues or major bugs. This ensures that the software doesn't change unexpectedly (for example the next version might have a major UI change, a new bug the breaks something, large organisations might be applying their own custom patches against a specific version of source code). The package maintainers will pull in the list of packages from Debian every 6 months, apply Ubuntu fixes/patches and then ship a new version of the distro. There are some exceptions to this rule, most notably Firefox, which will be updated to the latest stable release available from Mozilla.
Debian has Stable, Testing and Unstable. Packages will move from Unstable to Testing as they are found to be ready. Then every 1.5 years Debian releases a 'Stable' version which locks in the current testing version of packages.
Similarly Ubuntu has a special LTS (or Long Term Support) release every 2 or so years, where that version of packages is maintained longer (5 years, although it used to be 3 years for desktop packages).
Other distros will track the source as much as possible. Arch and Gentoo for example. They are refereed to as 'rolling releases'. Although they also normally have a unstable and stable categories where packages are moved across as their functionality is verified although it may only be months or even weeks rather than half a year or longer like other distros. You get newer versions of software on those distros but at the cost of stability.
Debian testing can be thought of as a rolling release. Where as Debian Stable is like Ubuntu's LTS releases.
Most true 3rd party software (as in software that didn't come from the distros repository but directly from a website) doesn't interact with your distro's update system at all. If you install software manually (other than using something like apt-get, yum, or whatever) then it will be your responsibility to keep it updated.
Some 3rd parties will maintain their own repositories that your update system can ie into. For example Google maintains one for Chrome on Ubuntu. There are also many Launchpad PPA's. In that case you are relying on the 3rd party keeping the updates maintained.