wiki:RubyOnRailsSetupUbuntu
Last modified 9 years ago Last modified on 11/12/09 14:31:53

Setup of RubyOnRails? for Ubuntu

This procedure describes a generic setup of the RubyOnRails? environment. After applying these steps, you should be able to instantiate a simple Rails application that uses the local MySQL database for ActiveRecord? storage and serves up a web site on port 3000.

At many points in this procedure, specific versions of packages are explicitly requested during installation. Because feature support can change significantly between releases of Ruby and its Gems, I believe this to be good practice.

Assumptions

  • OS version is Ubuntu 8.10 server.
  • MySQL version 5.0.67 is installed and running on localhost.
  • No Ruby or Rubygems components are currently installed.
  • Unless otherwise noted, all steps are carried out as user 'root'.

Install Ruby Interpreter and Documentation

apt-get install ruby1.8 irb1.8 rdoc1.8 ruby irb rdoc

Install (and update) Rubygems package management

apt-get install rubygems1.8 rubygems
gem install rubygems-update
/var/lib/gems/1.8/bin/update_rubygems

Install the required Gems

Install Rails.

gem install -v=2.2.2 rails

Install MySQL support:

apt-get install ruby1.8-dev libmysqlclient-dev build-essential
apt-get install libopenssl-ruby1.8 libopenssl-ruby
gem install -v=2.7 mysql

Install optional libraries

Add 3rd-party gems needed to build and run your application.

gem install -v=2.0.14 authlogic
gem install -v=1.2.8.1 ruby-ole
gem install -v=0.6.3.1 spreadsheet

Add a remote gems repository to the package manager, then download and install a module.

gem sources -a http://gems.github.com
gem install mislav-will_paginate

Create and Run a test application

Create a project called testapp that has MySQL support enabled by default.

rails -d mysql testapp
cd testapp

Edit the database configuration in database.yml.

vi config/database.yml

In order to create a new database called 'testapp_development', specify a user and password in database.yml for connecting to the local MySQL instance. In order to create the database using rake (later in this procedure), you will need to specify a user here that has sufficient privileges (e.g. root). In practice, you should create the database ahead of time and grant CRUD privileges to a user other than root.

	.
	.
development:
  adapter: mysql
  encoding: utf8
  database: testapp_development
  pool: 5
  username: root
  password: *******
  socket: /var/run/mysqld/mysqld.sock
	.
	.

Set the RAILS_ENV variable to 'development' and create the database.

export RAILS_ENV=development
rake db:create

Build a simple scaffolding containing one model type (Movie) and migrate the database.

ruby script/generate scaffold Movie title:string description:text
rake db:migrate

Launch the web server, then browse to http://localhost:3000/movies where you should see a list of movies (initially empty).

ruby script/server