Guia de Instalacao para Ambientes Linux Versao 2.0 | Marco 2026 | Infraestrutura e DevOps
- Visao Geral
- Ferramentas Instaladas
- Scripts Disponiveis
- Estrategia por Ferramenta e Distro
- Pre-requisitos
- Como Usar
- Comportamento dos Scripts
- Decisoes Tecnicas
- Correcoes e Historico
- Estrutura do Repositorio
- Observacoes Importantes
- Suporte e Manutencao
Este repositorio centraliza os scripts de provisionamento do ambiente de desenvolvimento padronizado do FSLab. O objetivo e garantir que todos os membros da equipe operem com o mesmo conjunto de ferramentas, versoes e configuracoes, independentemente da distribuicao Linux adotada.
Os scripts utilizam exclusivamente os repositorios e pacotes nativos de cada distribuicao, priorizando canais oficiais dos fornecedores. Gerenciadores universais como Snap e Flatpak sao evitados e acionados somente como ultimo recurso, garantindo maior controle sobre versoes e dependencias.
O stack cobre as necessidades de desenvolvimento backend, acesso a banco de dados, testes de API e conteinerizacao:
- Node.js — Runtime JavaScript gerenciado via NVM (Node Version Manager), com suporte a multiplas versoes por projeto
- Visual Studio Code — Editor de codigo principal na versao proprietaria Microsoft com Marketplace completo
- Insomnia — Cliente REST/GraphQL para testes de API
- DataGrip — IDE de banco de dados JetBrains, provisionada via JetBrains Toolbox
- Docker CE — Plataforma de conteinerizacao com Docker Compose e Buildx incluidos
Cada script e destinado a uma familia de distribuicoes especifica. A deteccao da distro e automatica: o script recusa prosseguir caso identifique incompatibilidade com o sistema em execucao.
| Script | Distribuicao alvo | Gerenciador | Fallback |
|---|---|---|---|
install-ubuntu-debian.sh |
Ubuntu 20.04+ / Debian 11+ | APT | .deb direto / JetBrains Toolbox |
install-fedora.sh |
Fedora 37+ | DNF | .rpm direto / JetBrains Toolbox |
install-arch.sh |
Arch, Manjaro, BigLinux, EndeavourOS, Garuda | Pacman | AUR via yay |
Base Debian/Ubuntu: Pop!_OS, Linux Mint, elementaryOS e demais com ID_LIKE=ubuntu ou ID_LIKE=debian.
Base Arch: Manjaro, BigLinux, EndeavourOS, Garuda, ArcoLinux, Artix, CachyOS e demais com ID_LIKE=arch.
| Ferramenta | Ubuntu / Debian | Fedora | Arch / Manjaro / BigLinux |
|---|---|---|---|
| Node.js | NVM (script oficial) | NVM (script oficial) | NVM (script oficial) |
| VS Code | Repo Microsoft .deb |
Repo Microsoft .rpm |
AUR visual-studio-code-bin |
| Insomnia | GitHub Releases .deb |
GitHub Releases .rpm |
Pacman -> AUR insomnia-bin |
| DataGrip | JetBrains Toolbox | JetBrains Toolbox | AUR jetbrains-toolbox |
| Docker CE | Repo oficial Docker | Repo oficial Docker | Pacman docker (repo extra) |
- Usuario com privilegios
sudoconfigurados - Conexao com a internet ativa durante toda a execucao
- Sistema operacional atualizado antes de iniciar o script
Todas as dependencias de sistema necessarias — incluindo curl, wget, git, gnupg, base-devel e bibliotecas graficas — sao instaladas automaticamente na etapa inicial de cada script. Nenhuma preparacao manual previa e exigida ao desenvolvedor.
O helper AUR yay e instalado automaticamente pelo script caso nao esteja presente. Se paru ja estiver instalado, ele sera utilizado no lugar. O processo de compilacao do yay requer git, base-devel e go, todos instalados automaticamente.
git clone https://github.com/fslab/dev-setup.git
cd dev-setupchmod +x install-ubuntu-debian.sh install-fedora.sh install-arch.shUbuntu e Debian
./install-ubuntu-debian.shFedora
./install-fedora.shArch Linux, Manjaro, BigLinux e EndeavourOS
./install-arch.shReinicie o terminal ou recarregue o perfil do shell para ativar as variaveis do NVM:
source ~/.bashrc # bash
source ~/.zshrc # zshO Docker requer logout e login para que as permissoes do grupo docker tenham efeito, eliminando a necessidade de sudo em comandos subsequentes.
O DataGrip deve ser instalado pelo proprio desenvolvedor atraves da interface grafica do JetBrains Toolbox, que e provisionado automaticamente pelo script.
Todos os scripts verificam a existencia de cada ferramenta antes de iniciar sua instalacao. Caso a ferramenta ja esteja presente, a etapa e ignorada com um aviso informativo. Os scripts podem ser executados multiplas vezes sem causar duplicidades ou erros de estado.
Cada script le os campos ID, ID_LIKE e VERSION_CODENAME do arquivo /etc/os-release. Caso haja incompatibilidade, a execucao e interrompida imediatamente com uma mensagem de erro descritiva.
A ordem de preferencia para cada ferramenta e a seguinte:
- Repositorio nativo da distribuicao (APT, DNF ou Pacman)
- Repositorio oficial do fornecedor da ferramenta
- Download direto do pacote binario (
.deb,.rpmou tarball via GitHub Releases) - AUR exclusivamente no Arch Linux e derivados
| Prefixo | Significado |
|---|---|
[✔] |
Operacao concluida com sucesso |
[!] |
Aviso informativo, execucao continua |
[»] |
Etapa em andamento |
[✘] |
Erro fatal, execucao interrompida |
Um resumo com as versoes instaladas e exibido ao final de cada execucao bem-sucedida.
O script Arch autentica o sudo uma unica vez no inicio e renova o cache automaticamente em background a cada 60 segundos. Isso evita timeout de senha durante etapas longas como compilacao de pacotes AUR (yay, visual-studio-code-bin).
O pacote code disponivel nos repositorios oficiais do Arch e o build open-source (equivalente ao VSCodium). Ele nao inclui as extensoes proprietarias da Microsoft nem acesso completo ao Marketplace oficial. Para o fluxo de desenvolvimento do FSLab, o script instala visual-studio-code-bin via AUR — a versao binaria proprietaria identica a distribuida pela Microsoft para outras distros.
Caso o script detecte o build OSS ja instalado, ele remove o pacote code e instala a versao correta automaticamente.
O repositorio APT/RPM da Kong (packages.konghq.com/public/insomnia) foi descontinuado pela propria Kong e nao recebe mais atualizacoes. A unica fonte oficial atual e o GitHub Releases do repositorio Kong/insomnia. O script detecta automaticamente a versao mais recente pela API do GitHub (tag core@x.x.x) e monta a URL do pacote correspondente.
O NVM usa variaveis internas como PROVIDED_VERSION que ficam propositalmente sem valor em determinados fluxos. Com set -u (nounset) ativo, o bash encerra o script ao encontrar essas variaveis. O script desativa nounset apenas durante o carregamento e uso do NVM, restaurando a flag imediatamente apos.
O campo VERSION_CODENAME do /etc/os-release e utilizado no lugar de lsb_release -cs. Em distros derivadas (Pop!_OS, Linux Mint), lsb_release -cs retorna o codename da propria distro, que nao existe no repositorio Docker. VERSION_CODENAME sempre contem o codename upstream correto (ex: noble, jammy).
A extracao do tarball usa um diretorio temporario isolado criado com mktemp -d em vez de descompactar direto em /tmp. O find sobre /tmp cruza com diretorios privados do systemd (systemd-private-*) que retornam Permission denied, o que com set -e ativo encerra o script antes de encontrar o binario.
- Arch: adicionado suporte explicito a Manjaro, BigLinux e EndeavourOS na deteccao de distro
- Arch: VS Code alterado para
visual-studio-code-bin(AUR) como fonte primaria - Arch: deteccao e substituicao automatica do build OSS caso ja instalado
- Arch: sudo keepalive em background para evitar timeout durante compilacao AUR
- Arch: atualizacao do keyring (
archlinux-keyring/manjaro-keyring) antes dopacman -Syu - Arch:
set -euo pipefailcomset +useletivo ao redor do NVM - Arch/Ubuntu:
mktemp -dpara extracao do JetBrains Toolbox, corrigindo falha com diretoriossystemd-private-*em/tmp - Ubuntu:
sudo mkdir -p /etc/apt/keyringsadicionado antes da instalacao do VS Code - Ubuntu: Insomnia migrado do repositorio APT da Kong (descontinuado) para GitHub Releases
- Ubuntu: Docker corrigido para usar
VERSION_CODENAMEeUPSTREAM_DISTROcorretos em distros derivadas
dev-setup/
|-- install-ubuntu-debian.sh
|-- install-fedora.sh
|-- install-arch.sh
`-- README.md
- Nao execute os scripts como
root. Utilize um usuario comum com privilegiossudo. - O NVM e instalado no perfil do usuario, nao globalmente. Cada membro da equipe deve executar o script individualmente em sua conta.
- A compilacao de pacotes AUR (
yay,visual-studio-code-bin) pode levar varios minutos dependendo do hardware. Nao interrompa o processo. - Licencas de produtos JetBrains (DataGrip) devem ser gerenciadas conforme o acordo de licenciamento vigente no FSLab.
- Em ambientes com proxy corporativo, configure as variaveis
http_proxyehttps_proxyantes de executar os scripts.
Em caso de falha na execucao ou necessidade de adicionar novas ferramentas ao stack, abra uma issue no repositorio ou entre em contato com o time de Infraestrutura do FSLab.
Mantenedor: Time de Infraestrutura e DevOps — FSLab Repositorio: https://github.com/fslab/dev-setup