On Sat, 3 Jul 2010, Herbert Roitblat wrote:
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.
On Linux, this is not necessary provided the directories containing the JRE
.so files are correctly set when configuring and building jcc (in setup.py).
If they're not correct, then setting LD_LIBRARY_PATH or messing with
ldconfig becomes necessary.
Andi..
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