miércoles, 10 de julio de 2013

Problema scilab ./scilab-bin: error while loading shared libraries: libscilab.so.0:

En Fedora 19 de 32bits, viene por defecto en los repositorios SCILAB 5.4.1, sin embargo, si se desea instalar desde el paquete rpm que viene en la pagina web de Scilab. Solo se debe descargar y descomprimir en una carpeta en específico (en mi caso, cree un directorio denominado opt dentro de mi $HOME) El binario ejecutable está en la ruta /home/miguel/opt/scilab-5.4.1/bin sin embargo al tratar de ejecutar el binario, se marca el siguiente error (solo es visible cuando se ejecuta desde consola)
./scilab-bin 
./scilab-bin: error while loading shared libraries: libscilab.so.0: cannot open shared object file: No such file or directory

de acuerdo a la página https://bugs.launchpad.net/ubuntu/+source/scilab/+bug/560283
se debe verificar que /usr/bin/scilab contiene
 
LD_LIBRARY_PATH=/usr/lib/scilab/:/usr/lib64/scilab/:$LD_LIBRARY_PATH

Para modificar el valor de la variable de entorno (Para saber mas: http://landerpfc.wordpress.com/2010/09/28/variables-de-entorno-en-gnulinux/)
Se debe dar la ruta a la librería donde se encuentra el archivo libscilab.so.0, que está en:
$HOME/opt/scilab-5.4.1/lib/scilab/

Entonces ahora se teclea la siguiente instrucción:
[miguel@MalillaReturns bin]$ export LD_LIBRARY_PATH=/home/miguel/opt/scilab-5.4.1/lib/scilab/
[miguel@MalillaReturns bin]$ echo $LD_LIBRARY_PATH
/home/miguel/opt/scilab-5.4.1/lib/scilab/
Sin embargo al tratar de ejecutar el entorno se tiene el siguiente error:
[miguel@MalillaReturns bin]$ ./scilab-bin 
./scilab-bin: error while loading shared libraries: libhdf5.so.6: cannot open shared object file: No such file or directory

Este archivo se puede localizar con el comando find, de la siguiente forma
[miguel@MalillaReturns ~]$ find -iname libhdf5.so.6
./opt/scilab-5.4.1/lib/thirdparty/libhdf5.so.6
Con esta dirección, podemos agregar un dato mas a la variable de entorno
[miguel@MalillaReturns bin]$ export LD_LIBRARY_PATH=$HOME/opt/scilab-5.4.1/lib/thirdparty/:$LD_LIBRARY_PATH
[miguel@MalillaReturns bin]$ echo $LD_LIBRARY_PATH
/home/miguel/opt/scilab-5.4.1/lib/thirdparty/:/home/miguel/opt/scilab-5.4.1/lib/scilab/
Pero de nueva cuenta se tiene un error.
[miguel@MalillaReturns bin]$ ./scilab-bin 
./scilab-bin: error while loading shared libraries: libjava.so: cannot open shared object file: No such file or directory
De igual forma la libreria libjvm.so. Mediante el comando find, se encuentra la ruta de la librería solicitada por el programa
[miguel@MalillaReturns ~]$ find -iname libjava.so
./opt/scilab-5.4.1/thirdparty/java/lib/i386/libjava.so
La libreria libjvm.so se encuentra en:
[miguel@MalillaReturns ~]$ find -iname libjvm.so
./opt/scilab-5.4.1/thirdparty/java/lib/i386/server/libjvm.so
./opt/scilab-5.4.1/thirdparty/java/lib/i386/client/libjvm.so

En consecuencia, se debe agregar esta nueva ruta al LD_LIBRARY_PATH
[miguel@MalillaReturns bin]$ export LD_LIBRARY_PATH=$HOME/opt/scilab-5.4.1/thirdparty/java/lib/i386/:$HOME/opt/scilab-5.4.1/thirdparty/java/lib/i386/client/libjvm.so:$LD_LIBRARY_PATH
En resumen, se puede decir que la definición de la variable de entorno
[miguel@MalillaReturns bin]$ export LD_LIBRARY_PATH=$HOME/opt/scilab-5.4.1/lib/scilab/:$HOME/opt/scilab-5.4.1/lib/thirdparty/:$HOME/opt/scilab-5.4.1/thirdparty/java/lib/i386/client/:$HOME/opt/scilab-5.4.1/thirdparty/java/lib/i386/
Pero esto, nos deja ver el siguiente error
[miguel@MalillaReturns bin]$ ./scilab-bin 
SCI environment variable not defined.
Ahora se debe definir la variable de entorno SCI
[miguel@MalillaReturns bin]$ export SCI=/home/miguel/opt/scilab-5.4.1/share/scilab
de esta forma ya debe funcionar la instalación de SCILAB
Nota. LA Libreria de lógica difusa que se ve se instala mediante ATOMS.