É possível adicionar um único executável, em vez de um diretório inteiro, ao meu $ PATH?

7

Eu tenho o XAMPP instalado no OSX e, por padrão, ele preends o caminho para seu próprio diretório bin (cheio de vários utilitários) para minha variável $PATH :

# Add path to XAMPP PHP version
export XAMPP_PHP=/Applications/XAMPP/xamppfiles/bin
export PATH="$XAMPP_PHP:$PATH"
Infelizmente, um de seus utilitários é chamado de HEAD , que graças ao sistema de arquivos insensitivo a maiúsculas e minúsculas do OSX, colide com o Unix% Comandohead . O HEAD do XAMPP é completamente não relacionado a head (acho que ele emite uma solicitação HTTP HEAD).

Claro, eu quero usar o head e o XAMPP, então eu simplesmente mudei a ordem da variável do caminho:

export PATH="$PATH:$XAMPP_PHP"

Isso me permite usar head , mas agora há uma colisão entre a versão do PHP do XAMPP (por exemplo, 5.5) e a versão pré-instalada do PHP que vem com o OSX (5.3). Como o caminho para o 5.3 vem primeiro, ele acaba tendo precedência.

Meu plano para uma solução hackiana era prefixar o caminho completo do arquivo + nome apenas a versão do PHP do XAMPP , depois acrescentar o restante do caminho após $PATH :

export PATH="/Applications/XAMPP/xamppfiles/bin/php:$PATH:$XAMPP_PHP"

Isso não parece funcionar. Quando eu reiniciar o bash e verificar php -v , ele ainda está no PHP 5.3 - a versão interna. É possível adicionar um caminho de arquivo específico para $PATH ?

    
por alexw 15.04.2016 / 02:56

1 resposta

7

Supondo que echo "$PATH" mostre /usr/local/bin em seu caminho e que esse seja seu laptop pessoal:

Crie um symlink em /usr/local/bin que aponte para o executável desejado.

ln -s /Applications/XAMPP/xamppfiles/bin/php /usr/local/bin/php

Se for um computador compartilhado e você não quiser afetar outros usuários, recomendo configurar uma extensão personalizada em seu PATH em ~/.bash_profile . Eu tenho um eu mesmo:

$ grep PATH ~/.bash_profile 
export PATH="$PATH:$HOME/.bin"

Em seguida, posso colocar meus links simbólicos, scripts, etc. em ~/.bin e eles serão executados como esperado (sem substituir os comandos do sistema que existem anteriormente em meu PATH).

Eu coloquei o . no início de .bin , então não preciso ver o diretório ao navegar no Finder.

    
por 15.04.2016 / 03:13

Tags