Página 1 de 1

Problemas con Math:::MatrixReal y Math::FixedPrecision

NotaPublicado: 2008-11-19 22:27 @977
por mpor26
Hola a todos

He instalado 2 módulos: Math::MatrixReal y Math::FixedPrecision, ambas instaladas por "perl -MCPAN -eshell" y luego "install Math::MatrixReal" e "instal Math::FixedPrecision", al parecer sin ningún error. Cuando intento correr un programa como este
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl
use Math::FixedPrecision;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


me da el siguiente error:
Código: Seleccionar todo
Can't locate Math/FixedPrecision.pm in @INC (@INC contains: /usr/lib/perl5/5.10.0/i586-linux-thread-multi /usr/lib/perl5/5.10.0 /usr/lib/perl5/site_perl/5.10.0/i586-linux-thread-multi /usr/lib/perl5/site_perl/5.10.0 /usr/lib/perl5/vendor_perl/5.10.0/i586-linux-thread-multi /usr/lib/perl5/vendor_perl/5.10.0 /usr/lib/perl5/vendor_perl .) at ./presicion.pl line 2.
BEGIN failed--compilation aborted at ./presicion.pl line 2.


Prácticamente me da el mismo error con Math::MatrixReal.

¿Qué puede estar pasando? Uso Perl 5.10.0 en OpenSuSE 11.0 y kernel 2.6.25.11-0.1-pae

Gracias de antemano.

NotaPublicado: 2008-11-20 04:44 @239
por explorer
Bienvenido a los foros de Perl en Español, mpor26.

El error dice que los módulos no se han instalado o se han instalado mal.

Si usas el OpenSuse, intenta, primero, encontrar esos módulos en la lista de paquetes de software de la distribución.

Si no están, hazte root y ejecuta el comando cpan:
Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
cpan Math::MatrixReal
cpan Math::FixedPrecision
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

prestando atención a las últimas líneas, para ver si ocurrió algún tipo de error en la instalación.

NotaPublicado: 2008-11-20 08:13 @384
por mpor26
Antes de todo, gracias por tu pronta respuesta.

Esto es lo que obtengo al dale esos comandos

Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
# cpan Math::MatrixReal
CPAN: Storable loaded ok (v2.18)
Going to read /root/.cpan/Metadata
  Database was generated on Sat, 15 Nov 2008 23:26:55 GMT
Math::MatrixReal is up to date (2.05).
# cpan Math::FixedPrecision
CPAN: Storable loaded ok (v2.18)
Going to read /root/.cpan/Metadata
  Database was generated on Sat, 15 Nov 2008 23:26:55 GMT
Math::FixedPrecision is up to date (0.21).
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

NotaPublicado: 2008-11-20 09:39 @443
por explorer
Bien. Ahora hay que saber dónde están instalados. Si no te acuerdas del directorio que mostraban en el momento de la instalación, deberás buscar en tu sistema, a lo largo de todos los sistemas de ficheros (o usar el comando locate si lo tenías instalado).

El que el Perl no los encuentre es porque no están en ninguno de los directorios indicados por la variable @INC (como te mostraba el error).

NotaPublicado: 2008-11-20 15:12 @675
por mpor26
Correcto, ese era el problema. Simplemente, lo que hice fue cambiar la carpeta "Math" de directorio. Ahora ¿cómo soluciono el problema para que la próxima vez que instale un módulo no me lo vaya a instalar en el directorio que no es?

NotaPublicado: 2008-11-20 16:41 @736
por explorer
Humm...

¿Cómo es que cambiaste el directorio "Math" de sitio? ¿Por qué? ¿Qué especial motivación ocurrió para hacer eso?

En cuanto a qué hacer para que no pase eso la próxima vez... yo no hago nada. Yo ejecuto el comando cpan y le dejo que lo coloque donde le dé la gana. Bueno... no es del todo cierto. Yo sé que lo va a dejar en un directorio 'site-perl', pero no me importa mucho porque @INC lo va a encontrar.

Otra opción es, que si el módulo está en un sitio especial, se lo puedo indicar al programa con el comando use lib 'directorio';

Cuando se configura cpan, una de las variables que se puede poner es, justamente, la que indica los parámetros que se pueden pasar al proceso de instalación, y se puede entonces indicar dónde se quiere que se instalen los módulos.

O también, editar a mano el fichero Config.pm y actualizar el valor de la variable mbuildpl_arg. Por ejemplo, pasar --install_base /directorio/subdirectorio/.

NotaPublicado: 2008-11-20 17:26 @768
por mpor26
Cambié todo lo que estaba en la carpeta "Math" originalmente en "/usr/local/lib/perl5/site_perl/5.10.0/i686-linux/auto/Math" a "/usr/lib/perl5/5.10.0/i586-linux-thread-multi/Math" que era la dirección que me daba en el error y ¡santo remedio!.

Voy a tratar de hacer lo que me dices, muchas gracias por tu ayuda.

NotaPublicado: 2008-11-20 17:48 @783
por explorer
Estando en Linux, otra posibilidad sería la de crear un enlace simbólico entre los dos directorios, pero es mejor editar las opciones de cpan.