How To Install Ruby on Rails on CentOS 7 / RHEL 7

Ruby on Rails is an open-source web framework mainly used for creating highly powerfull websites and applications. It is written in Ruby.
Here, we will see how to install Ruby on Rails on CentOS 7 / RHEL 7 using,
1. rbenv (Recommended)
2. RVM (Ruby Version Manager)
Prerequisites
Install the development packages.
yum install -y git-core zlib zlib-devel gcc-c++ patch readline readline-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison curl sqlite-devel
Install Node.js
We will install Node.js to provide a functionality of CoffeeScript and the Asset Pipeline in Rails, depend on a Javascript runtime.
Here, we will use the Long Term Supported version of Node.js for our Ruby on Rails installation.
If you want to make use of the latest feature, install Node.js v13.x.
curl -sL https://rpm.nodesource.com/setup_12.x | bash yum install -y nodejs
Install Yarn
If you want to install the Yarn package manager, please perform the below steps.
curl -sL https://dl.yarnpkg.com/rpm/yarn.repo -o /etc/yum.repos.d/yarn.repo yum install -y yarn
Install Ruby
Using rbenv (Recommended)
The rbenv provides an easy way to install and manage the versions of Ruby, and it is simpler than RVM.
To install rbenv, you have to run these commands.
cd git clone https://github.com/rbenv/rbenv.git ~/.rbenv echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc echo 'eval "$(rbenv init -)"' >> ~/.bashrc exec $SHELL git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc exec $SHELL
The above commands will install rbenv into your home directory and would set appropriate environment variables.
We will install the latest version of Ruby (v2.7.0). The installation process may take 15 to 20 minutes to complete, so please be patient.
rbenv install 2.7.0
If you want to install or use the different versions of Ruby, run the rbenv install <version> command with a Ruby version rbenv install -l.
Set Ruby v2.7.0 as the default version for all shells.
rbenv global 2.7.0
Check the Ruby version.
ruby -v
Output:
ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux]
Install the bundler.
gem install bundler
Using RVM
RVM stands for Ruby Version Manager. It provides an efficient way to install and manage ruby versions independently. We will use it to install the latest version of Ruby on your system.
Before installing RVM on your system, import public key in your system and then use curl to install RVM in your system.
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB curl -sSL https://get.rvm.io | bash -s stable
After installing RVM, we need to load the RVM environment variable using the below command.
source /etc/profile.d/rvm.sh
With RVM, we can install and manage multiple ruby versions on the single system.
Use the following command to install Ruby 2.7.0.
rvm install 2.7.0
You can also install multiple versions of ruby using the rvm install <version> command.
Run the following command to set version 2.7.0 as the default version of Ruby in case your machine has multiple versions of Ruby.
rvm use 2.7.0 --default
Output:
Using /usr/local/rvm/gems/ruby-2.7.0
Check the current ruby version is used.
ruby -v
Output:
ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux
Install the bundler.
gem install bundler
Install Rails
Use the following command to install the latest stable release of Rails. This process may take a while, be patient with it.
gem install rails
Check the rails version.
rails -v
Output:
Rails 6.0.2.1
You can also install a specific version of rails by using gem install rails –version=<version> command.
Create Test Application
Once you have installed Ruby on Rails, we will now create a test application with MySQL support to validate it.
Install Database
Rails uses sqlite3 as its default database, which is not recommended to use in a production environment where you have high traffic to web applications. You’ll probably want to go with MariaDB or PostgreSQL.
For example, if you want to use MariaDB as your database, install it.
READ: How To Install MariaDB v10.4 on CentOS 7 / RHEL 7
After installing MariaDB, install the development and shared libraries.
yum install -y MariaDB-devel MariaDB-shared
Install the mysql2 extension.
gem install mysql2
Create Rails Application
Create a new application in your home directory.
cd ~ rails new itzgeekapp -d mysql cd itzgeekapp
Edit your application’s database configuration config/database.yml file.
vi config/database.yml
Update the database username and password.
default: &default adapter: mysql2 encoding: utf8mb4 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: root # MySQL User password: password # MySQL Password socket: /var/lib/mysql/mysql.sock
Create the database.
rake db:create
Output:
Created database 'itzgeekapp_development' Created database 'itzgeekapp_test'
Firewall
By default, Rails applications listen on to port 3000. We need to configure a firewall to allow it so that users can access from external machines.
firewall-cmd --permanent --add-port=3000/tcp firewall-cmd --reload
Validate Application
Start your Rails application from your application directory.
rails server -b 0.0.0.0
Output:
=> Booting Puma => Rails 6.0.2.1 application starting in development => Run `rails server --help` for more startup options * Version 4.3.3 (ruby 2.7.0-p0), codename: Mysterious Traveller * Min threads: 5, max threads: 5 * Environment: development * Listening on tcp://0.0.0.0:3000 Use Ctrl-C to stop
If everything is working properly, your Rails application should be running on port 3000.
Visit your Rails application by typing the below URL in your web browser.
OR
You should get the following page.

Conclusion
That’s All. You have successfully installed install Ruby on Rails on CentOS 7 / RHEL 7.