Hi,
So one thing I noticed in the INSTALL file is that there's no mention of running python setup.py install
after running build. That's fairly obvious to me, but maybe not everyone.
On to my main problem. I installed LuaJIT from a sibling directory as lupa (both in /usr/local/src/) and when I went to run lupa, it said it couldn't find the so object it needed (output below.) Which is weird because it seemed to build OK, using pkg-config to find the LuaJIT package.
So then, I moved the LuaJIT directory that I'd installed from into the lupa directory, re-built/installed and everything seems to work now that it's statically linked.
Any idea why it wouldn't have worked originally? Thanks.
BUILDVM ../lib/vmdef.lua
DYNLINK libluajit.so
LINK luajit
OK Successfully built LuaJIT
make[1]: Leaving directory `/usr/local/src/LuaJIT-2.0.0-beta10/src'
==== Successfully built LuaJIT 2.0.0-beta10 ====
root@localhost:/usr/local/src/LuaJIT-2.0.0-beta10# make install
==== Installing LuaJIT 2.0.0-beta10 to /usr/local ====
mkdir -p /usr/local/bin /usr/local/lib /usr/local/include/luajit-2.0 /usr/local/share/man/man1 /usr/local/lib/pkgconfig /usr/local/share/luajit-2.0.0-beta10/jit /usr/local/share/lua/5.1 /usr/local/lib/lua/5.1
cd src && install -m 0755 luajit /usr/local/bin/luajit-2.0.0-beta10
cd src && test -f libluajit.a && install -m 0644 libluajit.a /usr/local/lib/libluajit-5.1.a || :
rm -f /usr/local/lib/libluajit-5.1.so.2.0.0 /usr/local/lib/libluajit-5.1.so /usr/local/lib/libluajit-5.1.so
cd src && test -f libluajit.so &&
install -m 0755 libluajit.so /usr/local/lib/libluajit-5.1.so.2.0.0 &&
ldconfig -n /usr/local/lib &&
ln -sf libluajit-5.1.so.2.0.0 /usr/local/lib/libluajit-5.1.so &&
ln -sf libluajit-5.1.so.2.0.0 /usr/local/lib/libluajit-5.1.so || :
cd etc && install -m 0644 luajit.1 /usr/local/share/man/man1
cd etc && sed -e "s|^prefix=.*|prefix=/usr/local|" luajit.pc > luajit.pc.tmp &&
install -m 0644 luajit.pc.tmp /usr/local/lib/pkgconfig/luajit.pc &&
rm -f luajit.pc.tmp
cd src && install -m 0644 lua.h lualib.h lauxlib.h luaconf.h lua.hpp luajit.h /usr/local/include/luajit-2.0
cd lib && install -m 0644 bc.lua v.lua dump.lua dis_x86.lua dis_x64.lua dis_arm.lua dis_ppc.lua dis_mips.lua dis_mipsel.lua bcsave.lua vmdef.lua /usr/local/share/luajit-2.0.0-beta10/jit
==== Successfully installed LuaJIT 2.0.0-beta10 to /usr/local ====
Note: the beta releases deliberately do NOT install a symlink for luajit
You can do this now by running this command (with sudo):
ln -sf luajit-2.0.0-beta10 /usr/local/bin/luajit
root@localhost:/usr/local/src/LuaJIT-2.0.0-beta10# ln -sf luajit-2.0.0-beta10 /usr/local/bin/luajit
root@localhost:/usr/local/src/LuaJIT-2.0.0-beta10# cd ..
root@localhost:/usr/local/src# ls
demoinfo2 demoinfo2.zip LuaJIT-2.0.0-beta10 LuaJIT-2.0.0-beta10.tar.gz lupa-0.20.tar.gz riak_1.2.0-1_i386.deb
root@localhost:/usr/local/src# tar zxvf lupa-0.20.tar.gz
lupa-0.20/
lupa-0.20/LICENSE.txt
lupa-0.20/setup.py
lupa-0.20/MANIFEST.in
lupa-0.20/README.rst
lupa-0.20/lupa/
lupa-0.20/lupa/init.py
lupa-0.20/lupa/lua.pxd
lupa-0.20/lupa/_lupa.c
lupa-0.20/lupa/lock.pxi
lupa-0.20/lupa/tests/
lupa-0.20/lupa/tests/init.py
lupa-0.20/lupa/tests/test.py
lupa-0.20/lupa/_lupa.pyx
lupa-0.20/lupa/version.py
lupa-0.20/CHANGES.rst
lupa-0.20/PKG-INFO
lupa-0.20/INSTALL.rst
lupa-0.20/MANIFEST
root@localhost:/usr/local/src# cd lupa-0.20/
root@localhost:/usr/local/src/lupa-0.20# python setup.py build
building without Cython
No local build of LuaJIT2 found in lupa directory, checking for installed library using pkg-config
Did not find LuaJIT2 using pkg-config: /bin/sh: pkg-config: not found
Traceback (most recent call last):
File "setup.py", line 111, in
ext_args = find_luajit_build()
File "setup.py", line 99, in find_luajit_build
raise RuntimeError("LuaJIT2 not found, please install the library and its development packages"
RuntimeError: LuaJIT2 not found, please install the library and its development packages, or put a local build into the lupa main directory (or pass '--no-luajit' option)
root@localhost:/usr/local/src/lupa-0.20# pkg-config
The program 'pkg-config' is currently not installed. You can install it by typing:
apt-get install pkg-config
root@localhost:/usr/local/src/lupa-0.20# aptitude install pkg-config
The following NEW packages will be installed:
pkg-config
0 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 40.3 kB of archives. After unpacking 156 kB will be used.
Get: 1 http://us.archive.ubuntu.com/ubuntu/ oneiric/main pkg-config i386 0.26-1ubuntu1 [40.3 kB]
Fetched 40.3 kB in 0s (119 kB/s)
Selecting previously deselected package pkg-config.
(Reading database ... 35010 files and directories currently installed.)
Unpacking pkg-config (from .../pkg-config_0.26-1ubuntu1_i386.deb) ...
Processing triggers for man-db ...
Setting up pkg-config (0.26-1ubuntu1) ...
root@localhost:/usr/local/src/lupa-0.20# python setup.py build
building without Cython
No local build of LuaJIT2 found in lupa directory, checking for installed library using pkg-config
pkg-config found LuaJIT version 2.0.0-beta10
running build
running build_py
creating build
creating build/lib.linux-i686-2.7
creating build/lib.linux-i686-2.7/lupa
copying lupa/version.py -> build/lib.linux-i686-2.7/lupa
copying lupa/init.py -> build/lib.linux-i686-2.7/lupa
running build_ext
building 'lupa._lupa' extension
creating build/temp.linux-i686-2.7
creating build/temp.linux-i686-2.7/lupa
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/local/include/luajit-2.0 -I/usr/include/python2.7 -c lupa/_lupa.c -o build/temp.linux-i686-2.7/lupa/_lupa.o
lupa/_lupa.c: In function Γ’__pyx_pf_4lupa_5_lupa_9FastRLock_5__exit__Γ’:
lupa/_lupa.c:1561:13: warning: variable Γ’__pyx_v_tbΓ’ set but not used [-Wunused-but-set-variable]
lupa/_lupa.c:1560:13: warning: variable Γ’__pyx_v_vΓ’ set but not used [-Wunused-but-set-variable]
lupa/_lupa.c:1559:13: warning: variable Γ’__pyx_v_tΓ’ set but not used [-Wunused-but-set-variable]
lupa/_lupa.c: In function Γ’__pyx_f_4lupa_5_lupa_call_pythonΓ’:
lupa/_lupa.c:11630:7: warning: variable Γ’__pyx_v_retΓ’ set but not used [-Wunused-but-set-variable]
lupa/_lupa.c: In function Γ’__pyx_f_4lupa_5_lupa_py_as_functionΓ’:
lupa/_lupa.c:13839:42: warning: variable Γ’__pyx_v_py_objΓ’ set but not used [-Wunused-but-set-variable]
lupa/_lupa.c: In function Γ’__pyx_f_4lupa_5_lupa_lua_object_reprΓ’:
lupa/_lupa.c:6202:18: warning: Γ’__pyx_v_ptrΓ’ may be used uninitialized in this function [-Wuninitialized]
lupa/_lupa.c: In function Γ’__pyx_pf_4lupa_5_lupa_10_LuaObject_3__len__Γ’:
lupa/_lupa.c:4455:3: warning: Γ’__pyx_rΓ’ may be used uninitialized in this function [-Wuninitialized]
gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions build/temp.linux-i686-2.7/lupa/_lupa.o -L/usr/local/lib -lluajit-5.1 -o build/lib.linux-i686-2.7/lupa/_lupa.so
root@localhost:/usr/local/src/lupa-0.20# python
Python 2.7.2+ (default, Oct 4 2011, 20:03:08)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
import lupa
Traceback (most recent call last):
File "", line 1, in
File "lupa/init.py", line 31, in
from lupa._lupa import *
ImportError: No module named _lupa
quit()
root@localhost:/usr/local/src/lupa-0.20# cd ..
root@localhost:/usr/local/src# python
Python 2.7.2+ (default, Oct 4 2011, 20:03:08)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
import lupa
Traceback (most recent call last):
File "", line 1, in
ImportError: No module named lupa
quit()
root@localhost:/usr/local/src# cd lupa-0.20/
root@localhost:/usr/local/src/lupa-0.20# python setup.py install
building without Cython
No local build of LuaJIT2 found in lupa directory, checking for installed library using pkg-config
pkg-config found LuaJIT version 2.0.0-beta10
running install
running build
running build_py
copying lupa/version.py -> build/lib.linux-i686-2.7/lupa
running build_ext
running install_lib
creating /usr/local/lib/python2.7/dist-packages/lupa
copying build/lib.linux-i686-2.7/lupa/version.py -> /usr/local/lib/python2.7/dist-packages/lupa
copying build/lib.linux-i686-2.7/lupa/_lupa.so -> /usr/local/lib/python2.7/dist-packages/lupa
copying build/lib.linux-i686-2.7/lupa/init.py -> /usr/local/lib/python2.7/dist-packages/lupa
byte-compiling /usr/local/lib/python2.7/dist-packages/lupa/version.py to version.pyc
byte-compiling /usr/local/lib/python2.7/dist-packages/lupa/init.py to init.pyc
running install_egg_info
Writing /usr/local/lib/python2.7/dist-packages/lupa-0.20.egg-info
root@localhost:/usr/local/src/lupa-0.20# cd ..
root@localhost:/usr/local/src# python
Python 2.7.2+ (default, Oct 4 2011, 20:03:08)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
import lupa
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python2.7/dist-packages/lupa/init.py", line 31, in
from lupa._lupa import *
ImportError: libluajit-5.1.so.2: cannot open shared object file: No such file or directory
quit()
root@localhost:/usr/local/src# find .. -iname 'libluajit'
../lib/libluajit-5.1.so.2.0.0
../lib/libluajit-5.1.a
../lib/libluajit-5.1.so
../lib/libluajit-5.1.so.2
../src/LuaJIT-2.0.0-beta10/src/libluajit.so
../src/LuaJIT-2.0.0-beta10/src/libluajit.a
root@localhost:/usr/local/src# ls lupa-0.20
build CHANGES.rst INSTALL.rst LICENSE.txt lupa MANIFEST MANIFEST.in PKG-INFO README.rst setup.py
root@localhost:/usr/local/src# ls lupa-0.20/build/
lib.linux-i686-2.7 temp.linux-i686-2.7
root@localhost:/usr/local/src# ls lupa-0.20/build/lib.linux-i686-2.7/
lupa
root@localhost:/usr/local/src# ls lupa-0.20/build/lib.linux-i686-2.7/lupa/
init.py _lupa.so version.py
root@localhost:/usr/local/src# ls /usr/local/include/luajit-2.0
lauxlib.h luaconf.h lua.h lua.hpp luajit.h lualib.h