Problema com o $ PATH e o arquivo executável

8

Eu tenho um arquivo executável unix localizado em um diretório que eu gerenciei. Acredito que preciso obter este diretório no meu $PATH para que o executável do UNIX seja executável, mas a documentação do código-fonte diz que preciso editar meu arquivo de configuração do shell para adicionar $home/meme/bin ao caminho do meu shell. p>     

por dr.bunsen 07.07.2011 / 21:30

2 respostas

10

Se você quiser executar um programa digitando seu nome na linha de comando, o executável do programa deve estar em um dos diretórios listados na variável de ambiente PATH . Você pode ver o valor atual da variável assim ( $ é o seu prompt e o valor abaixo é um exemplo):

$ echo $PATH
/home/drbunsen/bin:/usr/local/bin:/usr/bin:/bin

Você tem várias opções; enquanto # 1 e # 2 envolvem conceitos menos avançados, recomendo # 3, o que é menos trabalhoso na prática:

  • Você pode colocar o executável em um diretório que já esteja no seu PATH . Por exemplo, se /home/drbunsen/bin já estiver no seu PATH , você poderá colocar o executável lá. Ou você pode colocar o executável em /usr/local/bin se quiser que ele esteja disponível para todos os usuários.
  • Você pode adicionar o diretório onde o executável está em PATH . Edite o arquivo ~/.profile ( ~/ significa que o arquivo está em seu diretório pessoal) (crie o arquivo se ele não existir). Adicione uma linha como esta:

    PATH=$PATH:$HOME/meme/bin
    

    (Observe que é $HOME , não $home ; unix é geralmente sensível a maiúsculas e minúsculas. Você também pode escrever ~/meme/bin , ~ é sinônimo de $HOME quando está no início de um caminho de arquivo .) A alteração terá efeito na próxima vez que você efetuar login. Você pode digitar esta mesma linha em um terminal, e isso afetará o shell em execução naquele terminal e qualquer programa iniciado a partir dele.

  • A abordagem que eu recomendo é manter o executável com os outros arquivos que fazem parte do programa, em um diretório próprio, mas não alterar PATH . Manter o executável em $HOME/meme tem a vantagem de que, se você quiser remover ou atualizar o programa, tudo estará em um só lugar. Alguns programas até exigem isso para encontrar os arquivos que eles usam. Não alterar PATH tem a vantagem de que instalar e desinstalar programas é menos trabalhos.
    Para obter o melhor dos dois mundos, crie um link simbólico em um diretório no seu PATH , apontando para o executável real . Na linha de comando, execute um comando como este:

    cd ~/bin
    ln -s ../meme/bin/* .
    

    Assumindo que ~/bin já está no seu PATH ; se não for, adicione-o em ~/.profile conforme indicado acima. Escolha outro local, se quiser. Agora, disponibilizar programas é uma questão de criar os links simbólicos; torná-los indisponíveis é uma questão de remover os links simbólicos; e você pode acompanhar facilmente quais programas instalou manualmente e onde eles vivem, observando os links simbólicos.

por 07.07.2011 / 22:34
4

Você pode adicionar o novo diretório ao seu PATH temporariamente , ou seja, pela duração da sessão de terminal atual, com

$ export PATH=$HOME/meme/bin:$PATH

Isso adiciona o novo diretório ao início da variável PATH, mantendo todos os diretórios existentes.

Se você quiser que a modificação tenha efeito permanentemente, em todas as futuras sessões de terminal, você precisará adicionar a linha acima ao arquivo de perfil apropriado em seu diretório pessoal. Dependendo de como sua distribuição está configurada, isso pode ser chamado de ~ / .bash_profile, ~ / .profile ou algo similar.

Note também que você não precisa adicionar um diretório ao seu $ PATH para executar um programa dentro dele, você também pode invocar o programa dando seu caminho completo, por exemplo

$ $HOME/meme/bin/program_name

ou

$ ./program_name

se estiver no diretório atual.

    
por 07.07.2011 / 22:16