Por que o Linux é a casa do desenvolvedor
O servidor já é Linux
Aqui vai um fato que muda a forma como você deve pensar no seu notebook: quase toda aplicação Rails do mundo roda em Linux em produção. Quando você faz deploy para um VPS, para o Heroku, para o Fly.io ou para um cluster Kubernetes, seu código roda em uma máquina Linux.
Desenvolver no Linux deixa você o mais perto possível da produção: o mesmo gerenciador de pacotes, a mesma estrutura de arquivos, o mesmo modelo de processos, o mesmo shell. Os erros que você encontra localmente são os mesmos que vai encontrar no servidor: e você já vai saber corrigi-los.
Este curso monta um ambiente de desenvolvimento Rails completo no Ubuntu (e em outras distribuições baseadas em Debian). Se você usa Fedora ou Arch, os conceitos são idênticos; só mudam os comandos do gerenciador de pacotes.
O que você vai montar
Um ambiente de desenvolvimento é o conjunto de ferramentas que permite escrever, rodar, testar e depurar código. Ao final deste curso você terá:
+-------------------------------------------------------+
| SEU AMBIENTE DE DESENVOLVIMENTO LINUX |
| |
| +----------------+ +--------------------------+ |
| | Terminal | | Gerenciador de pacotes | |
| | (bash ou zsh) | | (apt) | |
| +----------------+ +--------------------------+ |
| |
| +----------------+ +--------------------------+ |
| | Ferramentas de | | Gerenciador de versões | |
| | build (build- | | do Ruby (rbenv + | |
| | essential) | | ruby-build) | |
| +----------------+ +--------------------------+ |
| +--------------------------+ |
| +----------------+ | Banco de dados | |
| | Editor de | | (PostgreSQL) | |
| | código (VS Code)| +--------------------------+ |
| +----------------+ |
| +--------------------------+ |
| | Rails + Puma | |
| +--------------------------+ |
+-------------------------------------------------------+
Cada peça tem uma função:
| Ferramenta | Função | Equivalente no macOS |
|---|---|---|
apt |
Instala software do sistema | Homebrew |
build-essential |
Compiladores (gcc, make) que constroem o Ruby e gems nativas | Xcode Command Line Tools |
rbenv |
Instala e alterna versões do Ruby por projeto | O mesmo |
| PostgreSQL | O banco de dados com que o Rails conversa | O mesmo |
| VS Code | Onde você escreve código | O mesmo |
Qual Linux?
O Linux vem em distribuições ("distros"): o mesmo kernel, com empacotamento e padrões diferentes.
| Distribuição | Gerenciador de pacotes | Use se… |
|---|---|---|
| Ubuntu / Debian / Pop!_OS / Mint | apt |
Você quer mais tutoriais e menos surpresas (este curso) |
| Fedora | dnf |
Você gosta de pacotes mais novos e não se importa em traduzir comandos |
| Arch / Manjaro | pacman |
Você gosta de configurar tudo por conta própria |
As versões LTS ("Long Term Support") do Ubuntu são a escolha mais segura para desenvolvimento: recebem atualizações por cinco anos e a maioria dos tutoriais de Linux tem elas como alvo. Se está escolhendo hoje, pegue a LTS mais recente.
Verifique o que você tem
Abra um terminal (Ctrl + Alt + T no Ubuntu) e rode:
lsb_release -a
uname -m
Você deve ver algo como:
Distributor ID: Ubuntu
Description: Ubuntu 24.04.1 LTS
Release: 24.04
Codename: noble
x86_64
Duas coisas importam aqui: a versão (24.04 ou mais nova é o ideal) e a arquitetura (x86_64 ou aarch64). As duas funcionam bem com Rails.
Como este curso está organizado
- Atualizar o sistema e instalar as ferramentas de build com
apt - Ficar à vontade com o shell (bash vs zsh)
- Instalar o Ruby com
rbenv - Instalar e configurar o PostgreSQL
- Configurar o VS Code
- Criar e rodar sua primeira app Rails
Todos os comandos deste curso foram testados no Ubuntu 24.04. Digite-os em vez de copiar: seus dedos aprendem mais rápido que seus olhos.
E o Mac ou o Windows?
Você pode, e a plataforma tem cursos para os dois. Mas o Linux tem três vantagens concretas para quem desenvolve em Rails:
- Paridade com produção: nenhuma surpresa na hora do deploy.
- Velocidade: sem camada de virtualização ou WSL no meio.
- Transparência: tudo é um arquivo ou um processo que você pode inspecionar. Ao aprender Linux, você aprende como servidores funcionam.
Vamos montar sua cozinha.
Continue com a aula 2
apt e build-essential: gerenciador de pacotes e compiladores
Usa apt e sudo para atualizar o sistema e instalar o build-essential e as bibliotecas do Ruby.
Com uma conta grátis você também tem os quizzes, seu progresso e suas anotações, e a discussão.