• Publicidad

Actualización de Perl

Así que programas sin strict y las expresiones regulares son otro modo de hablar. Aquí encontrarás respuestas de nivel avanzado, no recomendable para los débiles de corazón.

Re: Actualización de Perl

Notapor seafree » 2016-01-29 12:51 @577

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?
seafree
Perlero nuevo
Perlero nuevo
 
Mensajes: 296
Registrado: 2012-08-10 11:26 @518

Publicidad

Re: Actualización de Perl

Notapor explorer » 2016-01-29 14:18 @637

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.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Actualización de Perl

Notapor seafree » 2016-02-03 14:56 @664

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.
seafree
Perlero nuevo
Perlero nuevo
 
Mensajes: 296
Registrado: 2012-08-10 11:26 @518

Re: Actualización de Perl

Notapor explorer » 2016-02-03 18:01 @792

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).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Actualización de Perl

Notapor seafree » 2016-02-04 11:42 @529

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.
seafree
Perlero nuevo
Perlero nuevo
 
Mensajes: 296
Registrado: 2012-08-10 11:26 @518

Re: Actualización de Perl

Notapor explorer » 2016-02-04 14:37 @650

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.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Actualización de Perl

Notapor seafree » 2016-05-05 15:05 @670

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.
seafree
Perlero nuevo
Perlero nuevo
 
Mensajes: 296
Registrado: 2012-08-10 11:26 @518

Re: Actualización de Perl

Notapor explorer » 2016-05-05 15:33 @689

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
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Actualización de Perl

Notapor seafree » 2016-05-05 16:19 @722

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.
seafree
Perlero nuevo
Perlero nuevo
 
Mensajes: 296
Registrado: 2012-08-10 11:26 @518

Re: Actualización de Perl

Notapor explorer » 2016-05-06 11:51 @535

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.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

AnteriorSiguiente

Volver a Avanzado

¿Quién está conectado?

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