Ambiente de desenvolvimento Ruby on Rails usando o Windows + WSL
A primeira barreira de aprendizado do Ruby é a dificuldade de instalar o ambiente de desenvolvimento na computador do desenvolvedor que usa Windows. Isso é especialmente mais crítico no caso de iniciantes.
Algumas dependências populares do Ruby, e do Rails, tem um historico de complicações para instalar no Windows. O que levava a muito programador mais experientes orientar aos iniciantes a simplesmente instalar um Linux. E, aceitar como taxa pra usar Ruby. ¯\(ツ)/¯
Com o advento do Windows Subsystem for Linux é possível ter um Linux rodando no Windows. Resolvendo a necessidade de migrar para outro Sistema Operacional.
Nesse texto eu procuro explicar como instalar o ambiente de desenvolvimento Ruby on Rails no Windows usando o WSL. A alternativa é um dual-boot ou uso de ferramentas de vitualização que exige a instalação e configuração do Sistema Operacional Linux.
Tem esse canal do YouTube que tem o video How I Run Rails 7 On Windows 11 | Ruby On Rails WSL With GUI Setup Guide. Mas, o lance de rodar as coisas como root me incomodou ao ponto de me motivar a escrever esse texto.
O resumo do processo é:
- Habilitar o WLS no Windows
- Instalar o Windows Terminal
- Instalar uma distribuição Linux(aqui eu vou usar o Debian)
- Instalar as dependências do Sistema Operacional
- Configurar o PostgreSQL
- Instalar o RVM
- Pronto \o/
Habilitar o WLS no Windows
- Clique no botão iniciar e busque por “Ativar ou Desativar recursos do Windows”
- Habilite as seguintes funcionalidades:
- Virtual Machine Platform
- Windows Hypervisor Platform
- Windows Subsystem for Linux
- Reinicie o computador
- Abra o terminal e define a versão padrão do WSL para a 2
$ wsl.exe --set-default-version 2
Instalar o Windows Terminal
Acessa a Windows Store e busca por “Windows Terminal”. Que é um emulador de terminal que vou usar pra acessar a parte Linux do sistema.
Instalar uma distribuição Linux(aqui eu vou usar o Debian)
Depois que o WSL é instalado você tem disponíveis algumas distribuições Linux na Window Store como aplicativos.
- Acesse a Windows Store e busca por Debian
- Clique no botão de instalar
- Aguarde terminar de baixar e instalar o sistema
- Clique em abrir. Ele vai abrir usando o Windows Terminal
- Aqui pode mostrar um erro
0x800701bc
. Basta seguir as instruções de acessar o link https://aka.ms/wsl2kernel, instalar e reiniciar a máquina. - Ao abrir o console com o Debian ele vai pedir pra criar um usuário e senha.
- Depois de confirmar a senha ele vai finalizar a instalação e te deixar no bash. Nesse momento você já tem um Linux pronto pra usar. \o/
Instalar as dependências do Sistema Operacional
Com o sistema operacional vitualizado, agora precisamos das ferramentas de desenvolvimento. Que por sua vez possuem algumas dependências. Nessa sessão eu pretento colocar todas as dependências de uma vez. Caso escolha outra Distribuição Linux esse passo aqui vai ser diferente.
Dependências:
Ferramenta | Depende do pacote |
---|---|
RVM | gpg, gnupg2, curl, git |
PostgreSQL | postgresql |
Gem pg | libpq-dev |
Configurar o PostgreSQL
O Postgres foi instalado no passo de dependências. Eu costumo configurar a versão de desenvolvimento da aplicação para usar o nome do usuário logado na máquina como usuário do Postgres. Assim, evita de compartilhar senha entre a equipe. Pra isso, basta criar um usuário com o mesmo nome do usuário logado.
Criar o usuário e dar permissão
E, para criar a base e carregar fixtures é necessário que o usuário tenha permissão SUPERUSER.
O whoami
vai passar o nome do usário logado para a query no psql
.
Mudar o encoding padrão para UTF8
Encoding é um problema recorrente. Especialmente pra quem vem de um idioma com acentuação. Facilita muito a vida se você mudar o encoding padrão do PostgreSQL pra UTF8 e seguir a vida.
Instalar o RVM
De acordo com a página de instalação do RVM:
Pra evitar erro de SSL com o RubyGems instala esses certificados e atualiza o RubyGems
Agora, instala o RVM:
Ao tentar acessar o RVM vai dizer que não existe. Abre uma aba nova do Window Terminal que vai estar lá.
É que precisa executar novamente o ~/.bashrc
. Por isso que funciona na nova aba.
Instalar uma versão do Ruby
Esse passo depende do projeto que você está trabalhando. No exemplo, aqui estou usando a versão 3.2.2
O RVM vai tentar instalar qualquer dependência do sistema operacional que ainda não esteja instalada.
Se você abriu uma nova aba do Window Terminal, vai precisar digitar a senha de sudo
novamente.
Pronto \o/
A partir daqui o ambiente está pronto pra clonar o projeto com o git, instalar dependências específicas como NodeJS, criar a base de dados, as tabelas, subir as fixtures e rodar o servidor.
- Faltou alguma coisa? Alguma sugestão de melhoria?
- Sabe alguma forma mais fácil de lidar com o erro de SSL da RubyGems?
- Alguma forma de instalar o PostgreSQL já em UTF8?
- Precisa de um projeto para testar a configuração do ambiente Ruby on Rails?