Altera o diretório padrão de um programa específico sem alterar seu caminho

3

Eu tenho dois programas g++ localizados em /usr/local/bin/ e /usr/bin/

Eu gostaria de ter o padrão g++ em /usr/local/bin/ . No entanto, eu não quero mudar minha variável de ambiente PATH porque para algum outro programa. Eu preferiria a versão em /usr/bin/ do que em /usr/local/bin/ . Isso é possível?

Para deixar claro:

Eu quero que meu padrão para o meu programa seja:

g++ em /usr/local/bin/ em python em /usr/bin/

Mas em /usr/local/bin/ e /usr/bin/ , ambos os programas existem, o que devo fazer?

    
por user40780 10.09.2015 / 04:10

1 resposta

7

Opção 1: criar uma pasta de substituição em seu caminho

Se você precisar que esses programas sejam chamados indiretamente (por exemplo, por algum aplicativo iniciado pelo gerenciador de janelas chamará g++ ou python , por exemplo), você deve editar seu caminho. Você poderia simplesmente adicionar uma nova pasta ao início do caminho no seu ~/.bashrc :

export PATH=/home/username/.bin:$PATH

e coloque dois links simbólicos para apontar para os programas apropriados:

ln -s /usr/bin/python /home/username/.bin/python
ln -s /usr/local/bin/g++ /home/username/.bin/g++

Dessa forma, assim que seu ~/.bashrc for adequadamente originado (faça logout e, em seguida, faça login novamente), tudo deverá encontrar os python e os g++ corretos.

Opção 2: use um alias para o bash seguir

Se você está procurando uma solução mais leve, e se apenas chamar o python diretamente do bash , você pode configurar um alias no seu ~/.bashrc :

alias python=/usr/bin/python

Opção 3: basta alterar o nome de python em / usr / local / bin /

Ou você pode apenas renomear /usr/local/bin/python para /usr/local/bin/python-alternate ou algo assim. Eu não sugeriria renomear as coisas em /usr/bin , pois pelo menos no Debian que é controlado por um gerenciador de pacotes. Geralmente /usr/local/bin não é.

Opção 4: Especifique o compilador correto no Makefile

Se o seu fluxo de trabalho usar make ou algum aplicativo mais amplo que chame make (como autotools ou cmake ), quase sempre haverá uma opção para especificar seu compilador. Por exemplo, o seu makefile poderia se parecer com:

CXX=/usr/local/bin/g++

all:
    $(CXX) inputfile.cpp -o outputfile

ou com cmake você pode configurar com

cmake -D CMAKE_CXX_COMPILER=/usr/local/bin/g++ ..

Programas diferentes terão diferentes sintaxes para especificar o compilador, mas você pode sempre especificá-lo.

    
por 10.09.2015 / 05:07

Tags