Over the last few days I have been familiarising myself with some of the rails source code and surveying it for use in my own projects. In doing so I noticed there were quite a few gotchas getting Ubuntu and ruby set up RVM to successfully run the tests suites in rails. This post aims to provide a step by step guide to getting a clean ubuntu installation ready to test and hack on rails, note I am using Ubuntu 11.04 and this process has been tested on server and desktop.
Install the development suite for Ubuntu.
sudo apt-get install build-essential
Install the Git version control package and curl http client utility
sudo apt-get install git curl
Install the development packages which ruby and it’s utilities depend on.
sudo apt-get install zlib1g-dev libssl-dev libreadline-dev
Install the packages required to build nokogiri, which is an xml library used by rails.
sudo apt-get install libxml2-dev libxslt1-dev
Install the command line SQLLite and development package, note the command line tools aren’t required but are very handy.
sudo apt-get install sqlite3 libsqlite3-dev
Install MySQL client, server and development packages.
sudo apt-get install mysql-client mysql-server libmysqlclient15-dev
Install the PostgeSQL client, server and development packages.
sudo apt-get install postgresql postgresql-client postgresql-contrib libpq-dev
Run the following command to install RVM
bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
Source the .bashrc to make put the RVM command(s) in your path
source .bashrc
Install ruby 1.9.2, this compiles the runtime and then installs it.
rvm install 1.9.2
Enable the ruby 1.9.2 runtime as the default.
rvm use 1.9.2 --default
Update your gem command.
gem update --system
Log into the MySQL command line interface using the password which was set for the root user at installation.
mysql -uroot -p
Set up a rails user with all permissions on the activerecord test database.
GRANT ALL PRIVILEGES ON activerecord_unittest.* to 'rails'@'localhost';
GRANT ALL PRIVILEGES ON activerecord_unittest2.* to 'rails'@'localhost';
Create a user with super user privileges in PostgreSQL for the login your currently authenticated under.
sudo -u postgres createuser --superuser $USER
Navigate to where you store the code your working on and clone the rails repository.
cd ~/Code/Ruby
git clone git://github.com/rails/rails.git
cd rails
Install the latest version of bundler.
gem install bundler
Install all dependencies including the MySQL and PostgreSQL drivers.
bundle install
Run the tests.
rake test
For more information on this process see Contributing to Ruby on Rails.