Opensuse 11.1 & soprano

Hi. I have a problem with sesame soprano backend. It don’t see libjvm.so though openjdk is installed and is in /usr/lib64/jvm/java-1.6.0-openjdk-1.2_b11/jre/lib/amd64. It is necessary to work strigi/nepomuk on kde 4.2.0. Please help.

bananikus@linux-ylbo:~> (Soprano::PluginManager) loading all plugins 
(Soprano::PluginManager) searching plugin file from  "/usr/share/soprano/plugins" 
(Soprano::PluginManager) found plugin file "/usr/share/soprano/plugins/nquadparser.desktop" 
(Soprano::PluginManager) plugin has proper version.                                         
(Soprano::PluginManager) found parser plugin  "nquadparser"                                 
(Soprano::PluginManager) found plugin file "/usr/share/soprano/plugins/nquadserializer.desktop" 
(Soprano::PluginManager) plugin has proper version.                                             
(Soprano::PluginManager) found serializer plugin  "nquadserializer"                             
(Soprano::PluginManager) found plugin file "/usr/share/soprano/plugins/raptorparser.desktop"
(Soprano::PluginManager) plugin has proper version.
(Soprano::PluginManager) found parser plugin  "raptorparser"
(Soprano::PluginManager) found plugin file "/usr/share/soprano/plugins/raptorserializer.desktop"
(Soprano::PluginManager) plugin has proper version.
(Soprano::PluginManager) found serializer plugin  "raptorserializer"
(Soprano::PluginManager) found plugin file "/usr/share/soprano/plugins/sesame2backend.desktop"
(Soprano::PluginManager) plugin has proper version.
(Soprano::PluginManager) found backend plugin  "sesame2"
(Soprano::PluginManager) searching plugin file from  "/usr/local/share/soprano/plugins"
(Soprano::PluginManager) searching plugin file from  "/usr/share/soprano/plugins"
(Soprano::PluginManager) found plugin file "/usr/share/soprano/plugins/nquadparser.desktop"
(Soprano::PluginManager) plugin has proper version.
(Soprano::PluginManager) found plugin file "/usr/share/soprano/plugins/nquadserializer.desktop"
(Soprano::PluginManager) plugin has proper version.
(Soprano::PluginManager) found plugin file "/usr/share/soprano/plugins/raptorparser.desktop"
(Soprano::PluginManager) plugin has proper version.
(Soprano::PluginManager) found plugin file "/usr/share/soprano/plugins/raptorserializer.desktop"
(Soprano::PluginManager) plugin has proper version.
(Soprano::PluginManager) found plugin file "/usr/share/soprano/plugins/sesame2backend.desktop"
(Soprano::PluginManager) plugin has proper version.
(Soprano::PluginManager) searching plugin file from  "/etc/opt/kde3/share/soprano/plugins"
(Soprano::PluginManager) searching plugin file from  "/opt/kde3/share/soprano/plugins"
(Soprano::PluginManager) found no soprano plugin at  "/usr/lib64/soprano/libsoprano_sesame2backend.so"
(Soprano::PluginManager) found no soprano plugin at  "/usr/lib64/soprano/libsoprano_sesame2backend.so"
bananikus@linux-ylbo:~> ldd /usr/lib64/soprano/libsoprano_sesame2backend.so 
        linux-vdso.so.1 =>  (0x00007fff251ff000)                            
        libsoprano.so.4 => /usr/lib64/libsoprano.so.4 (0x00007f8e1cbbc000)  
        libjvm.so => not found                                              
        libQtCore.so.4 => /usr/lib64/libQtCore.so.4 (0x00007f8e1c78e000)    
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f8e1c572000)      
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f8e1c265000)    
        libm.so.6 => /lib64/libm.so.6 (0x00007f8e1c00f000)                  
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f8e1bdf7000)          
        libc.so.6 => /lib64/libc.so.6 (0x00007f8e1ba9d000)                  
        libz.so.1 => /lib64/libz.so.1 (0x00007f8e1b887000)                  
        libgthread-2.0.so.0 => /usr/lib64/libgthread-2.0.so.0 (0x00007f8e1b682000)
        librt.so.1 => /lib64/librt.so.1 (0x00007f8e1b478000)                      
        libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007f8e1b1b3000)      
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f8e1afaf000)                      
        /lib64/ld-linux-x86-64.so.2 (0x00007f8e1d0ef000)                          
        libpcre.so.0 => /usr/lib64/libpcre.so.0 (0x00007f8e1ad7e000)
  1. Find libjvm.so (in my openSUSE 11.0 is in /usr/lib64/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/amd64/server/ )

  2. Make symbolics link:

ln -s /usr/lib64/jvm/java-1.6.0-openjdk-1.2_b09/jre/lib/amd64/server/libjvm.so /usr/lib64/libjvm.so

And soprano with sesame will be work.

PS. Pozdrowienia z Polski :wink:

It Works! Thanks.

Dzięki. :slight_smile:

Thanks, this fixed it for me too. Is there a package that is supposed to install /usr/lib/libjvm.so or is it a problem with the soprano-backend-sesame package?

Upon further investigation the library libsoprano_sesame2backend.so has a RUNPATH of /usr/lib/jvm/java/jre/lib/i386/client, so it seems it was compiled on a system without the opensuse java package. However, the opensuse java packages may also take some blame for not linking /usr/lib/jvm to the path of the currently installed jvm.

Rather than linking /usr/lib/libjvm.so I have instead linked /usr/lib/jvm/java/jre -> /etc/alternatives/jre.

Though now I have the problem as follows:-

106 [main] INFO org.openrdf.query.parser.QueryParserRegistry - Registered service class org.openrdf.query.parser.serql.SeRQLParserFactory
117 [main] INFO org.openrdf.query.parser.QueryParserRegistry - Registered service class org.openrdf.query.parser.sparql.SPARQLParserFactory
Exception in thread "main" org.openrdf.repository.RepositoryException: java.io.FileNotFoundException: /usr/lib/jvm/java/namespaces.dat (Permission denied)
        at org.openrdf.repository.sail.SailRepository.initialize(SailRepository.java:85)
Caused by: org.openrdf.sail.SailException: java.io.FileNotFoundException: /usr/lib/jvm/java/namespaces.dat (Permission denied)
        at org.openrdf.sail.nativerdf.NativeStore.initialize(NativeStore.java:186)
        at org.openrdf.repository.sail.SailRepository.initialize(SailRepository.java:82)
Caused by: java.io.FileNotFoundException: /usr/lib/jvm/java/namespaces.dat (Permission denied)
        at java.io.FileOutputStream.open(Native Method)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:209)
        at java.io.FileOutputStream.<init>(FileOutputStream.java:160)
        at org.openrdf.sail.nativerdf.NamespaceStore.writeNamespacesToFile(NamespaceStore.java:170)
        at org.openrdf.sail.nativerdf.NamespaceStore.<init>(NamespaceStore.java:94)
        at org.openrdf.sail.nativerdf.NativeStore.initialize(NativeStore.java:181)
        ... 1 more
Failed to create Model: Success (0):

Apparently this can be fixed by installing the Sun JDK instead of OpenJDK.

If I chmod 777 /usr/lib/jvm/java then run sopranocmd, it works, but it seems to store data there so it is not suitable for multiple users.

chaz@linux-bptb:/usr/lib/jvm/java> ls -l /usr/lib/jvm/java
total 40
lrwxrwxrwx 1 root     root    21 2009-02-08 13:24 jre -> /etc/alternatives/jre
-rw-r--r-- 1 chaz users    4 2009-02-08 13:35 namespaces.dat
-rw-r--r-- 1 chaz users   16 2009-02-08 13:35 triples-cspo.dat
-rw-r--r-- 1 chaz users   16 2009-02-08 13:35 triples-opsc.dat
-rw-r--r-- 1 chaz users   16 2009-02-08 13:35 triples-posc.dat
-rw-r--r-- 1 chaz users  116 2009-02-08 13:35 triples.prop
-rw-r--r-- 1 chaz users   16 2009-02-08 13:35 triples-spoc.dat
-rw-r--r-- 1 chaz users    4 2009-02-08 13:35 values.dat
-rw-r--r-- 1 chaz users 4368 2009-02-08 13:35 values.hash
-rw-r--r-- 1 chaz users    8 2009-02-08 13:35 values.id

yea this command worked for me

ln -s /usr/lib/jvm/java-1.6.0-openjdk-1.6.0/jre/lib/i386/server/libjvm.so