jblas-project / jblas

Linear Algebra for Java
http://jblas.org
BSD 3-Clause "New" or "Revised" License
590 stars 149 forks source link

Missing libraries even when libgfortran.x86_64 is installed #67

Open esaliya opened 9 years ago

esaliya commented 9 years ago

Hi,

I was trying to do the following,

java -server -jar jblas-1.2.4.jar

and I get the following error. I've already installed libgfortran.x86_64 using yum. Any thoughts?

-- org.jblas INFO jblas version is 1.2.4 Simple benchmark for jblas

Running sanity benchmarks.

checking vector addition... ok -- org.jblas CONFIG BLAS native library not found in path. Copying native library from the archive. Consider installing the library somewhere in the path (for Windows: PATH, for Linux: LD_LIBRARY_PATH). -- org.jblas CONFIG ArchFlavor native library not found in path. Copying native library libjblas_arch_flavor from the archive. Consider installing the library somewhere in the path (for Windows: PATH, for Linux: LD_LIBRARY_PATH). -- org.jblas CONFIG Loading libjblas_arch_flavor.so from /lib/static/Linux/amd64/, copying to libjblas_arch_flavor.so. -- org.jblas ERROR Couldn't load copied link file: java.lang.UnsatisfiedLinkError: /tmp/jblas29209775120479040/libjblas_arch_flavor.so: libgfortran.so.3: cannot open shared object file: No such file or directory.

On Linux 64bit, you need additional support libraries. You need to install libgfortran3.

For example for debian or Ubuntu, type "sudo apt-get install libgfortran3"

For more information, see https://github.com/mikiobraun/jblas/wiki/Missing-Libraries Exception in thread "main" java.lang.UnsatisfiedLinkError: org.jblas.NativeBlas.dgemm(CCIIID[DII[DIID[DII)V at org.jblas.NativeBlas.dgemm(Native Method) at org.jblas.SimpleBlas.gemm(SimpleBlas.java:247) at org.jblas.DoubleMatrix.mmuli(DoubleMatrix.java:1781) at org.jblas.DoubleMatrix.mmul(DoubleMatrix.java:3138) at org.jblas.util.SanityChecks.checkMatrixMultiplication(SanityChecks.java:91) at org.jblas.util.SanityChecks.main(SanityChecks.java:182) at org.jblas.benchmark.Main.main(Main.java:114) -- org.jblas INFO Deleting /tmp/jblas29209775120479040/libjblas_arch_flavor.so -- org.jblas INFO Deleting /tmp/jblas29209775120479040

mikiobraun commented 9 years ago

Hi,

I have gotten this running for redhat/centos, but don't remember the exact packages right now, sorry. Maybe the development variants?

-M

----- Ursprüngliche Nachricht ----- Von: "esaliya" notifications@github.com Gesendet: ‎23.‎07.‎2015 22:07 An: "mikiobraun/jblas" jblas@noreply.github.com Betreff: [jblas] Missing libraries even when libgfortran.x86_64 is installed(#67)

Hi, I was trying to do the following, java -server -jar jblas-1.2.4.jar and I get the following error. I've already installed libgfortran.x86_64 using yum. Any thoughts? -- org.jblas INFO jblas version is 1.2.4 Simple benchmark for jblas Running sanity benchmarks. checking vector addition... ok -- org.jblas CONFIG BLAS native library not found in path. Copying native library from the archive. Consider installing the library somewhere in the path (for Windows: PATH, for Linux: LD_LIBRARY_PATH). -- org.jblas CONFIG ArchFlavor native library not found in path. Copying native library libjblas_arch_flavor from the archive. Consider installing the library somewhere in the path (for Windows: PATH, for Linux: LD_LIBRARY_PATH). -- org.jblas CONFIG Loading libjblas_arch_flavor.so from /lib/static/Linux/amd64/, copying to libjblas_arch_flavor.so. -- org.jblas ERROR Couldn't load copied link file: java.lang.UnsatisfiedLinkError: /tmp/jblas29209775120479040/libjblas_arch_flavor.so: libgfortran.so.3: cannot open shared object file: No such file or directory. On Linux 64bit, you need additional support libraries. You need to install libgfortran3. For example for debian or Ubuntu, type "sudo apt-get install libgfortran3" For more information, see https://github.com/mikiobraun/jblas/wiki/Missing-Libraries Exception in thread "main" java.lang.UnsatisfiedLinkError: org.jblas.NativeBlas.dgemm(CCIIID[DII[DIID[DII)V at org.jblas.NativeBlas.dgemm(Native Method) at org.jblas.SimpleBlas.gemm(SimpleBlas.java:247) at org.jblas.DoubleMatrix.mmuli(DoubleMatrix.java:1781) at org.jblas.DoubleMatrix.mmul(DoubleMatrix.java:3138) at org.jblas.util.SanityChecks.checkMatrixMultiplication(SanityChecks.java:91) at org.jblas.util.SanityChecks.main(SanityChecks.java:182) at org.jblas.benchmark.Main.main(Main.java:114) -- org.jblas INFO Deleting /tmp/jblas29209775120479040/libjblas_arch_flavor.so -- org.jblas INFO Deleting /tmp/jblas29209775120479040 — Reply to this email directly or view it on GitHub.

nickvosk commented 8 years ago

Hi,

I ran into the same issue on centos and I got it working by specifying this jvm option: -Djava.io.tmpdir=/path/to/another/tmp/dir

mikiobraun commented 4 years ago

Sorry for the late reply.

Odd that tmpdir changes fixed it, maybe the original place wasn't writeable? Let me look into this... .

digulla commented 2 years ago

I suspect a security feature: Loading of .so from /tmp is disabled (because attackers can easily put arbitrary stuff into /tmp).

This advice fixed the issue for me in RHEL8: Create a tmp folder for your app and point the Java VM to it using -Djava.io.tmpdir=...