We will be setting up a Ruby on Rails development environment on Ubuntu 14.04.
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.
Note: Before going to start installation please make sure that you have root privileges or not.
Installing Ruby Dependencies:The first step is to install some dependencies for Ruby.
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
Next we’re going to be installing Ruby using rvm. You can install from source as well.
Install Ruby Using RVM:
sudo apt-get install libgdbm-dev libncurses5-dev automake libtool bison libffi-dev gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 curl -sSL https://get.rvm.io | bash -s stable source ~/.rvm/scripts/rvm rvm install 2.2.3 rvm use 2.2.3 --default ruby -v
curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - sudo apt-get install -y nodejs
We can use various Rails versions with each Ruby by creating gemsets and then installing Rails within those using the normal gem commands:
rvm gemset create starterapp rvm 2.2.3@starterapp gem install rails -v 4.2.4
- “rvm gemset create starterapp” command is to create a gemset name called starterapp.
- “rvm 2.2.3@starterapp” command is to specify Ruby version and our new gemset.
- “gem install rails -v 4.2.4” command is to install specific Rails version.
Now that you’ve installed Rails, you can run the rails -v command to make sure you have everything installed correctly:
rails -v # Rails 4.2.4
The last step is to install Bundler.
gem install bundler
Configuring Git:(If you already installed git please ignore this step)
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 user.name "YOUR NAME" git config --global user.email "YOUR@EMAIL.com" ssh-keygen -t rsa -b 4096 -C "YOUR@EMAIL.com"
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
Once you’ve done this, you can check and see if it worked:
ssh -T email@example.com
You should get a message like this:
Hi excid3! You've successfully authenticated, but GitHub does not provide shell access.
Setting Up MySQL:
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.If you’re coming from PHP, you may already be familiar with MySQL.
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.
Setting Up PostgreSQL:For PostgreSQL, we’re going to add a new repository to easily install a recent version of Postgres.
sudo sh -c "echo 'deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main' > /etc/apt/sources.list.d/pgdg.list" wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | 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 vijay with your username.
sudo -u postgres createuser vijay -s # If you would like to set a password for the user, you can do the following sudo -u postgres psql postgres=# \password vijay
Final Steps: 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
Note: Sentence start’s with ‘#’ are comments not commands.
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.
Thanks for reading this Article. If you have any questions, feel free to post your comments and we’ll get back to you.