Repositories
Repositories
In the Free and Open Source Software world, programs are generaly available in source code tarballs. These even if very convenient to a developer who intends to study and/or improve that software program are mostly cumbersome to deal with when you want a program that Just Works.
If you have been a Windows and/or a Mac OS user to date you are probably used to search for a program on the internet (often offered in an executable installer) and having to download and install it. You should also be familiar with software distributed on CDs, DVDs, etc. which often have an autorun feature from where you can then install that program. For free and open systems like Ubuntu GNU/Linux there is software distributed in this fashion, but those are mostly proprietary and closed programs.
Enter the world of distributions and packages repositories!
On systems like Ubuntu, free and open source software is very much often pre-packaged in nice .deb (or .rpm like in Red Hat) files which contain the programs and libraries you need. These files can be downloaded or come in CDs (Ubuntu's CD is full of them) and installed "by hand". But you need not do it. Repositories are servers which contain sets of packages. You generally access them with tools like [https://www.ubuntulinux.org/wiki/SynapticHowto Synaptic].
These tools can list all the packages you have installed (from your kernel to your favorite application with all the libraries in between) and the packages that are available in the repositories you have configured the tool to access to. They also let you search for simple things like "image editor".
Using these tools centralizes package management while simplifying it and giving the distributors (those who set up the repositories) a centralized way to send you updates(1) to your software.
In Ubuntu you generally want to have at least Ubuntu's repositories (which may include the install CD) but it is not uncommon to have other repositories (from other packagers) set up.
Now, let us just stress this simple idea: most of the tools you'll want to use in Ubuntu are already in Ubuntu's repositories, while you can go search the net looking for packages, or even source code, for some programs these are certainly more difficult to install and won't, most of the time, integrate well with your system.
So now you know: no more endless searching looking for spyware infested shareware and freeware. The vast majority of useful software available for Linux is pre-packaged for you.
(1) You can use tools like the update-notifier in Ubuntu to be notified when such updates are made available.