Thanks to the traditional Linux's system of installing software through official distribution specific repositories!! This system is called Package management system.
As described in the Wikipedia artcile: It is
a collection of software tools to automate the process of installing, upgrading, configuring, and removing software packages for a computer's operating system in a consistent manner.
It typically maintains a database of software dependencies and version information to prevent software mismatches and missing prerequisites.
There is two point:
- Consistent manner in installing, upgrading, configuring and removing software packages.
- Can maintains database of software dependencies and version information to prevent anomaly
Why is it required?
Linux softwares are typically opensource and those kinds of softwares update very frequently. So, a management system is required to give OS consistent support of having updated packages.
Some of the functions of package management software is: (quoting from Wikipedia)
- Verifying file checksums to ensure correct and complete packages;
- Verifying digital signatures to authenticate the origin of packages;
- Applying file archivers to manage encapsulated files;
- Upgrading software with latest versions, typically from a software repository;
- Grouping of packages by function to reduce user confusion;
- Managing dependencies to ensure a package is installed with all packages it requires. This resolved the problem known as Dependency Hell.
Benefits of this system
- You can instantly install,upgrade software from your repository by only doing a search
- You can get updates without hassle, searching for updates in Web and going to the specific websites and downloading is not easier than just marking a package to update
- Consistent system. There will be no conflict between packages
- Distribution of software is easy in this system. Saves money and time to distribute those softwares
- Better protection from malicious software, because there are strict chain of trust maintained in this system for package identification.
- "eliminate the need for manual installs and updates". Just imagine how many clicks do you need to do to prepare a new Windows installation for your custom needs. But, In Ubuntu, if you have a list of packages of your choice, just feed the list to the system and all is installed with minimum user interaction.
Note that, Microsoft is going to implement such kind of centralized software management in upcoming Windows version trough app-store. (though the system is not exactly like Linux package management system)
Do I really need to do
apt-get update for every piece of software?
As you said, you need to do
sudo apt-get update for installing every piece of software. When the index file in your computer is matched exactly with the index file in online repository,
apt-get do no update or download the index file, because, it first checks to see, whether an index file online has changed or not. So, it is not true that, you need to do
apt-get update every time you install software. It is only needed when repository is updated online (which is not very frequent also. Most of the time, only "updates" channels are updated).
What is the problem then?: I assume, you are using Ubuntu 12.04. Unfortunately, 12.04 has a bug which causes apt-get to download index files every time, even it is not updated. This bug is reported and will be fixed soon. You are advised to go to the bug link and check the appropriate checkbox to say, "You too are affected for this bug"
This problem is discussed in this question the size of apt-get update lists is too big. and the bug link is here http://bugs.launchpad.net/launchpad/+bug/1001780
I do a trick to minimize my download size. I wrote this workaround in that answer. You can go to this link to check. http://askubuntu.com/a/151989/61218
The trick is, temporarily disable a repository whose index file is already download and then do a
sudo apt-get update to update the interested repository list. And then enable the old repo. As you have told apt not to delete the disabled repo's index file, you can install, download from all repos now.
Hope this will be helpful.
You may want to check these links: