Notes on Life, ‘Puters and Hawaii

Ruby, Rails, RMagick & NGINX From Scratch on OS X

After many hassles and out of date packages (even in unstable), I decided to abandon fink, macports and darwinports as a means to install a development stack for Ruby on Rails.

Apple Mac OS X is a full blown BSD environment for software development with XCode installed. There is no reason why you shouldn’t be able to just compile the sources for the things you want from scratch.

So I scoured the internet for tips and messed around with dependencies until I got it all to work. The install takes 20 minutes or so, but it’s worth it to have an up to date development environment to work with.

Update: 11/08/2007 to the latest versions


cat >> $HOME/.profile << \\EOF
export LOCAL=/usr/local
export PATH=$LOCAL/bin:$LOCAL/sbin:$PATH
EOF
source $HOME/.profile
cd /tmp

curl -O http://pkgconfig.freedesktop.org/releases/pkg-config-0.22.tar.gz
tar xvzf pkg-config-0.22.tar.gz
cd pkg-config-0.22
make clean
./configure --prefix=$LOCAL
make
sudo make install
cd ..

curl -O ftp://ftp.gnu.org/gnu/readline/readline-5.2.tar.gz
tar xvzf readline-5.2.tar.gz
cd readline-5.2
make clean
./configure --prefix=$LOCAL
make
sudo make install
cd ..

curl -O ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-p110.tar.gz
tar xvzf ruby-1.8.6-p110.tar.gz
cd ruby-1.8.6-p110
make clean
./configure --prefix=$LOCAL --with-readline-dir=$LOCAL --enable-pthread \\
--enable-shared
make
sudo make install
cd ..

curl -O http://files.rubyforge.mmmultiworks.com/rubygems/rubygems-0.9.4.tgz
tar xzvf rubygems-0.9.4.tgz
cd rubygems-0.9.4
$LOCAL/bin/ruby setup.rb
gem update --system
cd ..

curl -O ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.2.22.tar.gz
tar xvzf libpng-1.2.22.tar.gz
cd libpng-1.2.22
make clean
./configure --prefix=$LOCAL
make
sudo make install
cd ..

curl -O ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz
tar xvzf jpegsrc.v6b.tar.gz
cd jpeg-6b
ln -s `which glibtool` ./libtool
export MACOSX_DEPLOYMENT_TARGET=10.4
# Mac OS X Leopard would be 10.5 ^^^
make clean
./configure --prefix=$LOCAL --enable-shared
make
sudo make install
cd ..

curl -O http://libtiff.maptools.org/dl/tiff-3.8.2.tar.gz
tar xvzf tiff-3.8.2.tar.gz
cd tiff-3.8.2
make clean
./configure --prefix=$LOCAL
make
sudo make install
cd ..

curl -O http://jaist.dl.sourceforge.net/sourceforge/wvware/libwmf-0.2.8.4.tar.gz
tar xzvf libwmf-0.2.8.4.tar.gz
cd libwmf-0.2.8.4
make clean
./configure --prefix=$LOCAL
make
sudo make install
cd ..

curl -O http://www.littlecms.com/lcms-1.17.tar.gz
tar xzvf lcms-1.17.tar.gz
cd lcms-1.17
make clean
./configure --prefix=$LOCAL
make
sudo make install
cd ..

curl -O http://download.savannah.gnu.org/releases/freetype/freetype-2.3.5.tar.gz
tar xvzf freetype-2.3.5.tar.gz
cd freetype-2.3.5
make clean
./configure --prefix=$LOCAL
make
make install
cd ..

curl -O http://ufpr.dl.sourceforge.net/sourceforge/ghostscript\\
/ghostscript-8.60.tar.gz
tar zxvf ghostscript-8.60.tar.gz
cd ghostscript-8.60
make clean
./configure  --prefix=$LOCAL
make
sudo make install
cd ..

curl -O http://ufpr.dl.sourceforge.net/sourceforge/ghostscript\\
/ghostscript-fonts-std-8.11.tar.gz
tar zxvf ghostscript-fonts-std-8.11.tar.gz
mv fonts $LOCAL/share/ghostscript

curl -O ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick-6.3.6-10.tar.gz
tar xvzf ImageMagick-6.3.6-10.tar.gz
cd ImageMagick-6.3.6
export CPPFLAGS=-I$LOCAL/include
export LDFLAGS=-L$LOCAL/lib
make clean
./configure --prefix=$LOCAL --disable-static --with-modules --without-perl \\
--without-magick-plus-plus --with-quantum-depth=8
make
sudo make install
cd ..

curl -O http://subversion.tigris.org/downloads/subversion-1.4.5.tar.gz
curl -O http://subversion.tigris.org/downloads/subversion-deps-1.4.5.tar.gz
tar xzvf subversion-1.4.5.tar.gz
tar xzvf subversion-deps-1.4.5.tar.gz
cd subversion-1.4.5
./configure --prefix=$LOCAL --with-ssl --with-zlib
make
sudo make install
cd ..

curl -O ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.4.tar.gz
tar xvzf pcre-7.4.tar.gz
cd pcre-7.4
make clean
./configure --prefix=$LOCAL
make
sudo make install
cd ..

curl -O http://sysoev.ru/nginx/nginx-0.5.33.tar.gz
tar xzvf nginx-0.5.33.tar.gz
cd nginx-0.5.33
make clean
./configure --prefix=$LOCAL/nginx --with-http_ssl_module
make
sudo make install
pushd .
cd $LOCAL/bin
sudo ln -sf ../nginx/sbin/* .
popd
cd ..

# now install your gems as needed
gem install rails capistrano rmagick mongrel_cluster nginx_config_generator -y
# etc.....

Comments are closed.