[nycphp-talk] MAMP or XAMPP ?
Ajai Khattri
ajai at bitblit.net
Tue Apr 27 08:10:47 EDT 2010
On Tue, 27 Apr 2010, Justin Hileman wrote:
> Homebrew is built on git and really simple ruby "recipes".
Sounds like Portage (the Gentoo Linux package system, which builds
everything from source using 'ebuild' files that tell the installer how to
build a package). I use Gentoo on my servers so Im pretty familiar with
it. There is a project (Prefix) which aims to bring this package system to
other platforms like MacOS, Solaris, etc so I might try it out on Mac.
I know I asked about MAMP and XAMPP but Im now thinking building from
source would be a better way to go too.
> Homebrew installs everything in version-specific isolated folders, then
> symlinks into `/usr/local` where local code really belongs :)
You decide where Prefix installs its stuff. Its a self-contained tree
containing binaries, libraries, config files, etc.
> It's crazy simple to create your own Homebrew packages, just in case you
> have to install something from source.
Gentoo's Portage also has the concept of 'overlays' which are
user-contributed package sets that can be merged into your 'default'
package set.
> It's crazy simple to modify existing Homebrew recipes... Because it's
> built on Git, any upstream changes can be automatically merged into your
> custom recipe.
With Portage you rsync with a mirror to update your package list. You can
then update your installed packages with a single build command.
> Homebrew tries really hard not to mess with things that are installed
> elsewhere. MacPorts and Fink play fast and loose with versions and
> dependencies, and often install multiple copies of the same thing or
> existing libraries (i.e. your cli and Apache PHP versions will often be
> different).
Portage allows you to install different versions of a package
simultaneously using a concept called slots.
Portage has the added advantage of 'USE' flags: basically you can control
how a build is configured by setting various flags in a config file. The
flags are persistent so you will always get things built the way you want
them when rebuilding/upgrading a package. Most packages have sensible
default USE flags but you can tweak them as much as you want.
--
Aj.
More information about the talk
mailing list