Adicionando um novo executável à variável de ambiente PATH?

16

Estou tentando instalar esta biblioteca chamada phantomjs.

As instruções incluem esta linha:

http://code.google.com/p/phantomjs/wiki/BuildInstructions

Por conveniência, copie o bin executável / phantomjs.app / Contents / MacOS / phantomjs para algum diretório em seu PATH.

Como eu faço isso?

atormentar
fonte
Eu não acho que você precisaria se preocupar em colocar isso no seu caminho, pois Bin já está nele. Mas se você quiser, poderá encontrar como fazer isso aqui: troubleshooters.com/linux/prepostpath.htm
@ cksum, mas este é um caminho relativo; não sabemos o que vem antes da "lixeira".
bneely
@neus Sim, mas não há ~ / bin. Os únicos locais são / bin, / usr / bin e / usr / local / bin. Todos os quais já estão no seu caminho. Se você executar, pathverá o seguinte por padrão: PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/binNão examinei o script de instalação do programa em questão, mas seria extremamente improvável que ele fosse instalado em sua própria pasta 'bin' em algum lugar. E você não pode adicionar caminhos relativos ao AFAIK. Estou inclinado a pensar apenas em um erro de digitação de um guia desleixado.
Eu sei que caminhos relativos não podem ser adicionados; Estou afirmando que o caminho da pergunta é relativo, porque não começa com um / ou um ~.
bneely

Respostas:

10

Para descobrir o que está em seu PATH, abrir uma janela Terminal e execute este comando: echo $PATH. A saída é uma lista de diretórios separados por dois pontos, cujo conteúdo você pode executar sem especificar o caminho completo.

Como / usr / bin está no meu caminho, eu posso executar o wcomando simplesmente digitando em wvez de completo /usr/bin/w.

Além disso, você não precisa mover o executável para um dos diretórios PATH listados. Outras opções incluem

  • Deixe o executável onde está e faça o link simbólico de um dos diretórios PATH
  • Adicione um diretório ao seu PATH, definindo-o explicitamente em um script de login para seu shell
bneely
fonte
Por favor, siga o conselho de @ Gerry na outra resposta e faça um link simbólico . É a maneira mais limpa!
cregox 26/09/14
Se, por acaso, você precisar de um diretório completo no diretório PATH, pois existem muitos executáveis ​​aos quais precisa acessar, não há outra opção e é para isso que PATHserve. Atualmente, usamos o ~ / .bash_profile para adicionar ao caminho .
Cregox 26/09/14
20

A maneira mais limpa de conseguir isso seria vincular o binário no diretório / usr / local / bin (que está incluído no PATH por padrão). Pode ser necessário criar esse diretório se ele ainda não existir. Você pode verificar se esses diretórios já estão no seu PATH abrindo Terminal.app e digitando:

echo $PATH

Isso irá gerar uma lista delimitada por dois pontos de todos os diretórios no seu PATH.

Se os diretórios / usr / local ou / usr / local / bin ainda não existirem, execute o seguinte:

sudo mkdir -p /usr/local/bin

Vincule o binário novamente, substitua (/ Applications) pelo caminho para phantomjs.app se este for diferente:

sudo ln -s /Applications/phantomjs.app/Contents/MacOS/phantomjs /usr/local/bin

Agora você não deve ter problemas ao executar phantomjs a partir da linha de comando.

Gerry
fonte
+1,ls /usr/local/bin/ || sudo mkdir /usr/local/bin/ ; sudo ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
Jose Carlos Ramos Carmenates,
3

Voltando à raiz do seu problema, se você estiver instalando o phantomjs, poderá usar o npm para facilitar.

Se você o fizer, poderá executar:

npm install -g phantomjs-prebuilt

que instalará o binário dentro do diretório bin apropriado. (o sinalizador -g indica ao npm que o pacote deve ser instalado globalmente)

ShaneMit
fonte
0

Enquanto o link simbólico do arquivo de outro diretório funciona, eu prefiro copiar / mover o arquivo para usr/local/bin, para não tê-lo "duas vezes".

cp bin/phantomjs.app/Contents/MacOS/phantomjs /usr/local/bin
Niko
fonte