I'm trying to build pylucene 2.9.2 in a virtual environment with openjdk on 64 bit Ubuntu.

I get this from the make utility:

/home/administrator/src/orcatec/bin/python: libjava.so: cannot open shared object file: No such file or directory
make: *** [compile] Error 1

setup.py has this line:


'linux2': '/usr/lib/jvm/java-6-openjdk',

That directory seems to have what it is supposed to have:

$ ls /usr/lib/jvm/java-6-openjdk
ASSEMBLY_EXCEPTION  bin  docs  include  jre  lib  man  THIRD_PARTY_README

and libjava.so is found in  /usr/lib/jvm/java-6-openjdk/jre/lib/amd64


I fixed this problem by adding a file to /etc/ld.so.conf.d that mentions the paths explicitly.

I put this in file /etc/ld.so.conf.d/pylucene.conf (e.g., sudo nano /etc/ld.so.conf.d/pylucene.conf)

    #for building pylucene
    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64
    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server/


I then ran $sudo ldconfig

My question is why was this necessary? I built pylucene before with sun java and did not need to do this.

Here is what I suspect is the answer:
I wanted to switch from sun java to open java. I'm bulding a virtual machine and I wanted to have an easier installation method. So the first thing I tried was to just load openjdk and try to run a copy of my old pylucene against the different java. When that failed, set about rebuilding pylucene with the openjdk.

I'm trying to make a repeatable process so that I (or a colleague) can easily build virtual machines containing pylucene and my own applications. So, is this step of building pylucene.conf necessary? Is it a byproduct of my test?

Any comments would be appreciated.

Thanks,
Herb




Reply via email to