Almost every software package that is available and tested for a specific distribution of Linux is available in the on-line repositories for that distribution. The concept of software repositories is likely not all that familiar to users switching from Windows, since they normally have to go to a store, or go on-line to purchase new software for the Microsoft operating system.
Unlike the various shareware websites for Windows add-ons, software repositories for Linux are managed, maintained and updated by the Linux distribution called "software repositories" or "software sources." These repositories contain almost ALL of the full-featured, free and open source software, that has been tested for installation on that particular distribution. And they won't put spyware and viruses on your computer!
A package manager (think "software package") is something that comes on almost every Linux distribution and retrieves software packages from the software repositories maintained by the distribution. You will see package manager names like "Synaptic" and "Yum." The name varies from distribution to distribution, but almost all distributions have a package manager. A Linux distribution that is derived from another distribution usually has access to all of the software repositories of the original distribution as well as its own. For example, Ubuntu is derived from Debian. In addition to all of it's own software repositories, Ubuntu has access to all of the software that is available for Debian via the Ubuntu Software Center, the graphical front-end to its package manager. Linux Mint's Software Manager has access to all of the Debian repositories, all of the Ubuntu repositories AND its own repositories. Mint is based on Ubuntu.
Installing software using a package manager on Linux is REALLY easy! When the distribution is like Ubuntu or Mint, they have an iTunes-like "Software Center" or "Software Manager" for finding and installing the software you want. Unlike other operating systems that require you to know the name of the program you want before you can find it, Linux let's you search by category. So on Mint, for example, instead of looking for "Opera" to find your favorite web browser, you can just search for "browser" and you will see Chromium, Firefox, Opera, Midori (and more) listed. If the package is already installed, it will have a green check mark on the search results page to let you know its ready to use.
Double-click to read the description, then click the "Install" button... and on Linux, after installing almost all new software, you can begin to use the software right away -- no rebooting!
For information about using and adding Linux software repositories, see our article: Installing Linux Software Applications (Package Repositories). This article discusses considerations on where the software packages are actually installed on your Linux computer.
Although it is possible to control where applications are installed with Linux, it's not something you want to do. Here's why:
Usually when a recovering Windows user asks me about controlling where applications are installed under Linux, their motivation is driven by a desire to have everything installed in the same place. These days, most Windows programs are installed under "Program Files" or similar location, but that is not always the case. Because Windows allows installed software to be installed in almost any location on your hard drive, that is exactly what many software installers do... put the application files just about anywhere on your drive. Linux was designed to minimize that issue. Having you applications installed all over your hard drive can be inconvenient when you need to troubleshoot a misbehaving application. Having your application preferences and settings installed "who knows where" is a problem if you want to backup your application settings. With Windows, there is no predictable place that all programs or preferences are stored. Linux, on the other hand, is designed to be predictable.
Where is it all stored? Who knows with a Windows application -- unless you can control where it is installed when you install each application. Most (but not all) Windows application installers attempt to solve this problem by allowing you to choose the folder to use when installing the application.
By design, Linux makes backing up, restoring, and reinstalling problematic applications very easy. By design, Linux installs its applications in predictable places... so you know exactly where to go to find the application files. By design, Linux application preferences are stored in a predictable place.
For files that come pre-installed on your Linux distribution, here are the file locations. The Linux binary system programs are stored in the /bin folder (directory). The /boot folder contains the Linux kernel and the boot loader. The folder /etc contals the system-wide configuration files. These are configuration files for the linux system itself. Shared libraries are stored in /lib. Libraries correspond roughly with Windows .dll files. The /opt folder holds "optional" applications, generally commercial software products and the like. This is where applications like Firefox, Teamviewer, Adobe Air and proprietary printer applications typically go. The /usr folder contains a /bin, a /share and other folders for the programs that you install yourself. Some commercial programs like Skype go in here as well, but almost all of the Free and Open Source applications you find in your Linux distribution's software repositories will go here. Very predictable.
Now for the really cool stuff! What if your hard drive was organized so that all of the word processor documents, email messages, and other things that you create are in one place, and all of the preference settings for your applications are in another place? Linux actually does that, and does you one better! It organizes all of this into a folder called /home/username. (Note that "username" is the name you use to log in to your computer.) You create your own folder structure in your home location for the documents you create, but Linux creates hidden folders WITHIN YOUR HOME FOLDER to store preferences for each application, whether it's one that came with your distribution or it's one you have installed yourself.
Linux uses the period "." in front of a folder or file name to make it "hidden". It's in these hidden folders that it stores the preferences for your word processor, your browser, your email client, etc. Select View->Show Hidden Files in your file manager and the hidden stuff becomes visible. You'll see that /home/username/.mozilla/firefox contains all of your settings for Firefox. Nice if you need to copy them to another computer so that your preferences, plugins and bookmarks are already setup for you when you startup Firefox for the first time. Similarly, /home/username/.thunderbird will contain all of your mail preferences AND your saved mail file. (Assuming you are using Thunderbird as your mail client.)
Imagine now that you need to troubleshoot a misbehaving Firefox installation. You know that it's in the /opt folder. You also know that you can just uninstall the whole thing and reinstall a fresh copy from the software repositories because all of your preferences, settings, and bookmarks are safely in your home directory. Nice! Imagine now that you want to backup everything. Well do your really need to backup your entire drive? Not really. All of the important stuff - your pictures, the stuff you've created, and all of your application preferences and settings are stored in your home folder. Just back that up! Makes upgrading to a new operating system version or distribution a snap. Just install the OS and restore the backup of your home folder and all of your applications will run, using the preferences and settings stored in your home folder.
Let's hear it for predictability by design! And just think. All of this was thought up and designed for UNIX, long before operating systems even had windows!