O Que É um Link Simbólico? Um Ponteiro para Outro Caminho
Um link simbólico, ou symlink, é um arquivo especial que aponta para outro arquivo ou diretório pelo seu caminho, atuando como um atalho transparente.
Um link simbólico é um pequeno arquivo cujo conteúdo é apenas um caminho para outra localização. Quando você acessa o symlink, o SO o segue até o alvo. Symlinks aparecem no CI para coisas como gerenciadores de versão de ferramentas e layouts de node_modules, e têm peculiaridades que vale a pena conhecer, especialmente em torno de cache e arquivamento.
O que é um symlink
Um symlink armazena um caminho para um alvo. Ler ou escrever através do symlink redireciona para esse alvo. Se o alvo for movido ou excluído, o symlink fica "pendurado" (dangling) e aponta para lugar nenhum.
Criando um
Você cria um symlink com ln -s target linkname. A flag -s significa simbólico; sem ela você criaria um hard link, que é algo totalmente diferente.
Symlink versus hard link
- Um symlink aponta para um caminho e pode cruzar sistemas de arquivos.
- Um symlink pode ter como alvo um diretório; um hard link geralmente não pode.
- Se o alvo for excluído, um symlink fica pendurado, mas um hard link ainda funciona.
Onde symlinks aparecem
Gerenciadores de versão como o nvm fazem symlink da toolchain ativa; layouts de pacotes às vezes fazem symlink de dependências compartilhadas. Eles permitem que muitas referências compartilhem uma localização real sem copiar.
Symlinks no CI
Cache e arquivamento de artifacts podem lidar mal com symlinks, seja seguindo-os e duplicando dados, seja quebrando-os para que fiquem pendurados. Quando um diretório em cache contém symlinks, verifique se sobrevivem à restauração do cache, ou builds podem falhar misteriosamente.
Links em runners gerenciados
Nos runners Latchkey, symlinks se comportam como em qualquer sistema de arquivos Linux. Se o seu cache de dependências depende de symlinks, confirme que o cache os preserva para que builds restaurados resolvam para os alvos corretos.
Principais conclusões
- Um link simbólico é um arquivo que aponta para outro caminho, como um atalho.
- Crie um com
ln -s; ele fica pendurado se o alvo desaparecer. - No CI, cache e arquivamento podem quebrar symlinks, então verifique se sobrevivem.