Install Ruby On Rails on
A guide to setting up a Ruby on Rails development environment
This will take about 30 minutes.
In this guide, we will be installing Ruby on Rails on Windows 10.
We're going to use the Windows Subsystem for Linux (WSL) to accomplish this. This allows you to install a Linux distribution natively on Windows without a virtual machine.
Ruby on Rails will always be deployed to a Linux server, so it's best for us to use the same for development.
Installing the Windows Subsystem for Linux
Windows allows you to run various Linux operating systems inside of Windows similar to a virtual machine, but natively implemented. We'll use this to install Ruby and run our Rails apps.
You must be running Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11.
Open Powershell and run:
wsl --install -d Ubuntu
Reboot your computer to finish the installation.
Once initial setup is finished, you will be prompted to create a username and password for your Ubuntu install.
You can search for "Ubuntu" in the Windows Start Menu anytime to open the Ubuntu terminal.
Congrats! You now have Ubuntu installed on Windows with WSL. You'll use this to run your Rails server and other processes for development.
Choose the version of Ruby you want to install:
The first step is to install dependencies for compiling Ruby. Open your Terminal and run the following commands to install them.
sudo apt-get update sudo apt-get install git-core zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev
Next we're going to be installing Ruby using a version manager called ASDF.
The reason we use ASDF over rbenv, rvm or others is that ASDF can manage other languages like Node.js too.
asdf is a simple two step process. First you install
asdf, and then add it to your shell:
cd git clone https://github.com/excid3/asdf.git ~/.asdf echo '. "$HOME/.asdf/asdf.sh"' >> ~/.bashrc echo '. "$HOME/.asdf/completions/asdf.bash"' >> ~/.bashrc echo 'legacy_version_file = yes' >> ~/.asdfrc echo 'export EDITOR="code --wait"' >> ~/.bashrc exec $SHELL
asdf plugin add ruby asdf plugin add nodejs
To install Ruby and set the default version, we'll run the following commands:
asdf install ruby 3.2.1 asdf global ruby 3.2.1 # Update to the latest Rubygems version gem update --system
Confirm the default Ruby version matches the version you just installed.
which ruby #=> /home/username/.asdf/shims/ruby ruby -v #=> 3.2.1
asdf install nodejs 18.15.0 asdf global nodejs 18.15.0 which node #=> /home/username/.asdf/shims/node node -v #=> 18.15.0 # Install yarn for Rails jsbundling/cssbundling or webpacker npm install -g yarn
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 ed25519 -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.
Choose the version of Rails you want to install:
gem install rails -v 18.104.22.168
Now that you've installed Rails, you can run the
rails -v command to make sure you have everything installed correctly:
rails -v # Rails 22.214.171.124
If you get a different result for some reason, it means your environment may not be setup properly.
Setting Up PostgreSQL
For PostgreSQL, we're going to add a new repository to easily install a recent version of Postgres.
sudo apt install postgresql libpq-dev sudo service postgresql start
You'll need to start postgresql each time you load your WSL environment.
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
Let's create your first Rails application on Windows!
rails new myapp -d postgresql #### Or if you want to use MySQL rails new myapp -d mysql # Then, 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!
Getting an "Access Denied" error?
If you received an error that said
Access denied for user 'root'@'localhost' (using password: NO) then you need to edit the
config/database.yml file to match the database username and password.
Install VS Code on Windows and install the WSL extension. This will allow you to edit code in Windows but run commands and extensions in WSL. Read more about Developing in WSL.
That's it! Let us know in the comments below if you run into any issues or have any other protips to share!