¿Cuál de /usr/bin/perl o /usr/local/bin/perl debería usarse?

¿Cuál de /usr/bin/perl o /usr/local/bin/perl debería usarse?

Si tengo ambos /usr/bin/perly /usr/local/bin/perlestán disponibles en un sistema, ¿cuál debo usar?

Respuesta1

Depende: en algunos sistemas, por ejemplo, el empaquetado BSD, /usr/local/binpuede ser el directorio donde los paquetes instalan los ejecutables. En ese caso, sería más nuevo (y quizás mejor), pero /usr/bin/perlsería más estable.

Puede utilizar perl -Vpara ver cuál tiene un número de versión más reciente. A veces el contenido de /usr/local/bin(en sistemas multiusuario) no es realmente más nuevo.

El compromiso habitual es dejar que el usuario decida, usando enven la línea shebang/hashbang (pero nuevamente, elcamino(puede envvariar según el sistema). La línea shebang se refiere a la primera línea de un guión, que puede parecerse a uno de los siguientes:

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

Los dos primeros especifican el directorio desde el que ejecutar Perl. Como beneficio adicional, este formulario permite pasar una opción, por ejemplo -w(se usa para activar advertencias). La última línea utiliza el envprograma para seleccionar la primera aparición perlbuscando en los directorios enumerados en la PATHvariable de entorno del usuario.

También es posible ejecutar un script como este:

perl myscript

que (como env) le dice al shell que elija la primera aparición de perlentre los directorios enumerados en PATH.

Un explícito

./perl myscript

por supuesto anula el PATH. Pero los scripts con líneas shebang son la forma en que la mayoría de la gente usa los scripts Perl (las frases ingeniosas de Perl son un asunto diferente).

Otras lecturas:

Respuesta2

¿Para quién? Si es solo usted, siempre que ambas versiones de Perl sean lo suficientemente nuevas, no importa. ¿Es para un ambiente de trabajo? Si es así, consulte sus políticas de implementación, ya que pueden tener la respuesta. Si es para distribución al público en general, recomendaría variar según el tipo de paquete, específicamente usar /usr/bin/perl para debs (según las pautas de Debian) y rpms (ya que Red Hat específicamente no permite que rpms se instalen en /usr/ local), pero /usr/bin/env perl para paquetes tar y shar, ya que tiene más posibilidades de funcionar en computadoras Unix aleatorias.

información relacionada