Qual de /usr/bin/perl ou /usr/local/bin/perl deve ser usado?

Qual de /usr/bin/perl ou /usr/local/bin/perl deve ser usado?

Se eu tiver ambos /usr/bin/perldisponíveis /usr/local/bin/perlem um sistema, qual devo usar?

Responder1

Depende: em alguns sistemas, por exemplo, empacotamento BSD, /usr/local/binpode ser o diretório onde os pacotes instalam os executáveis. Nesse caso, seria mais novo (e talvez melhor), mas /usr/bin/perlseria mais estável.

Você pode usar perl -Vpara ver qual tem um número de versão mais recente. Às vezes, o conteúdo de /usr/local/bin(em sistemas multiusuário) não é realmente mais recente.

O compromisso usual é deixar o usuário decidir, usandoenv a linha shebang/hashbang (mas, novamente, ocaminhopode envvariar de acordo com o sistema). A linha shebang refere-se à primeira linha de um script, que pode ser semelhante a uma das seguintes:

#!/usr/bin/perl
#!/usr/bin/perl -w
#!/usr/bin/env perl

Os dois primeiros especificam o diretório a partir do qual o Perl será executado. Como bônus, este formulário permite passar uma opção, por exemplo -w(usada para ativar avisos). A última linha usa o envprograma para escolher a primeira ocorrência perlpesquisando os diretórios listados na PATHvariável de ambiente do usuário.

Também é possível executar um script como este:

perl myscript

which (like env) diz ao shell para escolher a primeira ocorrência perldos diretórios listados em PATH.

Um explícito

./perl myscript

é claro que substitui o PATH. Mas scripts com linhas Shebang são a maneira como a maioria das pessoas usa scripts Perl (as linhas únicas do Perl são uma questão diferente).

Leitura adicional:

Responder2

para quem é isso? Se for só você, contanto que ambas as versões do Perl sejam novas o suficiente, isso não importa. É para um ambiente de trabalho? Nesse caso, verifique suas políticas de implantação, pois elas podem ter a resposta. Se for para distribuição ao público em geral, eu recomendaria variar com base no tipo de pacote, usar especificamente /usr/bin/perl para debs (de acordo com as diretrizes do debian) e rpms (já que a Red Hat proíbe especificamente a instalação de rpms em /usr/ local), mas /usr/bin/env perl para pacotes tar e shar, pois tem a melhor chance de funcionar em computadores unix aleatórios.

informação relacionada