Skip to content
Latchkey

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".

Guias relacionados