O Que É a Variável PATH? Onde o Shell Encontra Programas
PATH é uma variável de ambiente que guarda uma lista de diretórios que o shell pesquisa, em ordem, para encontrar o programa por trás de um comando que você digita.
Quando você digita node ou pytest, o shell não sabe magicamente onde aquele programa mora. Ele percorre os diretórios listados na variável PATH, da esquerda para a direita, e executa o primeiro executável correspondente que encontra. Um PATH mal configurado é uma das razões mais comuns para um step de CI morrer com "command not found".
Como o PATH funciona
PATH é uma lista de diretórios separada por dois-pontos (separada por ponto-e-vírgula no Windows). Para cada nome de comando isolado, o shell verifica cada diretório em ordem e roda o primeiro executável que corresponde. Se nenhum corresponder, você recebe "command not found".
Lendo e alterando o PATH
Você pode imprimi-lo com echo "$PATH". Para adicionar um diretório, você o prepende ou anexa, tipicamente escrevendo export PATH="/new/dir:$PATH". Prepender faz seu diretório vencer sobre os do sistema; anexar o torna um fallback.
Por que a ordem importa
- O primeiro match vence, então diretórios anteriores ofuscam os posteriores.
- Prepender um diretório de ferramenta permite sobrescrever uma versão do sistema.
- Uma entrada duplicada ou errada pode rodar silenciosamente o binário errado.
PATH em CI
Runners de CI configuram o PATH para que toolchains instaladas sejam alcançáveis. Quando você instala uma ferramenta em um local customizado, precisa adicioná-la ao PATH para que steps posteriores a encontrem, ou o job falha com "command not found" mesmo que a instalação tenha tido sucesso.
Persistindo o PATH entre steps
No GitHub Actions, exportar o PATH em um step run: não carrega para o próximo, porque cada step é um shell novo. Você anexa o diretório ao arquivo especial $GITHUB_PATH em vez disso, o que o torna disponível para todos os steps seguintes.
PATH em runners gerenciados
Os runners Latchkey vêm com toolchains comuns já no PATH, então a maioria dos jobs encontra suas ferramentas sem configuração. Para binários customizados que você instala durante um job, lembre-se de que mudanças no PATH são por step, a menos que você as persista.
Principais conclusões
- PATH lista os diretórios que o shell pesquisa para resolver um nome de comando.
- O primeiro executável correspondente vence, então a ordem dos diretórios decide qual binário roda.
- Em CI, um PATH errado ou não persistido é uma causa principal de "command not found".