• Publicidad

Perl en Centos 7

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Perl en Centos 7

Notapor seafree » 2016-12-19 13:41 @612

Hola a todos. Actualicé mi servidor de LRH a CentOS 7, y ahora tengo problemas en la instalación de los módulos de Perl requeridos por la aplicación que ya se ejecutaba. ¿Alguien me puede apoyar al respecto? Gracias.
seafree
Perlero nuevo
Perlero nuevo
 
Mensajes: 296
Registrado: 2012-08-10 11:26 @518

Publicidad

Re: Perl en Centos 7

Notapor explorer » 2016-12-22 04:36 @233

Siempre es recomendable instalar los módulos pre-compilados correspondientes a tu sistema operativo, usando el gestor de paquetes de software.

Vete al artículo Instalación de módulos y bibliotecas en Perl, a la sección Instalación en Linux, punto 1. Y si el módulo que quieres instalar no está disponible de esa manera, pues entonces debes pasar al punto 2.
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: Perl en Centos 7

Notapor seafree » 2019-04-23 10:29 @479

Buenos días, explorer. Regreso con los obstáculos en la actualización de Perl en Centos 7. Realicé una actualización más y Perl no responde como debería, algo omití y no descubro qué. En los intentos de restauración realicé lo siguiente:

1) Verifiqué la versión del DBI instalado
# yum whatprovides 'perl(DBI)'
perl-DBI-1.627-4.el7.x86_64 : A database access API for perl
Repo : base
Matched from:
Provides : perl(DBI) = 1.627

perl-DBI-1.627-4.el7.x86_64 : A database access API for perl
Repo : @base
Matched from:
Provides : perl(DBI) = 1.627
# rpm -q perl-DBI
perl-DBI-1.627-4.el7.x86_64

# yum search perl-DBI
============================ N/S matched: perl-DBI ============================
perl-DBI.x86_64 : A database access API for perl
perl-DBIx-Connector.noarch : Fast, safe DBI connection and transaction
: management
perl-DBIx-QueryLog.noarch : Logging queries for DBI
perl-DBIx-RunSQL.noarch : Run SQL commands from a file
perl-DBIx-Safe.noarch : Safer access to your database through a DBI database
: handle
perl-DBIx-Simple.noarch : Easy-to-use OO interface to DBI
perl516-perl-DBI.x86_64 : A database access API for perl
perl516-perl-DBIx-Simple.noarch : Easy-to-use OO interface to DBI
rh-perl520-perl-DBI.x86_64 : A database access API for perl
rh-perl524-perl-DBI.x86_64 : A database access API for perl
rh-perl526-perl-DBI.x86_64 : A database access API for perl

2)Directorio donde se encuentra las referencias de Perl
/root/localperl/lib./526.1
/root/local/lib64/perl5
/root/local/lib64/perl-5.26.1

3)Realicé la instalación del DBI
Ubicada en el directorio /root/localperl/lib/5.26.1 ejecuté:

#yum install perl-DBI

Mostró el siguiente mensaje:

Package perl-DBI-1.627-4.el7.x86_64 already installed and latest versión.
4) Modifiqué la variable PATH:

# vi .bashrc
export PERL_LOCAL_LIB_ROOT="$PERL_LOCAL_LIB_ROOT:/root/perl5";
export PERL_MB_OPT="--install_base /root/perl5";
export PERL_MM_OPT="INSTALL_BASE=/root/perl5";
export PERL5LIB="/root/perl5/lib/perl5:$PERL5LIB";
export LD_LIBRARY_PATH="/usr/local/easysoft/unixODBC/lib";
#LINEA AGREGADA
export PATH="/root/perl5/bin:/usr/local/lib64/perl-5.26.1:$PATH";

5) Al compilar un programa envía el siguiente mensaje de error:

<pre>Can't load '/usr/lib64/perl5/vendor_perl/auto/DBI/DBI.so' for module DBI: /usr/lib64/perl5/vendor_perl/auto/DBI/DBI.so: undefined symbol: PL_thr_key at /root/localperl/lib/5.26.1/x86_64-linux/DynaLoader.pm line 193. at /usr/lib64/perl5/vendor_perl/DBI.pm line 278.
BEGIN failed--compilation aborted at /usr/lib64/perl5/vendor_perl/DBI.pm line 2
[Mon Apr 22 16:01:21 2019] save_sifamep_vamosGMG.cgi: Can't load '/usr/lib64/perl5/vendor_perl/auto/DBI/DBI.so' for module DBI: /usr/lib64/perl5/vendor_perl/auto/DBI/DBI.so: undefined symbol: PL_thr_key at /root/localperl/lib/5.26.1/x86_64-linux/DynaLoader.pm line 193.

Agradeceré tu gran apoyo, explorer, porque no logro descubrir mi error a pesar de seguir tus recomendaciones.

Gracias y respetos para ti.
seafree
Perlero nuevo
Perlero nuevo
 
Mensajes: 296
Registrado: 2012-08-10 11:26 @518

Re: Perl en Centos 7

Notapor explorer » 2019-04-23 14:46 @657

El error dice que la versión de Perl que estás ejecutando (v5.26.1) no coincide con la versión de Perl que la biblioteca DBI espera.

Sospecho... que hay instalado un Perl v5.26.1 dentro de /root/, y la biblioteca DBI instalada en el directorio del sistema /usr/lib64/ perl5 es de una versión anterior, ya que la has instalado con el gestor de paquetes.

Un follón... A ver... ¿No puedes resolver este problema de otra manera?

Por ejemplo. ¿No te vale con la versión de Perl que trae por defecto el CentOS 7?

La última versión de CentOS veo que es la 7.1810. No tengo ni idea de qué Perl viene con esa versión, pero si es de diciembre del año pasado, debería ser una v5.28.1 por lo menos. Entonces, usando el Perl del sistema, y las bibliotecas del sistema, sería suficiente para trabajar con un sistema moderno.

El $PATH sirve para encontrar perl desde la línea de comandos. La biblioteca se encuentra con la variable $PERL5LIB.

El problema está en que dentro de los directorios indicados por $PERL5LIB no se encuentra la versión moderna de DBI, por lo que Perl lo buscará en otro sitio, y lo encontró en el DBI que trae el sistema (e instalado con el yum) en /usr/lib64/.

Si no puedes actualizar a un CentOS más moderno, o la versión que trae ese CentOS es muy vieja, lo que se puede intentar es una instalación local de Perl (+bibliotecas).

Yo uso perlbrew para crear y gestionar ese entorno, pero hay otros, como PLenv. Pero esto es solo si el Perl del sistema no te sirve.
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


Volver a Intermedio

¿Quién está conectado?

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

cron