• Publicidad

Cambio de las variables de entorno

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Cambio de las variables de entorno

Notapor puchumx » 2012-12-12 14:04 @627

Mi problema pueden ser las variables de entorno que están inicializadas...(concretamente JAVA).

Tendría que inicializar en un script de Perl lo siguiente:

PERL5LIB=/home/unarutaxx/bibliotecas/perl;
JAVA_HOME=/usr/java5_64/jre


y agregar a la variable de entorno UNIX "PATH"=$JAVA_HOME/bin

El problema es que para el usuario que ejecuta no están inicializadas, esas variables...

Lo que quiero hacer es que cuando ejecute un proceso de Perl, inicialice esas variables para que no rompa el proceso...

Gracias de antemano...
puchumx
Perlero nuevo
Perlero nuevo
 
Mensajes: 13
Registrado: 2012-03-28 13:42 @612

Publicidad

Re: Cambio de las variables de entorno

Notapor explorer » 2012-12-12 18:38 @818

Si solo quieres hacer un cambio temporal (tu programa va a llamar a otros, con un entorno modificado), te vale con editar la variable especial %ENV. Por ejemplo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $ENV{PERL5LIB}   = '/home/unarutaxx/bibliotecas/perl';
  2. $ENV{JAVA_HOME} .= ';/usr/java5_64/jre';
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


En el primer caso modificamos la variable PERL5LIB completamente, y en el segundo, estamos añadiendo una ruta al final (observa el operador de concatenación '.'). Es lo mismo que si lo hubiéramos escrito así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $ENV{JAVA_HOME}  = "$ENV{JAVA_HOME};/usr/java5_64/jre";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

o así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $ENV{JAVA_HOME}  = $ENV{JAVA_HOME} . ';/usr/java5_64/jre';
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Cambio de las variables de entorno

Notapor puchumx » 2012-12-13 09:14 @426

Buenas, explorer.

Lo probé, pero no me funcionó:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. # Se cargan las variables de entorno
  2. $ENV{PERL5LIB} = '/home/miaplicacion/codigo/bibliotecas/perl';
  3. $ENV{JAVA_HOME} = '/usr/java5_64/jre';
  4. $ENV{PATH} .= ':/usr/java5_64/jre/bin';
  5.  
  6. print "#############################\n";
  7. print "Valor para javahome = $ENV{JAVA_HOME}.\n";
  8. print "Valor para perl5lib = $ENV{PERL5LIB}.\n";
  9. print "Valor para path = $ENV{PATH}.\n";
  10. print "#############################\n";
  11.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Me devuelve que no encontró una librería propia en el @INC, ya que no está inicializado el path que agrego en PERL5LIB...

Te comento lo que tengo que hacer... Tengo un proceso pl, que cuando corre llama a una librería propia, y ejecuta un java (un jar).

Si yo exporto las variables de PERL5LIB, JAVA_HOME y agrego a la variable PATH desde el bash de UNIX, funciona la aplicación, así:

export PERL5LIB=/home/miaplicacion/codigo/bibliotecas/perl;

y lo mismo con JAVA_HOME y el PATH, pero si no le agrego el export no funciona.... :(

La idea es poder "exportarlo" desde el pl, para que pueda ser ejecutado por cualquier usuario.

¡Gracias por tu tiempo!
puchumx
Perlero nuevo
Perlero nuevo
 
Mensajes: 13
Registrado: 2012-03-28 13:42 @612

Re: Cambio de las variables de entorno

Notapor puchumx » 2012-12-13 09:29 @437

Arreglé el de la librería de Perl:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use lib "/home/miaplicacion/codigo/bibliotecas/perl";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
:D

Vamos por Java ahora...

[Edito]Listo. No sé por qué no me tomo el $ENV{PERL5LIB} = '/home/miaplicacion/codigo/bibliotecas/perl';, pero se arreglo con lo citado anteriormente...

El $ENV{JAVA_HOME} = '/usr/java5_64/jre'; y $ENV{PATH} .= ':/usr/java5_64/jre/bin'; sí me los tomó... y ahora corre...

Gracias, explorer, me salvaste las papas de nuevo.

¡Un saludo!
puchumx
Perlero nuevo
Perlero nuevo
 
Mensajes: 13
Registrado: 2012-03-28 13:42 @612

Re: Cambio de las variables de entorno

Notapor explorer » 2012-12-13 10:57 @498

Es que diste a entender que necesitabas modificar PERL5LIB para ejecutar un proceso externo... Si lo que realmente necesitabas era poder acceder a una biblioteca desde dentro del programa actual, entonces haces bien en usar use lib, que amplía las rutas de búsqueda de bibliotecas.

Y para lo de JAVA_HOME, funciona porque estás modificando el entorno actual y de los procesos (java) que vas a arrancar desde el programa actual.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Cambio de las variables de entorno

Notapor puchumx » 2012-12-13 11:01 @501

Impecable, Sr., ¡gracias por el dato! :wink:

Saludos
puchumx
Perlero nuevo
Perlero nuevo
 
Mensajes: 13
Registrado: 2012-03-28 13:42 @612


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 27 invitados