Useful Sticky Notes

Friday, January 16, 2015

Update: New Mac Mini - Baseline Software Stack Setup

I've successfully set up a baseline software environment upon which I can proceed to build/install additional tools, and eventually my own software development projects on my Yosemite system.

1. XCode - this is downloaded/installed for free using the App Store application that is shipped with Yosemite. Straightforward process - one point to note is we no longer seem to be required to activate CommandLine Tools as a separate optional feature of XCode.

2. Homebrew - The reason I think this should come second is because I speculate Homebrew's requirement for ruby necessitates getting XCode first. Again, the process is fairly straightforward (information about Homebrew can be found here - http://computers.tutsplus.com/tutorials/homebrew-demystified-os-xs-ultimate-package-manager--mac-44884) :
  • Download via http://brew.sh
  • ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  • brew doctor
3. Modules Environment - while technically not a part of a baseline software stack, I am including this here as its installation subsequently allows all other software to be conscientiously built either as the default software layer, or as part of a hot-swappable framework (which is what I am after.)

Modules has as its prerequisite the Tcl/Tk libraries and headers. I've documented the details of a successful build/install here - http://cwleehpc.blogspot.sg/2013/09/the-modules-environment-on-mac-os-x.html
At this point, I'll just highlight how I intend to (roughly) structure my development environment to use this baseline stack framework.
Folder structure:
software 
   - software/non-repository (where source packages are kept for building purposes)
   - software/installed/packages (where built packages are installed for hot-swap)
   - software/repository/[git|svn|cvs|hg] (where source packages are kept)
   - software/modules (where module files control how each installed package is loaded/unloaded)

The result is fairly satisfying - Homebrew places default software in a space it manages, and is responsible for appropriately overriding the original default software shipped with Yosemite. Modules then allows me to further compartmentalize alternative software installations in software/installed/packages, and allows me to hot-swap these to override Homebrew's default as appropriate.

From this baseline, I will continue to document how I layer my working environment according to the classes of software I think are important to me, for example documentation/publication tools like latex and gnuplot; the host of language compilers; support tools for my intended web development environment etc ...

No comments:

Post a Comment