How to Install Ruby on Rails on CentOS 8 / RHEL 8 Last updated on Mar 21, 2020 Raj 5 min read CONTENTS Prerequisites Install Node.js Install Yarn Install Ruby Using rbenv (Recommended) Using RVM Install Rails Firewall Create a Test Application Install Database Create Rails Application Validate Application Conclusion SHARE THIS DOCUMENT IS ALSO AVAILABLE FOR CentOS 7 Debian 10 Debian 9 Ubuntu 18.04 Ubuntu 16.04 Ruby on Rails® also known as Rails, is an open-source web framework written in Ruby. It helps you create highly powerful web sites and applications. Rails is released under MIT license and was first released in 2005 by David Heinemeier Hansson. Here, we will install Ruby on Rails on CentOS 8 / RHEL 8. Prerequisites Before installing Ruby, enable EPEL repository on CentOS 8 / RHEL 8 to get dependent packages. Install the development packages. dnf 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 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 - dnf install -y nodejs Validate the Node.js version with the below command. node -v Output: v12.16.1 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 | sudo tee /etc/yum.repos.d/yarn.repo dnf 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. 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. Verify that rbenv is correctly setup. curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash Output: Checking for `rbenv' in PATH: /home/raj/.rbenv/bin/rbenv Checking for rbenv shims in PATH: OK Checking `rbenv install' support: /home/raj/.rbenv/plugins/ruby-build/bin/rbenv-install (ruby-build 20200224) Counting installed Ruby versions: none There aren't any Ruby versions installed under `/home/raj/.rbenv/versions'. You can install Ruby versions like so: rbenv install 2.2.4 Checking RubyGems settings: OK Auditing installed plugins: OK We will install the latest version of Ruby (v2.7.0). The installation 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 different 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] If you do not want RubyGems to install the documentation, then add the –no-ri and –no-roc in ~/.gemrc file. echo "gem: --no-ri --no-rdoc" > ~/.gemrc Install the bundler. gem install bundler Using RVM RVM (Ruby Version Manager) provides an easy way to install and manage ruby versions independently by automatically downloading its dependencies. Import the public key in your system. gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB Use the curl command to install RVM in your system. curl -sSL https://get.rvm.io | bash -s stable Load RVM environment variables using the below command. source /etc/profile.d/rvm.sh With RVM, you can install and manage multiple Ruby versions on the single system. Use the below command to install Ruby 2.7.0. rvm install 2.7.0 You can also install a different version of Ruby using the rvm install [version] command. Set Ruby v2.7.0 as default in case your system has multiple versions of Ruby. rvm use 2.7.0 --default Output: Using /usr/local/rvm/gems/ruby-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 Install Rails We will install latest version of Rails (v6.0.2.2) with this command. You can also install an older version of Rails by mentioning the version with –v [version] during installation. gem install rails Verify the version of Rails. rails -v Output: Rails 6.0.2.2 Firewall By default, Ruby on Rails listens on port 3000. So, we need to allow TCP 3000 in firewall in order to access it from external machines. firewall-cmd --permanent --add-port=3000/tcp firewall-cmd --reload Create a Test Application To ensure our Ruby on Rails installation went smoothly, we will create a test application with MariaDB support to test it out. Install Database Rails comes with sqlite3 as the default database, which is not recommended to use in a production environment. For high traffic web applications, you’ll probably want to go with MySQL or PostgreSQL. Here, we will install and use MariaDB (v10.3) as a database for our application. READ: Install MariaDB v10.4 On CentOS 8 / RHEL 8. In case, you chose to install MariaDB v10.4 from the MariaDB community, you must install MariaDB-devel and MariaDB-shared packages for Rails. dnf install -y mariadb-server mariadb mariadb-devel systemctl start mariadb systemctl enable mariadb Run mysql_secure_installation command to secure your MariaDB installation. 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 password: password # Replace with MariaDB / MySQL user password socket: /var/lib/mysql/mysql.sock Create the database. rake db:create Output: Created database 'itzgeekapp_development' Created database 'itzgeekapp_test' Validate Application Go to the application directory. cd itzgeekapp Start your rails application. rails server -b 0.0.0.0 Output: => Booting Puma => Rails 6.0.2.2 application starting in development => Run `rails server --help` for more startup options Puma starting in single mode... * 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. http://localhost:3000 OR http://your.ip.add.ress:3000 You should get the following page. Ruby On Rails On CentOS 8 Conclusion That’s All. You have successfully installed on Ruby on Rails on CentOS 8 / RHEL 8. Please share your feedback in the comments section. centos-8 rhel-8 ruby rails rubyonrails Prev Post How To Install Node.js on Debian 10 / Debian 9 Next Post How To Install MongoDB 4.4 / 4.2 / 4.0 on Debian 10 RELATED POSTS How To Install MongoDB On CentOS 8 / RHEL 8 How To Install Graylog on CentOS 8 / RHEL 8 Please enable JavaScript to view the comments powered by Disqus. comments powered by Disqus RECENT POSTS How To Install VirtualBox On Linux Mint 20 How To Backup and Restore Ubuntu & Linux Mint With Timeshift How To Upgrade To Linux Mint 20 From Linux Mint 19 [Detailed Guide] How To Install KVM On Ubuntu 20.04 / Linux Mint 20 How To Install Plex Media Server On Ubuntu 20.04 / Linux Mint 20 How To Install Android Studio on Ubuntu 20.04 TOP POSTS Install xrdp on CentOS 7 / RHEL 7 Install Gnome GUI on CentOS 7 / RHEL 7 Change default network name (ens33) to old “eth0” on Ubuntu… Install μTorrent (uTorrent) on Ubuntu 14.04 How To Configure High-Availability Cluster on CentOS 7 /… How To Install and Configure VNC Server in CentOS 7 / RHEL 7