OSX: Homebrew on Tiger
Linux has many different package managers for tracking programs, and are significantly more thorough than Windows, or even OSX. Conversely, when you have an OSX application, you usually just drag and drop the app dir into Applications, and clicky clicky to use.
That's great for the big graphical or standalone applications, but not so helpful when you're trying to install a command line app.
Being a Slackware, and more specifically, a src2pkg user, I'm used to being able to install from source, either by compiling it by hand, or relying on src2pkg to do it for me. More often is a combination of the two - writing the build script for src2pkg to provide repeatability, once I've figured out all the compilation options.
There are three package managers for OSX: fink, macports (was darwinports) and homebrew. They all do broadly the same thing, which is to use a build script to automatically download and build a given source tarball and where listed, it's dependencies. Linux users would recognise this style as Gentoo emerge.
Homebrew relies upon the preinstalled tools, while fink and macports both build their own environment and use that as the basis for adding in the programs you want.
Homebrew is much easier to install than I originally thought, and luckily, someone else has done the hard work of porting Homebrew to PPC/Tiger.
- Grab the Tiger/PPC compatible homebrew branch from here: http://github.com/sceaga/homebrew/tarball/tiger
- Extract the tarball, you should have one directory ($BREW) that contains two folders: Library and bin.
- To save ending up using sudo a lot, sudo chown $USER -R /usr/local/
- cp -r $BREW/* /usr/local/
- If you're using rvm and want to ensure brew uses your default ruby, edit the main brew file (/usr/local/bin/brew) and change the top line from #!/usr/bin/ruby to #!/usr/bin/env ruby
- Brew away with brew install <program>
The brew commands explain how to use brew as a package manager, including listing the files and installing/uninstalling. Because Homebrew uses application directories to store all of the files relevant to one application, brew uses symlinks (ala GoboLinux) to place the files into the /usr/local. brew link symlinks them up, and brew unlink removes all the symlinks, making it nice and easy to add/remove a program's files from your path.
If you manage to do what I did, which was to pull the repo from git clone http://github.com/sceaga/homebrew.git, then you'll need to switch to the head version (git checkout head) in order to get the Tiger support you're looking for.