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.
- 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 ...