Página 2 de 3

Re: Actualización de Perl

NotaPublicado: 2016-01-29 12:51 @577
por seafree
Algo adicional: verifiqué las variables de ambiente del usuario root #env y entre sus líneas se encuentran las siguientes:
.
.
. PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
.
PWD=/root/Desktop/Modulos/PERL/perl-5.22.1
.
OLDPWD=/root/Desktop/Modulos/PERL/perl-5.22.1/lib

¿Alguna sugerencia al respecto?

Re: Actualización de Perl

NotaPublicado: 2016-01-29 14:18 @637
por explorer
Yo lo veo todo normal. Ahora te toca modificar $PATH como se indica en mi respuesta anterior. Eso es algo que puedes hacer en el .bashrc, por ejemplo.

Re: Actualización de Perl

NotaPublicado: 2016-02-03 14:56 @664
por seafree
Después de muchos intentos, no me responde la actualización de perl.

De acuerdo a tus repuestas, explorer, modifiqué la variable de entorno $PATH, pero como no existe el directorio “bin” entonces no acepta la ruta “# export PATH=/root/Desktop/Modulos/PERL/perl-5.22.1/bin;$PATH”, mostrando lo siguiente:

# export PATH=/root/Desktop/Modulos/PERL/perl-5.22.1/bin;$PATH
-bash: /root/Desktop/Modulos/PERL/perl-5.22.1/bin: No such file or directory

Pero cuando pongo la ruta completa:

# /root/Desktop/Modulos/PERL/perl-5.22.1/perl -v

Sí responde, mostrando:

/root/Desktop/Modulos/PERL/perl-5.22.1/perl -v
This is perl 5, version 22, subversion 1 (v5.22.1) built for i686-linux

¿Me puedes apoyar con alguna documentación al respecto, por favor, porque no avanzo.

Gracias.

Re: Actualización de Perl

NotaPublicado: 2016-02-03 18:01 @792
por explorer
Pues si

/root/Desktop/Modulos/PERL/perl-5.22.1

es la ruta donde está el intérprete de Perl, esa es la ruta que tienes que añadir al PATH.

Editas el .bashrc de tu directorio $HOME, y agregas una línea así:

export PATH=/root/Desktop/Modulos/PERL/perl-5.22.1:$PATH

Grabas el archivo, sales de la cuenta y vuelves a entrar (de forma alternativa, ejecutas el comando en el shell actual), y a partir de ese momento si pones

perl -v

debería responderte el nuevo intérprete.

Todo esto es un tema de shell, no tiene nada que ver con Perl. En Internet tienes mucha documentación para aprender sobre estos temas.

https://duckduckgo.com/?t=lm&q=shell+ba ... PATH&ia=qa

Pero... un detalle más.

Lo primero es averiguar si ese nuevo perl es capaz de encontrar sus propias bibliotecas.

Ejecutas

perl -E 'say "@INC"'

y salen unas rutas, que si todo está bien, las primeras deberían empezar por /root/Desktop/Modulos/PERL/perl-5.22.1

(Sí, con perlbrew no hace falta hacer nada de esto).

Re: Actualización de Perl

NotaPublicado: 2016-02-04 11:42 @529
por seafree
Una vez más, mil gracias, explorer. Todo bien de acuerdo a tu réplica, sólo cambié el

PATH=/root/Desktop/Modulos/PERL/perl-5.22.1:$PATH

por

PATH=/root/localperl/perl-5.22.1:$PATH

que fue a donde moví el directorio de Perl.

Al ejecutar

perl –E ‘say “@INC”’

envía:

/root/localperl/lib/site_perl/5.22.1/i686-linux /root/localperl/lib/site_perl/5.22.1 /root/localperl/lib/5.22.1/i686-linux /root/localperl/lib/5.22.1 /root/localperl/lib/site_perl/5.20.2 /root/localperl/lib/site_perl/5.16.0 /root/localperl/lib/site_perl .

Los directorios /root/localperl/lib/site_perl/5.20.2 y /root/localperl/lib/site_perl/5.16.0 me supongo se crearon al tratar de actualizar a Perl 5.20.2 y Perl 5.16.0, no me afectan pero, por favor, ¿me podrás decir cómo las elimino?

Originado de este largo proceso usaré perlbrew.

Muchas gracias.

Re: Actualización de Perl

NotaPublicado: 2016-02-04 14:37 @650
por explorer
La posición del lib/ que usará el intérprete se determina en tiempo de compilación del propio intérprete, así que si quieres quitarlas, deberás volver a compilar el perl.

Otra opción, en tiempo de ejecución del programa, sería la de borrar esas entradas del @INC en un bloque BEGIN {}, dentro de nuestro programa.

Re: Actualización de Perl

NotaPublicado: 2016-05-05 15:05 @670
por seafree
Hola, explorer. Estoy metida en un lío más con la actualización de perl. Intenté hacer otra vez la actualización y ahora sí veo la versión de perl:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
perl -v

This is perl 5, version 22, subversion 1 (v5.22.1) built for i686-linux
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

Desde el directorio que me encuentre.

Pero ahora, al momento de compilar el código que ya estaba en línea, me muestra:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Can't locate CGI.pm in @INC (you may need to install the CGI module) (@INC contains: /usr/local/lib/perl5/site_perl/5.22.1/i686-linux /usr/local/lib/perl5/site_perl/5.22.1 /usr/local/lib/perl5/5.22.1/i686-linux /usr/local/lib/perl5/5.22.1 .) at periodo_del_eventos.cgi line 3.
BEGIN failed--compilation aborted at
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

explorer, te agradeceré me des un consejo porque al parecer ahora con Perl 5.22.1 no puede interpretar las líneas de mi código que funciona bien en perl v5.8.8.

Estoy pensando en regresar a perl 5.8.8 pero ¿cómo me regreso? Sé que para evitarte tantas complicaciones tu utilizas perlbrew, pero desafortunadamente no cuento con ello. ¿De qué manera puedo regresar a Perl v5.8.8?

Gracias, ojalá pueda contar con tu apoyo.

Re: Actualización de Perl

NotaPublicado: 2016-05-05 15:33 @689
por explorer
La pregunta es si alguna de las rutas que muestra el mensaje de error coincide con la que está ahora perl 5.22.0.

Si no es así, hay que indicarle a perl dónde está la instalación lib/ con todas las librerías.

Pero... hay un detalle mucho más importante... y que creo que es la razón por la cual no encuentras CGI. Y es porque CGI.pm ya no viene con Perl.

Tú misma lo puedes comprobar. Desde Perl v5.22.0 ya no viene con la distribución estándar, por ser tecnología desfasada.

Eso no significa que CGI ya no funcione. Al contrario, funciona. Pero, primero hay que instalarlo, como si fuera cualquier otro módulo de CPAN.

Puedes usar el comando cpanp para instalarlo. Y... lo mismo de antes, fijarse en dónde lo instala. Si no es alguno de los directorios conocidos, habrá que usar 'use lib' para indicar la ruta.

Perl v5.8.8, si no lo has desinstalado, seguirá estando en tu sistema. Quizás sigue estando en /usr/bin/perl

Prueba:

/usr/bin/perl -V

Re: Actualización de Perl

NotaPublicado: 2016-05-05 16:19 @722
por seafree
explorer: La pregunta es si alguna de las rutas que muestra el mensaje de error coincide con la que está ahora perl 5.22.0.

La versión de Perl que estoy intentando utilizar y me marca errores es la versiòn 5.22.1 y sí, la ruta actual de Perl es:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
#env
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


explorer: Si no es así, hay que indicarle a perl dónde está la instalación lib/ con todas las librerías.

Tienes toda la razón, explorer, la ruta donde se encuentra instalado perl es en:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
/usr/local/lib/perl5/site_perl/5.22.1
/usr/local/lib/perl5/5.22.1
/root/localperl/lib/5.22.1/
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


explorer: Pero... hay un detalle mucho más importante... y que creo que es la razón por la cual no encuentras CGI. Y es porque CGI.pm ya no viene con Perl.

Ok, por eso no encuentra el CGI.

explorer: Tú misma lo puedes comprobar. Desde Perl v5.22.0 ya no viene con la distribución estándar, por ser tecnología desfasada.

Eso no significa que CGI ya no funcione. Al contrario, funciona. Pero, primero hay que instalarlo, como si fuera cualquier otro módulo de CPAN.

Ok, algo al respecto entendía pero decía que no podía ser.

Puedes usar el comando cpanp para instalarlo. Y... lo mismo de antes, fijarse en dónde lo instala. Si no es alguno de los directorios conocidos, habrá que usar 'use lib' para indicar la ruta.

Perl v5.8.8, si no lo has desinstalado, seguirá estando en tu sistema. Quizás sigue estando en /usr/bin/perl

Prueba:

/usr/bin/perl -V

Sí, aquí está:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
# /usr/bin/perl -V

Summary of my perl5 (revision 5 version 8 subversion <img src="http://perlenespanol.com/foro/images/smilies/icon_cool.gif" alt="8)" title="Cool" /> configuration:

  Platform:

    osname=linux, osvers=2.6.18-128.1.10.el5, archname=i386-linux-thread-multi

    uname='linux ls20-bc1-14.build.redhat.com 2.6.18-128.1.10.el5 #1 smp wed apr 29 13:53:08 edt 2009 i686 athlon i386 gnulinux '

    config_args='-des -Doptimize=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -Dversion=5.8.8 -Dmyhostname=localhost -Dperladmin=root@localhost -Dcc=gcc -Dcf_by=Red Hat, Inc. -Dinstallprefix=/usr -Dprefix=/usr -Darchname=i386-linux-thread-multi -Dvendorprefix=/usr -Dsiteprefix=/usr -Duseshrplib -Dusethreads -Duseithreads -Duselargefiles -Dd_dosuid -Dd_semctl_semun -Di_db -Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio -Dinstallusrbinperl=n -Ubincompat5005 -Uversiononly -Dpager=/usr/bin/less -isr -Dd_gethostent_r_proto -Ud_endhostent_r_proto -Ud_sethostent_r_proto -Ud_endprotoent_r_proto -Ud_setprotoent_r_proto -Ud_endservent_r_proto -Ud_setservent_r_proto -Dinc_version_list=5.8.7 5.8.6 5.8.5 -Dscriptdir=/usr/bin'

    hint=recommended, useposix=true, d_sigaction=define

    usethreads=define use5005threads=undef useithreads=define usemultiplicity=define

    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef

    use64bitint=undef use64bitall=undef uselongdouble=undef

    usemymalloc=n, bincompat5005=undef

  Compiler:

    cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm',

    optimize='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables',

    cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -I/usr/include/gdbm'

    ccversion='', gccversion='4.1.2 20080704 (Red Hat 4.1.2-44)', gccosandvers=''

    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234

    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12

    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8

    alignbytes=4, prototype=define

  Linker and Libraries:

    ld='gcc', ldflags =' -L/usr/local/lib'

    libpth=/usr/local/lib /lib /usr/lib

    libs=-lresolv -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc

    perllibs=-lresolv -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc

    libc=/lib/libc-2.5.so, so=so, useshrplib=true, libperl=libperl.so

    gnulibc_version='2.5'

  Dynamic Linking:

    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-rpath,/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE'

    cccdlflags='-fPIC', lddlflags='-shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -L/usr/local/lib'





Characteristics of this binary (from libperl):

  Compile-time options: MULTIPLICITY PERL_IMPLICIT_CONTEXT

                        PERL_MALLOC_WRAP USE_ITHREADS USE_LARGE_FILES

                        USE_PERLIO USE_REENTRANT_API

  Built under linux

  Compiled at Jul  2 2009 05:48:59

  @INC:

    /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi

    /usr/lib/perl5/site_perl/5.8.8

    /usr/lib/perl5/site_perl

    /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi

    /usr/lib/perl5/vendor_perl/5.8.8

    /usr/lib/perl5/vendor_perl

    /usr/lib/perl5/5.8.8/i386-linux-thread-multi

    /usr/lib/perl5/5.8.8
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Conociendo el origen del problema, considero seguir utilizando la versión 5.8.8, te agradeceré por favor me comentes cuál es tu opinión al respecto, la cual es muy valiosa y de gran valor.

Mil gracias, explorer, espero tu sugerencia para tomar la decisión más apropiada.


Saludos.

Re: Actualización de Perl

NotaPublicado: 2016-05-06 11:51 @535
por explorer
Pues si quieres usar el Perl del sistema, no tienes que hacer nada, salvo mirar que la primera línea de tus programas sea así:

#!/usr/bin/perl

Quita las líneas que pusiste en el .bashrc, que modifican la variable PATH. Así podrás usar el perl del sistema desde la misma línea de comandos.