AppInstaller is a software repository and software installer I wrote with version control and dependency management.  It’s used during machine deployment to install sets of applications (and their dependencies).  After deployment it’s used to maintain machines by installing new software releases.  If you’re familiar with yum on Linux, this tool performs a similar function.

Typically when a user requests an app, they don’t know or care about the version, they just want the latest compatible version.  But occasionally a specific version may be required.  With this in mind, requests for applications can be non-specific about version (gimme Office) or version specific (gimme Office 2010).  Also users don’t know or care about pre-requisites.  If they request an application, all the pre-requisites are automatically be installed first.

At the writing of this post, AppInstaller is helping me manage over 1985 packaged releases of 841 versions of 580 software products.

See this page for more details