Ruby on Rails
RailsOnUbuntu (Version #123)

This is a new guide for installing Rails on Ubuntu. You can find the old instructions under RailsOnUbuntuDebianTestingAndUnstable.

_A French guide for Edgy can be found here (an Edgy guide in English is linked below) : Ubuntu Edgy Eft – Installer RubyOnRails & Eclipse – RadRails
_

The quickest way

(NOT recommended, see the Community Ubuntu Documentation for more info. These instructions need to be updated. Apt-get is out of date, so you will likely get a non-working gems version. See: The Recommended Way)

Simply copy and paste the following into a terminal:

$ sudo apt-get install ruby rubygems irb ri rdoc ruby1.8-dev build-essential
$ sudo gem install rails --include-dependencies
$ export PATH=$PATH:/var/lib/gems/1.8/bin

A brief word about Rubygems

Since Rubygems has the potential to disrupt package management it has only recently been packaged for Debian and, by extension, Ubuntu.

For more information please read Debian’s position on Rubygems

Versions and Availability

Rails has been packaged for Ubuntu since release 5.10 (Breezy Badger) – the following table lists the versions of Rails and Ruby available in each release of Ubuntu:

  5.04 (Hoary) 5.10 (Breezy) 6.06 LTS (Dapper) 6.10 (Edgy) 7.04 (Feisty) 7.10 (Gutsy)
rails 0.13.11 0.13.1 1.1.2 1.1.6 1.2.1 1.2.4
ruby 1.8.12 1.8.2 1.8.23 1.8.23 1.8.23 1.8.23
ruby1.8 1.8.12 1.8.2 1.8.4 1.8.4 1.8.5 1.8.6
rubygems n/a n/a n/a n/a 0.9.0 0.9.44
  1. Only available through backports
  2. 1.8.2 was available through backports
  3. This is version reported by http://packages.ubuntu.com but as the package depends on ruby1.8 you actually get the version below
  4. As recommended below, rubygems should not be installed via apt-get but directly from source.

Since Rails is available as a package, Rubygems is no longer required to install it. However as the current version of Rails in Feisty is a couple of versions behind, and Rubygems provides far more than just Rails, two ways of installing Rails are demonstrated.

For the time being all instructions are tested on Ubuntu 7.04 (Feisty Fawn), although they may work for previous releases.

Out of Scope

This guide currently only covers installing Rails on Ubuntu. Installation of database servers, web servers, gems (besides Rails and it’s dependencies) are not covered.

This method of installing Rails uses only the official packages. Simply run:

~$ sudo apt-get install rails

This will install the stable (from the distributions point-of-view) versions (see table above for specifics) of Rails and Ruby. you can confirm the version with:

~$ ruby -v

The only package not installed using this method is irb which simply provides a softlink to irb1.8 in /usr/bin. You could create this link yourself, or just install the irb package via apt-get.

The recommended way

(See the Community Ubuntu Documentation for more info. These instructions need to be updated.)

This method installs Ruby via packages, Rubygems via source and Rails via Rubygems. This is much more flexible arrangement than the ‘proper’ method above. It does however mean that you can confuse apt by installing a Ruby library through gem instead of apt.

Install Ruby via apt-get

Install Ruby with the standard ubuntu package management apt by typing in the following:

~$ sudo apt-get install ruby rdoc irb libyaml-ruby libzlib-ruby ri libopenssl-ruby ruby1.8-dev build-essential

Install RubyGems via source

Install the Ruby package management directly from source. This way apt does not get confused when RubyGems updates itself.


  ~$ wget
"http://rubyforge.org/frs/download.php/34638/rubygems-1.1.1.tgz"
  ~$ tar -xvzf rubygems-1.1.1.tgz
  ~$ rm rubygems-1.1.1.tgz
  ~$ cd rubygems-1.1.1
  ~$ sudo ruby setup.rb
  ~$ sudo rm -rf rubygems-1.1.1/

(DO NOT use sudo ruby rubygemsx.x.x/setup.rb)

Now, you can update RubyGems

~$ sudo gem update --system

If this command is not working, you probably need to create a symbolic link to gem1.8:


~$ sudo ln -s /usr/bin/gem1.8 /usr/bin/gem

Install Rails via RubyGems

Now you can install Rails via RubyGems:

~$ sudo gem install rails

Now add /var/lib/gems/1.8/bin/ to your path, and you’re done!

~$ PATH=${PATH}:/var/lib/gems/1.8/bin/
~$ export PATH

Database server and driver

Now you just need a database server (or SQLite) as well as a Ruby-driver for it. For the vast majority MySQL should do:


~$ sudo apt-get install libmysql-ruby mysql-server

(You can leave out the “mysql-server” if you’ve already got the MySQL server installed and only need the driver.)

Mysql via Gem:


~$ sudo apt-get install libmysqlclient15-dev
~$ sudo gem install mysql

To install SQLite3:


~$ sudo apt-get install libsqlite3-ruby libsqlite3-0 libsqlite3-dev
~$ sudo gem install sqlite3-ruby

If you’re not satisfied with MySQL, and you can’t figure out which apt packages to install for your preferred database, then see DatabaseDrivers for details on how to install the correct drivers for your environment via gem (not available if you installed Rails “The not recommenden way”(via apt-get)).

TO-DO: Provide details on installing native database drivers other than MySQL via apt.

SSL Support

If you’re looking to use net/https then you’ll need to install the lib for openssl:


~$ sudo apt-get install libopenssl-ruby

ImageMagick Support

If you need RMagick support for your web app, you are going to need to install ImageMagick and RMagick.

~$ sudo apt-get install imagemagick 
~$ dpkg -l | grep magick

This will install the most current imagemagick and then list the ‘magick’ packages installed. Look for what version of libmagick got installed and make sure you specify THAT version number when you install libmagick-dev.

~$ sudo apt-get install libmagick9-dev
~$ sudo gem install rmagick

To install the Imagemagick API for Ruby you should use the prebuilt package for ubuntu (edgy, feisty and gutsy) instead of installing the API via sudo gem install rmagick:

~$ sudo apt-get install librmagick-ruby1.8

After a lengthy build process, you’re ready to edit images in ruby!

This is a new guide for installing Rails on Ubuntu. You can find the old instructions under RailsOnUbuntuDebianTestingAndUnstable.

_A French guide for Edgy can be found here (an Edgy guide in English is linked below) : Ubuntu Edgy Eft – Installer RubyOnRails & Eclipse – RadRails
_

The quickest way

(NOT recommended, see the Community Ubuntu Documentation for more info. These instructions need to be updated. Apt-get is out of date, so you will likely get a non-working gems version. See: The Recommended Way)

Simply copy and paste the following into a terminal:

$ sudo apt-get install ruby rubygems irb ri rdoc ruby1.8-dev build-essential
$ sudo gem install rails --include-dependencies
$ export PATH=$PATH:/var/lib/gems/1.8/bin

A brief word about Rubygems

Since Rubygems has the potential to disrupt package management it has only recently been packaged for Debian and, by extension, Ubuntu.

For more information please read Debian’s position on Rubygems

Versions and Availability

Rails has been packaged for Ubuntu since release 5.10 (Breezy Badger) – the following table lists the versions of Rails and Ruby available in each release of Ubuntu:

  5.04 (Hoary) 5.10 (Breezy) 6.06 LTS (Dapper) 6.10 (Edgy) 7.04 (Feisty) 7.10 (Gutsy)
rails 0.13.11 0.13.1 1.1.2 1.1.6 1.2.1 1.2.4
ruby 1.8.12 1.8.2 1.8.23 1.8.23 1.8.23 1.8.23
ruby1.8 1.8.12 1.8.2 1.8.4 1.8.4 1.8.5 1.8.6
rubygems n/a n/a n/a n/a 0.9.0 0.9.44
  1. Only available through backports
  2. 1.8.2 was available through backports
  3. This is version reported by http://packages.ubuntu.com but as the package depends on ruby1.8 you actually get the version below
  4. As recommended below, rubygems should not be installed via apt-get but directly from source.

Since Rails is available as a package, Rubygems is no longer required to install it. However as the current version of Rails in Feisty is a couple of versions behind, and Rubygems provides far more than just Rails, two ways of installing Rails are demonstrated.

For the time being all instructions are tested on Ubuntu 7.04 (Feisty Fawn), although they may work for previous releases.

Out of Scope

This guide currently only covers installing Rails on Ubuntu. Installation of database servers, web servers, gems (besides Rails and it’s dependencies) are not covered.

This method of installing Rails uses only the official packages. Simply run:

~$ sudo apt-get install rails

This will install the stable (from the distributions point-of-view) versions (see table above for specifics) of Rails and Ruby. you can confirm the version with:

~$ ruby -v

The only package not installed using this method is irb which simply provides a softlink to irb1.8 in /usr/bin. You could create this link yourself, or just install the irb package via apt-get.

The recommended way

(See the Community Ubuntu Documentation for more info. These instructions need to be updated.)

This method installs Ruby via packages, Rubygems via source and Rails via Rubygems. This is much more flexible arrangement than the ‘proper’ method above. It does however mean that you can confuse apt by installing a Ruby library through gem instead of apt.

Install Ruby via apt-get

Install Ruby with the standard ubuntu package management apt by typing in the following:

~$ sudo apt-get install ruby rdoc irb libyaml-ruby libzlib-ruby ri libopenssl-ruby ruby1.8-dev build-essential

Install RubyGems via source

Install the Ruby package management directly from source. This way apt does not get confused when RubyGems updates itself.


  ~$ wget
"http://rubyforge.org/frs/download.php/34638/rubygems-1.1.1.tgz"
  ~$ tar -xvzf rubygems-1.1.1.tgz
  ~$ rm rubygems-1.1.1.tgz
  ~$ cd rubygems-1.1.1
  ~$ sudo ruby setup.rb
  ~$ sudo rm -rf rubygems-1.1.1/

(DO NOT use sudo ruby rubygemsx.x.x/setup.rb)

Now, you can update RubyGems

~$ sudo gem update --system

If this command is not working, you probably need to create a symbolic link to gem1.8:


~$ sudo ln -s /usr/bin/gem1.8 /usr/bin/gem

Install Rails via RubyGems

Now you can install Rails via RubyGems:

~$ sudo gem install rails

Now add /var/lib/gems/1.8/bin/ to your path, and you’re done!

~$ PATH=${PATH}:/var/lib/gems/1.8/bin/
~$ export PATH

Database server and driver

Now you just need a database server (or SQLite) as well as a Ruby-driver for it. For the vast majority MySQL should do:


~$ sudo apt-get install libmysql-ruby mysql-server

(You can leave out the “mysql-server” if you’ve already got the MySQL server installed and only need the driver.)

Mysql via Gem:


~$ sudo apt-get install libmysqlclient15-dev
~$ sudo gem install mysql

To install SQLite3:


~$ sudo apt-get install libsqlite3-ruby libsqlite3-0 libsqlite3-dev
~$ sudo gem install sqlite3-ruby

If you’re not satisfied with MySQL, and you can’t figure out which apt packages to install for your preferred database, then see DatabaseDrivers for details on how to install the correct drivers for your environment via gem (not available if you installed Rails “The not recommenden way”(via apt-get)).

TO-DO: Provide details on installing native database drivers other than MySQL via apt.

SSL Support

If you’re looking to use net/https then you’ll need to install the lib for openssl:


~$ sudo apt-get install libopenssl-ruby

ImageMagick Support

If you need RMagick support for your web app, you are going to need to install ImageMagick and RMagick.

~$ sudo apt-get install imagemagick 
~$ dpkg -l | grep magick

This will install the most current imagemagick and then list the ‘magick’ packages installed. Look for what version of libmagick got installed and make sure you specify THAT version number when you install libmagick-dev.

~$ sudo apt-get install libmagick9-dev
~$ sudo gem install rmagick

To install the Imagemagick API for Ruby you should use the prebuilt package for ubuntu (edgy, feisty and gutsy) instead of installing the API via sudo gem install rmagick:

~$ sudo apt-get install librmagick-ruby1.8

After a lengthy build process, you’re ready to edit images in ruby!