The purpose of this article is to explain the potential problems in installing every package that comes included in any given Linux distribution. For the most part, this is a bad practice and is not conducive to becoming proficient in Linux for either a seasoned professional or a newcomer (ie. “newbie”). It is my hope that this will help educate people on this subject matter.
There are some abundancy arguments that are commonly used and overstated. Specifically: Disk space, memory and bandwidth are all “cheap”. Technically none of these are always true. In fact these are almost always entirely false in third world countries.
There are some minimal advantages to installing everything. There will not be any dependency issues among software packages included in the software distribution. All software will be immediately available for use to try and test. Other advantages are possible, but these are the most relevant.
The problems I see are as follows:
- Most software will never be used and is redundant. Many of these applications are designed for experienced users who know how to install them even though they are not included in the default install. Examples: Most newbies do not use ‘vi’ or ’emacs’. Most
develpackages are only used for compilation.
- Every software whether used or not must be maintained if they may be accessed by multiple users whether remotely or locally. A typical problem would be for security updates or bugs that you would not normally encounter with default settings.
- Updates take longer and consume more resources. Everytime a system wide update is done (ex:
yum update) it needs to download updates for every single package on the system. Even though you may not pay for your bandwidth, there is some cost to the provider and could serve someone else who could use it more appropriately.
- (For new comers) You really do not learn anything. It is beneficial at times to understand how software dependancies work and to learn how to install software when needed. Needs change and are not the same for everyone.
- There is more immediate drain on local resources. Most distributions package enough software to run as either a server and/or a desktop. It does not make sense to run multiple server applications on a desktop machine. Furthermore, most distributions package some packages with the knowledge that some should not run at the same time, i.e. the installer should know what they are doing. Additionally many services and daemons perform redundant tasks, i.e. multiple FTP servers are not typically required or recommended.
- Although rare, some distributions may include conflicting versions of packages with the intention of the user selecting only one. This is typical of a distribution which may provide a new less popular version in addition to a widely used version. An example in past I’ve seen is (SuSE?) shipping both Apache 1.x as well as Apache 2.x.
- There are hardware specific options that should not be on every machine and require extra steps to update. In the case of Fedora Core, some kernel packages (which a small population require) are not updated on the same frequency as more common packages. This has lead to some confusion and difficulty.
- An additional note to Fedora Core users: Fedora Core has always been “bleeding edge” distribution, which basically means it will typically ship with the absolute latest (sometimes not adequately tested) software versions. Also there will always be some software included that may not make it into the next version or update.
Given these points, it is still entirely up to the end user as to what software they should install and use. However, it is very unlikely that anyone could potentially use every single included application. It is better to choose less than more and install as needed. Furthermore it is best to understand why something is needed as opposed to foolish assumptions that more unknown software is beneficial.