O que fazer se os scripts do bash vierem com um caminho incorreto do interpretador?

2

Estou tentando instalar o BugZilla em nosso servidor. A questão é que os scripts perl do BugZilla definem o caminho como /usr/bin/perl , e minha instalação do perl está localizada em /usr/local/bin/perl .

Eu tive esse problema ao instalar outros aplicativos também, tive que editar manualmente os caminhos do intérprete.

Como você lida com situações como essas?

EDIT: Acabei de notar que temos duas cópias do perl no servidor, uma na localização padrão, em / usr / local / bin / perl, mas which perl retorna o caminho anterior.

Btw, aqui está o erro que recebo quando executo o script perl do bugzilla

bash: ./checksetup.pl: /usr/bin/perl: bad interpreter: Permission denied
    
por gAMBOOKa 28.08.2010 / 12:28

2 respostas

8

Você pode criar um link usando ln que vincula / usr / bin / perl a / usr / local / bin / perl

ln -s /usr/local/bin/perl /usr/bin/perl
    
por 28.08.2010 / 12:43
1

Fazemos isso no meu ambiente: deixamos o sistema perl em / usr / bin / perl e instalamos nosso próprio interpretador em / usr / local / bin / perl; isso nos permite manter um perl confiável que sabemos que as atualizações do sistema operacional não vão embora.

Eu diria que a maneira mais fácil de contornar esse problema é evitar a linha shebang e invocar esses scripts usando o intérprete perl que você quer que sejam executados:

/usr/local/bin/perl /path/to/someBugzillaScript.pl

Isso permite que você controle seu ambiente de execução sem ter que fazer alterações no nível do sistema para acomodar o pacote do Bugzilla.

    
por 22.01.2011 / 07:41