Chapter 40. Software Management

Table of Contents

40.. The Stone Age vs. Today
40.. Goals
40.. The Computational Science Time Line
Development Time
Deployment Time
Learning Time
Run Time
40.. Package Managers
Motivation
FreeBSD Ports
Pkgsrc
40.. What's Wrong with Containers?

The Stone Age vs. Today

There are many thousands of quality open source applications and libraries available for Unix systems.

Just knowing what exists can be a daunting task. Fortunately, software management systems such as the FreeBSD ports have organized documentation about what is available. You can browse software packages by category on the ports website: http://www.freebsd.org/ports/index.html. Even if you don't use FreeBSD, this software listing is a great resource just for finding out what's available.

Installing various open source packages can also be a daunting task, especially since the developers use many different programming languages and build systems.

Many valuable man-hours are lost to stone-age software management, i.e. manually downloading, unpacking, patching, building, and installing open source software.

Free software isn't very free if it takes 20 hours of someone's time to get it running. An average professional has a total cost to their employer on the order of $50/hour. Hence, 20 hours of their time = $1,000. If 1,000 professionals around the world spend an average of 20 hours installing the same software package, then $1,000,000 worth of highly valuable man-hours have gone to waste. Even worse, many people eventually give up on installing software entirely, so there are no gains to balance this loss.

In most cases, the software could have been installed in seconds using a software management system (SMS) and all that time could have been spent doing something productive.

When choosing a Unix system to run, a good ports or packages system is an important consideration. A ports or packages system automatically downloads and installs software from the Internet. Such systems also automatically install additional prerequisite ports or packages required by the package you requested.

For example, to install Firefox, you would first need to install dozens of libraries and other utilities that Firefox requires in order to run properly. ( When you install Firefox on Windows or Max OS X, you are actually installing a bundle of all these packages. )

The ports or packages system will install all of them automatically when you choose to install Firefox. This allows you install software in seconds or minutes that might otherwise take days or weeks for an inexperienced programmer to manually download, patch, and compile.