Development on OS X
A few notes to myself on developing on OS X 10.6 (snow leopard).
The default path used by OS X to look for software is:
To confirm this, on the command line just type:
Software updates from Apple are generally installed in the first three locations defined in the path. The last one,
/usr/local, is by convention where I can put other software without it being over-written by Apple’s updates. This is particularly useful if I want to update already-installed software. If I go down this route, then the path needs to be updated in
~/.profile so that
/usr/local/bin is searched before the other three default locations:
However, care should be taken. Having different software versions running on the same machine can cause confusion.
See hivelogic for more information.
Software is installed using
sudo port install and is installed in
/opt/local (hence the line
export PATH=/opt/local/bin:/opt/local/sbin:$PATH added to ~/.profile when first installing macports)
To check what MacPorts are installed:
To keep MacPorts up to date run:
sudo port -v selfupdate
(I have just re-installed ImageMagick using MacPorts, which has an awful lot of dependencies and installs them all under
/opt/local/bin, even though many of them are already installed in
Homebrew may be a better idea than Macports. See http://www.engineyard.com/blog/2010/homebrew-os-xs-missing-package-manager/
I am using it now and have successfully installed mongodb into /usr/local using homebrew.
To avoid confusion, I always try to install gems as root using sudo (Every now and again I move my ~/.gems folder to the trash to remove any gems I have accidentally installed locally). The only reason not to have my gems working system wide is if I wanted to be running different development environments with different gem versions. I am pretty sure I don’t, because it is unlikely I could deal with the ensuing confusion.
Don’t forget to regularly run:
sudo gem update
Sometimes it is possible to lose control of various installs. In which case, it may not be a bad idea to just remove everything and start again.
1. Uninstall and remove macports. See http://guide.macports.org/#installing.macports.uninstalling
2. Uninstall and remove everything in /usr/local
mv /usr/local /usr/xlocal
3. Remove all gems
gem env paths
and remove all paths. See http://stackoverflow.com/questions/1000731/getting-rid-of-ruby-gems-that-wont-die
Getting Rails going again
Install git. See http://code.google.com/p/git-osx-installer/.
Install Homebrew. See http://github.com/mxcl/homebrew.
sudo gem install rails --pre
Install mongodb using homebrew. See http://gist.github.com/265272.
Install mongoid. See http://mongoid.org/docs/installation.
sudo gem install mongoid --pre
rails app1 --skip-activerecord
Incidentally, Snow Leopard comes with ruby 1.8.7 (2009-06-08 patchlevel 173) installed.