Setup Ruby On Rails on
Ubuntu 16.04 Xenial Xerus

A guide to setting up a Ruby on Rails development environment

This will take about 30 minutes.

We will be setting up a Ruby on Rails development environment on Ubuntu 16.04 Xenial Xerus.

The reason we're going to be using Ubuntu is because the majority of code you write will run on a Linux server. Ubuntu is one of the easiest Linux distributions to use with lots of documentation so it's a great one to start with.

You'll want to download the latest Desktop version here:

Some of you may choose to develop on Ubuntu Server so that your development environment matches your production server. You can find it on the same download link above.

Choose the version of Ruby you want to install:

The first step is to install some dependencies for Ruby and Rails.

To make sure we have everything necessary for Webpacker support in Rails, we're first going to start by adding the Node.js and Yarn repositories to our system before installing them.

curl -sL | sudo -E bash -
curl -sS | sudo apt-key add -
echo "deb stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

sudo apt-get update
sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev nodejs yarn

Next we're going to be installing Ruby using one of three methods. Each have their own benefits, most people prefer using rbenv these days, but if you're familiar with rvm you can follow those steps as well. I've included instructions for installing from source as well, but in general, you'll want to choose either rbenv or rvm.

Choose one method. Some of these conflict with each other, so choose the one that sounds the most interesting to you, or go with my suggestion, rbenv.

Installing with rbenv is a simple two step process. First you install rbenv, and then ruby-build:

git clone ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL

git clone ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
exec $SHELL

rbenv install 2.5.0
rbenv global 2.5.0
ruby -v

The installation for rvm is pretty simple:

sudo apt-get install libgdbm-dev libncurses5-dev automake libtool bison libffi-dev
gpg --keyserver hkp:// --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
curl -sSL | bash -s stable
source ~/.rvm/scripts/rvm
rvm install 2.5.0
rvm use 2.5.0 --default
ruby -v

Arguably the least useful Ruby setup for development is installing from source, but I thought I'd give you the steps anyways:

tar -xzvf ruby-2.5.0.tar.gz
cd ruby-2.5.0/
sudo make install
ruby -v

The last step is to install Bundler

gem install bundler

rbenv users need to run rbenv rehash after installing bundler.

We'll be using Git for our version control system so we're going to set it up to match our Github account. If you don't already have a Github account, make sure to register. It will come in handy for the future.

Replace my name and email address in the following steps with the ones you used for your Github account.

git config --global color.ui true
git config --global "YOUR NAME"
git config --global "[email protected]"
ssh-keygen -t rsa -b 4096 -C "[email protected]"

The next step is to take the newly generated SSH key and add it to your Github account. You want to copy and paste the output of the following command and paste it here.

cat ~/.ssh/

Once you've done this, you can check and see if it worked:

ssh -T [email protected]

You should get a message like this:

Hi excid3! You've successfully authenticated, but GitHub does not provide shell access.

Choose the version of Rails you want to install:

Since Rails ships with so many dependencies these days, we're going to need to install a Javascript runtime like NodeJS. This lets you use Coffeescript and the Asset Pipeline in Rails which combines and minifies your javascript to provide a faster production environment.

To install NodeJS, we're going to add it using the official repository:

curl -sL | sudo -E bash -
sudo apt-get install -y nodejs

And now, without further adieu:

gem install rails -v 5.1.4

If you're using rbenv, you'll need to run the following command to make the rails executable available:

rbenv rehash

Now that you've installed Rails, you can run the rails -v command to make sure you have everything installed correctly:

rails -v
# Rails 5.1.4

If you get a different result for some reason, it means your environment may not be setup properly.

Rails ships with sqlite3 as the default database. Chances are you won't want to use it because it's stored as a simple file on disk. You'll probably want something more robust like MySQL or PostgreSQL.

There is a lot of documentation on both, so you can just pick one that seems like you'll be more comfortable with. If you're coming from PHP, you may already be familiar with MySQL. If you're new to databases, I'd suggest skipping to setting up PostgreSQL.

You can install MySQL server and client from the packages in the Ubuntu repository. As part of the installation process, you'll set the password for the root user. This information will go into your Rails app's database.yml file in the future.

sudo apt-get install mysql-server mysql-client libmysqlclient-dev

Installing the libmysqlclient-dev gives you the necessary files to compile the mysql2 gem which is what Rails will use to connect to MySQL when you setup your Rails app.

When you're finished, you can skip to the Final Steps.

For PostgreSQL, we're going to add a new repository to easily install a recent version of Postgres.

sudo sh -c "echo 'deb xenial-pgdg main' > /etc/apt/sources.list.d/pgdg.list"
wget --quiet -O - | sudo apt-key add -
sudo apt-get update
sudo apt-get install postgresql-common
sudo apt-get install postgresql-9.5 libpq-dev

The postgres installation doesn't setup a user for you, so you'll need to follow these steps to create a user with permission to create databases. Feel free to replace chris with your username.

sudo -u postgres createuser chris -s

# If you would like to set a password for the user, you can do the following
sudo -u postgres psql
postgres=# \password chris

And now for the moment of truth. Let's create your first Rails application:

#### If you want to use SQLite (not recommended)
rails new myapp

#### If you want to use MySQL
rails new myapp -d mysql

#### If you want to use Postgres
# Note that this will expect a postgres user with the same username
# as your app, you may need to edit config/database.yml to match the
# user you created earlier
rails new myapp -d postgresql

# Move into the application directory
cd myapp

# If you setup MySQL or Postgres with a username/password, modify the
# config/database.yml file to contain the username/password that you specified

# Create the database
rake db:create

rails server

You can now visit http://localhost:3000 to view your new website!

Now that you've got your machine setup, it's time to start building some Rails applications.

If you received an error that said Access denied for user 'root'@'localhost' (using password: NO) then you need to update your config/database.yml file to match the database username and password.


Thiago Martins on

Don't use "ssh-keygen -t rsa", use "-t dsa", much safer and not owned by NSA.... ;-)

dudeman on


Thiago Martins on

Looks like that I'm wrong... DSA is being deprecated now (I think)...

Some insights:


Fred on

PostgreSQL is now upto 9.5.2 and yet this recommends 9.3.x. Is there something actively wrong with the version in the standard Ubuntu repositories; that prompts you to go back to the PostgreSQL repositories?

Given all the JSONB goodness that arrived with 9.4.x and was enhanced with 9.5.x; this is a surprise! Am slightly puzzled and very keen to lay hands on JSONB.

Also grateful for this site and these pages especially!

Chris Oliver (162,220 XP) on

Whoops, just updated that. Hard to keep all these dang version numbers up to date.

Ben Bonnet (10 XP) on

pg gem looks broken on xenial

Jie on

Sorry I am very new to rails development, when creating an user in postgresql I get a not connected to database error...

could not change directory to "/home/jie": Permission denied
createuser: could not connect to database postgres: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

Bharat on

did you get any solution for that?

suyesh bhandari (130 XP) on

Instead of this "sudo sh -c "echo 'deb precise-pgdg main' >", Do "sudo sh -c "echo 'deb xenial-pgdg main' >"

Chris Oliver (162,220 XP) on


rennex on

Ubuntu 16.04 has Ruby 2.3 in its package repository, as "ruby-full". Is there any point these days not to use that? Even if you want to use rbenv, you can still mix user gems and system ruby. (Note noobs: even though all guides seem to advise you to use rbenv or rvm, it can be more trouble than it's worth, especially on a single-user system.)

Chris Oliver (162,220 XP) on

The main reason not to use that is because you can update Ruby versions independently of the packages. Ruby 2.3 will get patches, 2.4 will come out, etc and you may have older apps that use 1.9 for example. All those would be easily managed with a version manager like rbenv and you can install it without waiting for the package maintainers to update it.

Noah Stern (10 XP) on

You have the installing NodeJS twice. Once right after rbenv/rvm and once right before installing Rails. Is there a reason for that?

Chris Oliver (162,220 XP) on

Nope, just overlooked that! :)

Anand Chavan on

You got great article!

Would you be able to demonstrate the same for Production Environment ? and the best practices for production ?

Chris Oliver (162,220 XP) on

Check out the deploy tutorial! :)

Anand Chavan on

Awesome, Thanks for quick reply!

Ketan Shukla (20 XP) on

If I want to automate the entire set of tasks in one script and call that at command line and sit back and watch it all happen, how do I do that? Right now I am cutting and pasting lines.

Chris Oliver (162,220 XP) on

That's where Chef, Ansible, etc come into play. :)

Einars vilnis on

Thank you very helpful

Edgar Ferreira (10 XP) on

thanks man... this help-me a lot!

Paul Waweru on

Git connection was refusing until I ran ssh-add ~/.ssh/id_rsa and it worked.

May help somebody.

Marcelo Brantes on

I solved this problem with the two commands bellow:
1) eval `ssh-agent -c`
2) ssh-add

rodorgas on


dudeman on

Just curious, why not default to `rvm` ?

Dillon Burnett on

not sure, but rvm did work for me a few different times, but every time i have tried rbenv it has worked.

Yann on

not remembering which ones exactly, but rbenv have had very serious updates problems 6 month ago or something; "accidentally"upgrading it just broke people install at the time and you pretty much had to switch to rvm. A move that could become hellish if you had installed passenger though rbenv (:

Dillon Burnett on

Yeah the fun install ror on linux is about as awesome as installing wireless drivers in the old days.

Yann on

humm, it was very true some years ago. rvm's always been stable since it exists; but rbenv introduced a fat doubt when their update failed

Ketan on

Greate article, I always forget setting up the postgres user.

subham gupta on

rbenv install 2.3.1

Downloading ruby-2.3.1.tar.bz2...


error: failed to download ruby-2.3.1.tar.bz2

BUILD FAILED (Ubuntu 16.04 using ruby-build 20160426-22-g3dbbf90)

can you help me in this ?

Ricardo Lopes on

When I run

sudo apt-get install postgresql-common

I got this error:
The following packages have unmet dependencies:
postgresql-common : Depends: init-system-helpers (>= 1.18~) but 1.14 is to be installed
E: Unable to correct problems, you have held broken packages.

Believe me, neither stackoverflow was able to help me with thie error.

Anyone can help?

Ricardo Lopes on

I figured out what I did wrong. I was trying to install Xenial package instead of Trusty package.

Joseph Bou Saada on

can u explain more. I am having same issue

Ricardo Lopes on

Joseph, whatch out the version you're trying to install. This version has to be the as your Ubuntu version (Ubuntu 16 = Xenial and 14 = Trusty). Got it?

Sarayut Jansoda on

Thank that all work for me.
i must learn ruby now.!

johnfisherman on

Epic. Many thanks.

Adrian Beauregard on

I'm going into the last step rake db:create but i've got an error, it says that i have to install debug_inspector - v '0.0.2' but still ive got an error, please help me, what i supposed to do? thank you.

[email protected]:~/myapp$ rake db:create
Could not find gem 'rails (= 4.2.6)' in any of the gem sources listed in your Gemfile or available on this machine.
Run `bundle install` to install missing gems.

[email protected]:~/myapp$ bundle install
Fetching gem metadata from
Fetching version metadata from
Fetching dependency metadata from
Resolving dependencies.............................................
Using rake 11.2.2
Using i18n 0.7.0
Using json 1.8.3
Using minitest 5.9.0
Using thread_safe 0.3.5
Using builder 3.2.2
Using erubis 2.7.0
Using mini_portile2 2.1.0
Using pkg-config 1.1.7
Using rack 1.6.4
Using mime-types-data 3.2016.0521
Using arel 6.0.3
Installing debug_inspector 0.0.2 with native extensions

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory: /tmp/bundler20160625-27921-19vrn9zdebug_inspector-0.0.2/gems/debug_inspector-0.0.2/ext/debug_inspector
/usr/bin/ruby2.3 -r ./siteconf20160625-27921-q4iq2t.rb extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h

extconf failed, exit code 1

Gem files will remain installed in /tmp/bundler20160625-27921-19vrn9zdebug_inspector-0.0.2/gems/debug_inspector-0.0.2 for inspection.
Results logged to /tmp/bundler20160625-27921-19vrn9zdebug_inspector-0.0.2/extensions/x86-linux/2.3.0/debug_inspector-0.0.2/gem_make.out
Using bundler 1.12.5
Installing byebug 9.0.5 with native extensions

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory: /tmp/bundler20160625-27921-1av67ezbyebug-9.0.5/gems/byebug-9.0.5/ext/byebug
/usr/bin/ruby2.3 -r ./siteconf20160625-27921-10vahzy.rb extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h

extconf failed, exit code 1

Gem files will remain installed in /tmp/bundler20160625-27921-1av67ezbyebug-9.0.5/gems/byebug-9.0.5 for inspection.
Results logged to /tmp/bundler20160625-27921-1av67ezbyebug-9.0.5/extensions/x86-linux/2.3.0/byebug-9.0.5/gem_make.out
Using coffee-script-source 1.10.0
Using execjs 2.7.0
Using thor 0.19.1
Using concurrent-ruby 1.0.2
Using multi_json 1.12.1
Installing pg 0.18.4 with native extensions

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory: /tmp/bundler20160625-27921-6wnv2wpg-0.18.4/gems/pg-0.18.4/ext
/usr/bin/ruby2.3 -r ./siteconf20160625-27921-1hfbrz5.rb extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h

extconf failed, exit code 1

Gem files will remain installed in /tmp/bundler20160625-27921-6wnv2wpg-0.18.4/gems/pg-0.18.4 for inspection.
Results logged to /tmp/bundler20160625-27921-6wnv2wpg-0.18.4/extensions/x86-linux/2.3.0/pg-0.18.4/gem_make.out
Using sass 3.4.22
Using tilt 2.0.5
Using spring 1.7.1
Using rdoc 4.2.2
Using tzinfo 1.2.2
Installing nokogiri 1.6.8 with native extensions

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory: /tmp/bundler20160625-27921-fzg6wvnokogiri-1.6.8/gems/nokogiri-1.6.8/ext/nokogiri
/usr/bin/ruby2.3 -r ./siteconf20160625-27921-131um77.rb extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h

extconf failed, exit code 1

Gem files will remain installed in /tmp/bundler20160625-27921-fzg6wvnokogiri-1.6.8/gems/nokogiri-1.6.8 for inspection.
Results logged to /tmp/bundler20160625-27921-fzg6wvnokogiri-1.6.8/extensions/x86-linux/2.3.0/nokogiri-1.6.8/gem_make.out
Using rack-test 0.6.3
Using mime-types 3.1
An error occurred while installing debug_inspector (0.0.2), and Bundler cannot
Make sure that `gem install debug_inspector -v '0.0.2'` succeeds before

Thomas Connolly (50 XP) on

Chris, as a subscriber, I've gotten a lot of tips from you, now here's one from me:
It should be "without further ado", not "adieu." The former means fuss and bother, the latter means goodbye. The are homonyms.

Braydon Pacheco on

Hey all, I'm having trouble with installing rails. I followed all of the steps (including "rbenv rehash") but when I try "rails -v" I don't get any message. I've uninstalled using "gem uninstall rails -v 4.2.6" multiple times and re-installed but it didn't help. I eventually just moved onto postgresql which seemed to work fine but when I get to the final steps the "rails new myapp -d postgresql" doesn't seem to do anything. Any help is appreciated!

Alex on

Best tutorial I have ever seen. I've tried to install Ruby and Rails on Windows and that was a nightmare) Development server was very slow. Later on I have Kubuntu installed and faced a problem installing rails via RVM. Luckily I found this tutorial! It's great, because this article covers a lot of ways to install rails on linux. Thank you very much!

Mutsinzi on

thanks for this. very helpful

T. K. (10 XP) on

Thanks a lot for this. Its running like a charm.

prashant soni on

Help - I'm setting up ruby for first time. I'm using rbenv.
I wrote this in shell -

echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
and when I write exec $SHELL. It throws an error like - exec $SHELL unexpected EOF while looking for matching `"' syntax error: unexpected end of file .

Emmanuel Rosani (10 XP) on

Hello Chris,

I'm new to rails using zsh (oh-my-zsh) and can't get to work the rails command in the terminal. Upon executing the commands in your tutorial, I replace .bashrc with .zshrc

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(rbenv init -)"' >> ~/.zshrc
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.zshrc

Any idea with this? Thanks!

juxxxer on

Same problem here.

Chris Oliver (162,220 XP) on

Double check that your ~/.bashrc has the rbenv lines in it. This happens when bash doesn't properly load rbenv, and that happens because it doesn't add it to the path in your ~/.bashrc.

Aufar Zakiev on

Don't know does it help to rbenv users but this hint helped me:
The trick is to configure terminal to login as login shell.

Jimmy Prydz on

Just a short note. If you receive an error message regarding the YAML syntax when running rake db:create, make sure that you dont have any exclamation marks in you password. If so, just put the entire password between quotation marks.

Jon Guenther (10 XP) on

Ran these tonight on a Digital Ocean droplet. Went off without a hitch. Thanks!

Chris Oliver (162,220 XP) on

Awesome to hear! :)

Austin on

Hi, I am stuck at the Github step. I created the key fine and pasted it but when I run 'cat ~/.ssh/' it says 'cat: /home/austin/.ssh/ No such file or directory'

I have minimal background in Linux and this is my first time installing ROR. I tried Googling some solutions but had no luck. Any ideas?

Austin on

Do I need the Github step?

Patrick K on

Austin, I am having this same result with `cat ~/.ssh/` - Ubuntu 16.04... not sure what to do to resolve this either

Mickaelmgd on

when the terminal ask you "Enter file in which to save the key (/home/user/.ssh/id_rsa): rsa" you normally give a name for the file with the key.

just try next command this way :

$ cat "the_name_of_the_file" (because it's saved in the current (home) directory.

Patrick K on

Thank Mickaelmgd. When prompted for a filename, I left it blank and hit enter and everything worked as described after that.

Manuel Ruiz on

git clone ~/.rbenv/plugins/ruby-build
After typing my username (email) and password I get the error "remote: repository not found".

Evert Smit on

Can anybody help me as i want to install Homebrew and ruby on rails on my Macbook OSX 10.8.5 2 months back i still could install homebrew but now it gives the following error.

Last login: Sat Oct 29 15:02:30 on ttys000

mrrobotas-MacBook-Pro:~ mrrobota$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubuserconte..."

curl: (22) The requested URL returned error: 404

mrrobotas-MacBook-Pro:~ mrrobota$

Matthew Welke (1,220 XP) on

This guide is something that would have solved all my problems as I started getting into Rails development. I'll be recommending it to people getting started. Thanks for taking the time to prepare it.

Chris Oliver (162,220 XP) on

Thanks Matt! That means a lot. :D

Arip on

All directions are clear :)

John Monaghan on

The ~/.rvm/scripts/rvm didnt work for me, it was source /usr/local/rvm/scripts/rvm

Erickson Marcos on

Thanks. Didn't have a problem installing ruby on rails on Ubuntu 16.04. Great Job

gary on

Hi All,
Any help would be greatly appreciated, Using MySQL and everything went perfect until the end command, rake db:create then i received the below any idea?
rake db:create
(in /home/gary/myapp)
rake aborted!
LoadError: cannot load such file -- bundler/setup
/home/gary/myapp/config/boot.rb:3:in `<top (required)="">'
/home/gary/myapp/config/application.rb:1:in `<top (required)="">'
/home/gary/myapp/Rakefile:4:in `<top (required)="">'
(See full trace by running task with --trace)

gary on

Yes, ran it again and then ran "rake db:create" received the same error, BTW thank you for answering!

Edy Ken Kiptoo Khanali on

help out .. i got this error ..

Expected string default value for '--rc'; got false (boolean)

Alexandre Ferreira on

It's my favorite guide to use install RoR. Thaks!

Kenneth Halsted on

Just ran everything perfectly. Now I just need to learn how to use Rails.

Peter David Carter on

There are so many coding tutorials out there with missing bits, or bits that half-work. Everything here worked first time. Good job!

Muhammed Rajeef M K on

In case anybody is stuck at rake db:create,

Make sure Inside your databse.yml file, under default: you have the following ( right below pool)

host: localhost
username : your username
password : user's password

Aram Koukia on

When I run "rails server" i see below stuff and doesnt seem to start listening in localhost:3000
Any ideas?

manan yadav on

Whenever I use the rails server command or ANY command, I get this - a deprecated warning, what do I do with this? Any way to fix it? And also, how do we uninstall rails if I used rbenv?

[email protected]:~/Desktop/Web/Rails/myapp$ rails server
/home/username/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/xml_mini.rb:51: warning: constant ::Fixnum is deprecated
/home/username/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/xml_mini.rb:52: warning: constant ::Bignum is deprecated
=> Booting Puma
=> Rails 5.0.1 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
/home/username/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/activesupport-5.0.1/lib/active_support/core_ext/numeric/conversions.rb:138: warning: constant ::Fixnum is deprecated
Puma starting in single mode...
* Version 3.7.0 (ruby 2.4.0-p0), codename: Snowy Sagebrush
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://
Use Ctrl-C to stop

Ruan Kovalczyk on

It is solved in Rails 5.0.2

shashank shandilya on

warning: constant ::Fixnum is deprecated
warning: constant ::Bignum is deprecated

i am getting these errors while executing rake command stackoverflow thread said this is the problem with ruby 2.4.0 can may i know how to downgrade my ruby gem

Mark Mbirira on

thanks, this was useful!

Ronald Brenner on

First of all: Great Guide!
Ive got a little different question going to PageFlow. As this is the best Rails/RoR guide ive found and pretty lost right now i thought i could give it a try here:
I followed every step described here, installed ruby 2.3.1p112 and rails
as i try running rails generate pageflow:install i get following error message:
/home/pageflow/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pageflow-0.11.3/lib/pageflow/global_config_api.rb:17:in `config': Pageflow has not been configured yet (RuntimeError)

since my ruby know how is === 0 maybe one of you ran into the same problem or knows how to solve it? https://uploads.disquscdn.c...

Best regards,

Varun on

Great article, really helped a lot in installing ruby on rails and starting my first application.

Akash Pinnaka (10 XP) on

/etc/nginx/sites-enabled/default is not available for me

Brecon Chalcroft (20 XP) on

Hey Chris, this was great for a beginner like me. Though, the only problem I had was with creating a new user for the postgres database as I get "could not change directory to "/home/whoarse": Permission denied". Not sure where to start with this??

Brecon Chalcroft (20 XP) on

Hey Chris, this was great for a beginner like me. Though, the only problem I had was with creating a new user for the postgres database as I get "could not change directory "/home/whaorse": Permission denied". Not sure where to start with this??

Darpan Patil on

Err:10 xenial/main amd64 Packages
404 Not Found
Ign:12 xenial/main i386 Packages
Ign:13 xenial/main all Packages
Ign:15 xenial/main Translation-en_IN
Ign:16 xenial/main Translation-en
Ign:17 xenial/main amd64 DEP-11 Metadata
Ign:18 xenial/main DEP-11 64x64 Icons
Err:20 xenial/main amd64 Packages
404 Not Found

Dalton N N on


Ernesto Almeda (MTGONS5) on

Probably the easiest Setup I've came across. Good Job!

Matias Tarantini on

I would recommend also installing ruby-dev:
`sudo apt-get install ruby-dev`

k_k on

This has solved my current installation problem and some that I would have definitely run into.
Thanks Chris.

David Timony on

Tried for two full nights to install rails on Ubuntu, this is the first site to explain step by step, so a HUGE Thank You! I'm now on my way up the learning curve.

Eduardo Medina on

Why this way and not taking the packages from repositories? Is it due old versions and incompatibilities?

Tom Lobato on

Usually the distros...
1) doesn`t have an updated version of ruby.
2) installs a system wide ruby. So, for an user to install a gem he would need sudo and also there wouldn`t have gem set isolation.
3) from 2), there is no version management, like rbenv and rvm.

Tom Lobato on

Icing on the cake:
echo 'gem: --no-rdoc --no-ri' >> ~/.gemrc
gem install pry && echo 'alias irb=pry' >> ~/.bashrc

Tom Johnston on

Dude. Epic. But you got me there. Thanks a mill.

Kleberson do Rego Lima on

Excellent tutorial! Thank you Chris!

Kavinda Rochana Abeywickrama (10 XP) on

Such a nice tutorial bro....Great

shishir kumar on

Thank you, I was very worried installing it on ubuntu, your tutorial was so beginner friendly.

Gleydson Tavares on

This is the best Rails installation tutorial. Thanks man.

Renato Medeiros on

Congrats for this nice article!!!

bryan on

Very helpful, thanks. But I got a failure on Ubuntu 16.04.2 when it runs oracle-java7-installer. I already have Java8 installed. Here's the error messages:

[email protected]:~$ sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev nodejs
... (bunch of installs that work, then ...) ...
Setting up oracle-java7-installer (7u80+7u60arm-0~webupd8~1) ...
Downloading Oracle Java 7...
--2017-08-08 14:38:03--
Resolving (,
Connecting to (||:80... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: [following]
--2017-08-08 14:38:03--
Resolving ( 2600:1407:21:28e::2d3e, 2600:1407:21:2ae::2d3e,
Connecting to (|2600:1407:21:28e::2d3e|:443... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: [following]
--2017-08-08 14:38:03--
Connecting to (||:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2017-08-08 14:38:04 ERROR 404: Not Found.

download failed
Oracle JDK 7 is NOT installed.
dpkg: error processing package oracle-java7-installer (--configure):
subprocess installed post-installation script returned error exit status 1
... (more installs that work) ...
update-alternatives: using /usr/bin/nodejs to provide /usr/bin/js (js) in auto mode
Processing triggers for libc-bin (2.23-0ubuntu9) ...
Errors were encountered while processing:
E: Sub-process /usr/bin/dpkg returned an error code (1)

[email protected]:~$ java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)


dibya pahim on

i have got problem in setting up sql.. it says E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution). would you please tell me the solution

valcaro87 on


followed your tutorial and steps were smooth unexpected! :D thanks much!


in my pc while installing rails ial getting this error:
ERROR: Loading command: install (LoadError)
cannot load such file -- zlib
ERROR: While executing gem ... (NoMethodError)
undefined method `invoke_with_build_args' for nil:NilClass


somebody help me please...

Yaroslav Beskhlebnyi on

gem install bundler


hello a question I have my project rvm 2.3.1 and rails 5.1.1 which version should I install, thanks

nonexist (10 XP) on

Thanks for clear road. Before, I tried to install with other guides but couldn't successful. With you, it was not only easy also was pleasure. Now all running. Really thanks.

Jared Truscott on

Thank you so much for this, it was awesome and extremely helpful. One suggestion to help out the impatient (such as myself). Use '--verbose' with the installs where applicable; makes it much easier to know that it's actually working.

Chen-I Chang (10 XP) on

The official rvm is recommnded to be installed by using this repo:

Kumuda Narayan on

hai ,very good blog ..i have a doubt when we install mysql in root and one more command that u r using...sudo apt-get install mysql-server mysql-client libmysqlclient-dev... in u r blog its giving some problem ....then how to create database and create a table and link to a html page and to get ouput on localhost:3000..if any blog u have created please
refer that


Lucas Alastuey on

excellent recipe !!

Wahyu Prakoso (10 XP) on
i had error bundler: command not found: spring

Login or create an account to join the conversation.