Gerenciamento de Caminhos (Path)
Uma das funções mais críticas do Dotfiles é gerenciar sua variável de ambiente $PATH. Isso determina qual versão de uma ferramenta é executada quando você digita um comando.
Aderimos a uma hierarquia estrita para garantir consistência entre macOS e Linux.
A Hierarquia
Da prioridade mais alta (verificada primeiro) para a mais baixa:
Binários Locais (
~/.local/bin)- Prioridade: 1
- Objetivo: Scripts de usuário personalizados, CLI
dote ferramentas instaladas viapipxou outros gerenciadores de pacotes de nível de usuário. - Motivo: Permite substituir ferramentas do sistema ou Homebrew por suas próprias versões.
Binários de Aplicativos (macOS)
- Prioridade: 2
- Objetivo: Binários de aplicativos instalados (por exemplo, VS Code, iTerm).
Runtimes de Linguagem
- Node.js:
~/.node_modules/bin - Go:
~/go/bin - Rust (Cargo):
~/.cargo/bin - Ruby (User Gems):
~/.gem/ruby/bin - Python (Pipx):
~/.local/share/pipx
- Node.js:
Homebrew (
/opt/homebrew/bin)- Prioridade: 3
- Objetivo: Gerenciador de pacotes principal para macOS/Linux.
- Nota: Carregamos o Homebrew propositalmente antes dos caminhos do sistema para permitir a atualização de ferramentas do sistema (como
gitorcurl).
Caminhos do Sistema (
/usr/bin,/bin)- Prioridade: Mais baixa
- Objetivo: Ferramentas padrão do sistema operacional.
- Motivo: Fallback para utilitários fundamentais.
Deduplicação
O Dotfiles deduplica automaticamente seu $PATH enquanto preserva a ordem de precedência. Isso evita que a variável $PATH cresça indefinidamente ao gerar shells aninhados.