In the early days of Linux simply producing a working system took a great deal of work in obtaining the correct programs. Usually the user would have to spend time compiling the programs. Much technical know-how was required to get the simplest things to work. Modern Linux systems have overcome these problems. The main tool they use is a system called a 'Package Manager'.
Package managers know about how different programs interact.
Take the example of installing a working email server. The package manager will check for Internet connectivity before installing the mail program. If the necessary software to do this is not installed it will automatically install it or stop with an error. Package managers know about how to install most programs that are available. The people writing the package add this information.