Skip to content
robinhouston edited this page Feb 20, 2012 · 52 revisions

Follow these instructions to get Alaveteli running locally on an OS X machine. These instructions have been tested with Xcode 4.1 on OS X Lion (10.7). We do not recommend using OS X in production.

Note: This guide is currently incomplete. Please help by posting issues to the alaveteli-dev Google group or by submitting pull requests.

Xcode

If you are using OS X Lion, download Command Line Tools for Xcode from Apple. This is a new package from Apple that provides the command-line build tools separate from the rest of Xcode. You need to register for a free Apple Developer account.

Note: As of Xcode 4.2, a non-LLVM version of GCC is no longer included. Homebrew has dealt with it by switching to Clang. However, you may encounter errors installing RVM. Please report these on the mailing list. The following instructions have been tested with Xcode 4.1. If necessary, you can install GCC from Xcode 4.1 by running:

brew install http://github.com/adamv/homebrew-alt/raw/master/duplicates/apple-gcc42.rb

Homebrew

Homebrew is a package manager for OS X. It is preferred over alternatives such as MacPorts and Fink. If you haven't already installed Homebrew, run the command:

curl -fsSL https://raw.github.com/gist/323731 | /usr/bin/ruby

Next, install packages required by Alaveteli:

brew install catdoc elinks gnuplot gs imagemagick libmagic libyaml links mutt poppler tnef wkhtmltopdf wv xapian unrtf

Install memcached

Alaveteli uses memcached.

brew install memcached
mkdir -p ~/Library/LaunchAgents
cp /usr/local/Cellar/memcached/*/com.danga.memcached.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/com.danga.memcached.plist

Install postgresql

Alaveteli uses PostgreSQL by default. If you've tested Alaveteli with MySQL or SQLite, let us know in the alaveteli-dev Google group.

brew install postgresql
initdb /usr/local/var/postgres
mkdir -p ~/Library/LaunchAgents
cp /usr/local/Cellar/postgresql/9.0.4/org.postgresql.postgres.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/org.postgresql.postgres.plist

PDF Toolkit

Download the installer package and install.

wdg-html-validator

Download the installer package and install.

Ruby

Install RVM

RVM is the preferred way to install multiple Ruby versions on OS X. Alaveteli uses Ruby 1.8.7. The following commands assume you are using the Bash shell.

curl -s https://rvm.beginrescueend.com/install/rvm | bash

If you have Xcode 4.1, run the following line:

echo 'export CC=gcc-4.2' >> .bash_profile

Now, continue with:

echo [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"' >> .bash_profile
source .bash_profile
rvm install 1.8.7
rvm system ; rvm gemset export system.gems ; rvm 1.8.7 ; rvm gemset import system
rvm install 1.9.2
rvm use 1.9.2 --default

Install mahoro and pg with flags

The mahoro and pg gems require special installation commands. Rubygems must be downgraded to 1.6.2 to avoid deprecation warnings when running tests.

rvm 1.8.7
gem update --system 1.6.2
gem install mahoro -- --with-ldflags="-L/usr/local/Cellar/libmagic/5.09/lib" --with-cppflags="-I/usr/local/Cellar/libmagic/5.09/include"
env ARCHFLAGS="-arch x86_64" gem install pg

Alaveteli

The following is mostly from INSTALL.md.

Configure database

Creates Alaveteli databases and an foi user with password foi.

echo "CREATE DATABASE foi_development encoding = 'UTF8';
CREATE DATABASE foi_test encoding = 'UTF8';
CREATE USER foi WITH CREATEUSER;
ALTER USER foi WITH PASSWORD 'foi';
ALTER USER foi WITH CREATEDB;
GRANT ALL PRIVILEGES ON DATABASE foi_development TO foi;
GRANT ALL PRIVILEGES ON DATABASE foi_test TO foi;       
ALTER DATABASE foi_development OWNER TO foi;
ALTER DATABASE foi_test OWNER TO foi;" | psql -h localhost template1

Clone Alaveteli

We don't want to vendor Rails, as it causes problems locally.

git clone https://github.com/sebbacon/alaveteli.git
cd alaveteli
git submodule init

sed -i~ 's/\[submodule "vendor/rails"\]//' .git/config

sed -i~ 's/url = git:\/\/github.com\/rails\/rails.git//' .git/config
git submodule update

Note: Due to Markdown bugs, the first sed command above does not display properly if it appears in blockquote.

Configure Alaveteli

Copy the example configuration files and configure database.yml.

cp -f config/general.yml-example config/general.yml
cp -f config/memcached.yml-example config/memcached.yml
cp -f config/database.yml-example config/database.yml
sed -i~ 's/<username>/foi/' config/database.yml
sed -i~ 's/<password>/foi/' config/database.yml
sed -i~ 's/  port: 5432//' config/database.yml
sed -i~ 's/ # PostgreSQL 8.1 pretty please//' config/database.yml

Bundler

Alaveteli doesn't currently use Bundler. However, you may use the following Gemfile to install the gems.

source :rubygems
gem 'rails', '2.3.14'
gem 'pg'

# in vendor/gems
gem 'json', '~> 1.5.1'
gem 'locale', '>= 2.0.5'
gem 'gettext', '>= 1.9.3'
gem 'fast_gettext', '>= 0.4.8'
# can't activate rack if ~> used
gem 'rack', '= 1.1.0'
gem 'rdoc', '~> 2.4.3'
gem 'recaptcha', '~> 0.3.1', :require => 'recaptcha/rails'
# can't activate rspec if ~> used
gem 'rspec', '= 1.3.1'
# can't activate rspec-rails if ~> used
gem 'rspec-rails', '= 1.3.3'
gem 'routing-filter', '~> 0.2.3'
gem 'will_paginate', '~> 2.3.11'

gem 'mahoro'
gem 'memcache-client'
# :require avoids "already initialized constant" warnings
gem 'rmagick', :require => 'RMagick'
gem 'test-unit', '~> 1.2.3' if RUBY_VERSION.to_f >= 1.9
gem 'tmail'
gem 'vpim'
gem 'xapian-full'
gem 'xml-simple'
gem 'zip'

Then, follow the instructions to use Bundler with Rails 2.3.

Finally, install the gems and finish setting up Alaveteli. Note that installing the xapian-full gem may take several minutes.

rvm 1.8.7
gem install bundler
bundle
bundle exec rake db:create:all
bundle exec rake db:migrate
bundle exec rake db:test:prepare
Clone this wiki locally