All threads / Setup Ubuntu 16.04 Xenial Xerus Discussion
Ask A Question


You’re not receiving notifications from this thread.

Setup Ubuntu 16.04 Xenial Xerus Discussion

Chris Oliver asked in General
Thiago Martins ·

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

dudeman ·


Thiago Martins ·

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

Some insights:


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!

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

pg gem looks broken on xenial

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"?

did you get any solution for that?

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

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.)

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.

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

Nope, just overlooked that! :)

Anand Chavan ·

You got great article!

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

Anand Chavan ·

Awesome, Thanks for quick reply!

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.

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

Einars vilnis ·

Thank you very helpful

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

Paul Waweru ·

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

May help somebody.

Marcelo Brantes ·

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

rodorgas ·


dudeman ·

Just curious, why not default to `rvm` ?

Dillon Burnett ·

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

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 ·

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

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

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

subham gupta ·

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 ·

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 ·

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

Joseph Bou Saada ·

can u explain more. I am having same issue

Ricardo Lopes ·

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 ·

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

johnfisherman ·

Epic. Many thanks.

Adrian Beauregard ·

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.

cahyaef@Lumos:~/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.

cahyaef@Lumos:~/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

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 ·

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!

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 ·

thanks for this. very helpful

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

prashant soni ·

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 .

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!

Same problem here.

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 ·

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 ·

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.

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

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?

Do I need the Github step?

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

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.

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

Manuel Ruiz ·

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

Evert Smit ·

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$

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.

Thanks Matt! That means a lot. :D

All directions are clear :)

John Monaghan ·

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

Erickson Marcos ·

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

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)

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

Edy Ken Kiptoo Khanali ·

help out .. i got this error ..

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

Alexandre Ferreira ·

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

Kenneth Halsted ·

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

Peter David Carter ·

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 ·

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 ·

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

manan yadav ·

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?

username@name:~/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 ·

It is solved in Rails 5.0.2

shashank shandilya ·

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 ·

thanks, this was useful!

Ronald Brenner ·

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,

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

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

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??

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 ·

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 ·


Ernesto Almeda (MTGONS5) ·

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

Matias Tarantini ·

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

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

David Timony ·

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 ·

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

Tom Lobato ·

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 ·

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

Tom Johnston ·

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

Kleberson do Rego Lima ·

Excellent tutorial! Thank you Chris!

shishir kumar ·

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

Gleydson Tavares ·

This is the best Rails installation tutorial. Thanks man.

Renato Medeiros ·

Congrats for this nice article!!!

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:

me@myhost:~$ 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)

me@myhost:~$ 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 ·

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 ·


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 ·

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

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 ·

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.

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

Kumuda Narayan ·

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 ·

excellent recipe !!

i had error bundler: command not found: spring

How it worked for me:

FYI: Instead of

sudo -u postgres createuser chris -s

I used:

sudo -i -u postgres createuser chris -s

Also, in the config/database.yml file, under pool:5, add

  host: localhost
  username: pguser
  password: pguser_password

(pguser) + (pguser_password) is the username and password you created. Also add this to the "test" envrionment section.

And finally if rails server doesn't work, if you're using a Virtual Server like Digital Ocean, use:

rails server --binding=server_public_IP

where (server_public_IP) is the server's IP address. Then use http://server_public_IP:3000 in your web browser.

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.
getting same error how to update cofig/database.

Join the discussion

Want to stay up-to-date with Ruby on Rails?

Join 68,326+ developers who get early access to new tutorials, screencasts, articles, and more.

    We care about the protection of your data. Read our Privacy Policy.

    logo Created with Sketch.

    Screencast tutorials to help you learn Ruby on Rails, Javascript, Hotwire, Turbo, Stimulus.js, PostgreSQL, MySQL, Ubuntu, and more. Icons by Icons8

    © 2022 GoRails, LLC. All rights reserved.