Si tengo ambos /usr/bin/perl
y /usr/local/bin/perl
están disponibles en un sistema, ¿cuál debo usar?
Respuesta1
Depende: en algunos sistemas, por ejemplo, el empaquetado BSD, /usr/local/bin
puede ser el directorio donde los paquetes instalan los ejecutables. En ese caso, sería más nuevo (y quizás mejor), pero /usr/bin/perl
sería más estable.
Puede utilizar perl -V
para 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 env
en la línea shebang/hashbang (pero nuevamente, elcamino(puede env
variar 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 env
programa para seleccionar la primera aparición perl
buscando en los directorios enumerados en la PATH
variable 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 perl
entre 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:
- /usr/bin/env perl - consulta, refiriéndose a la línea shebang
- /usr/bin frente a /usr/local/bin en Linux
- paquete(7), sistema de paquetes FreeBSD con
/usr/local/bin
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.