Como eu crio este link simbólico no Unix?

0

Eu quero rodar o gmake quando eu executo o make, então estou criando um link simbólico. Meu gmake está dentro de /usr/local/dist . Minha marca é inisde /usr/ccs/bin .

Este é o comando correto: ln -s /usr/local/dist/gmake /usr/ccs/bin/make

Minha confusão é, eu ainda me importo com /usr/ccs/bin/make ? Eu estou fazendo um link simbólico, então se eu digitar "make" em qualquer lugar, basta rodar o gmake em /usr/local/dist right?

Portanto, o comando deve ser: ln -s /usr/local/dist/gmake make ?

    
por DemiSheep 29.05.2014 / 15:09

3 respostas

1

Você precisa vincular gmake ao PATH antes de make , por exemplo, em código%. Verifique onde /usr/bin está vinculado agora (se for): make

Se type make for anterior no PATH do que o diretório no qual /usr/bin é encontrado, então você pode vinculá-lo com este comando:

ln -s /usr/local/dist/gmake /usr/bin/make

Talvez você tenha que substituir um link existente para fazer. Não tenho certeza se isso é seguro contra as atualizações do pacote.

    
por 29.05.2014 / 15:32
4

Os binários do sistema Symlinking geralmente não são a abordagem correta. Isso causará complicações incalculáveis posteriormente com outro software que espera que certos nomes binários correspondam a determinados comportamentos conhecidos. Parece que o que você quer é um pseudônimo. Na sua execução shell:

alias make=gmake

Agora, toda vez que você digitar make, ele executará o gmake para você. Para tornar isso permanente, adicione essa linha ao arquivo rc do seu shell (por exemplo, ~/.bashrc ).

    
por 29.05.2014 / 15:50
2
mkdir -p ~/bin &&
  ln -s /usr/local/dist/gmake ~/bin/make &&
  PATH=~/bin:$PATH

Dessa forma, você tem controle sobre qual processo (aqueles com PATH , onde você está ~/bin antes de /usr/ccs/bin ) invocariam gmake upon make .

    
por 29.05.2014 / 15:57

Tags