Alterar ordem variável do caminho do ambiente

2

Estou trabalhando em uma caixa do CentOS e tentando instalar uma versão mais nova do python. O CentOS requer o python 2.6.6 para funcionar corretamente. Para resolver isso eu instalei um segundo python (v 2.7.6) em / usr / local / bin. Eu então criei um link simbólico para ele chamado python. Infelizmente, porque minha variável de caminho do ambiente é esta:

/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/useraccount/bin

E / usr / local / bin vem antes de / usr / bin ele usa minha nova instalação de python como a instalação padrão do sistema, o que quebra o requisito CentOS de ter o python 2.6.6 como padrão.

Excluir o link simbólico resolveria esse problema. No entanto, se eu instalar uma versão mais nova do python, gostaria de poder apenas alternar o link simbólico em vez de alterar todos os meus scripts para apontar para a versão mais recente.

Existe uma maneira de alterar a ordem em que essas variáveis são adicionadas ao caminho? Por exemplo, eu poderia fazer o caminho parecer assim:

/bin:/usr/bin:/usr/local/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/useraccount/bin

É fácil encontrar posts detalhando como adicionar ao caminho ou sobrescrevê-lo completamente, mas ninguém parece fazer isso. Existe uma razão pela qual você não deseja alterar este pedido?

    
por sage88 20.03.2015 / 16:27

1 resposta

1

O motivo pelo qual você não consegue encontrar um guia para alterar a ordem das variáveis de caminho é que é muito mais difícil fazer isso do que adicioná-lo ou substituí-lo completamente.

$PATH é apenas uma variável no seu shell. Isso significa que é fácil substituí-lo (executando PATH=<new path> ou colocando isso em .bashrc ) e fácil adicioná-lo (com PATH=<new entry>$PATH , porque $PATH se transforma no caminho atual). Mas se você quiser alterar a ordem, primeiro terá que analisá-la - você precisa escrever um script que entenda como a variável funciona.

Para seus objetivos, talvez seja melhor colocar o link simbólico em um diretório que não esteja no caminho do ambiente padrão. Você poderia colocá-lo em ~/bin/ , por exemplo, ou poderia colocá-lo em /usr/local/bin/nopath/ .

    
por 20.03.2015 / 16:51

Tags