Properly install sqlite3 with FTS5 support

前端 未结 3 687
误落风尘
误落风尘 2021-01-19 13:58

I\'m developing a Python tool which uses a sqlite3 virtual table with FTS5 (Full Text Search). I would like to know how to properly install from a tarball (or any other mean

3条回答
  •  慢半拍i
    慢半拍i (楼主)
    2021-01-19 14:06

    I think is a linking problem! I followed the same install steps with you and got the same results:

    $ python ./test.py 
    [(u'ENABLE_COLUMN_METADATA',), (u'ENABLE_FTS3',), (u'ENABLE_RTREE',), (u'ENABLE_UNLOCK_NOTIFY',), (u'ENABLE_UPDATE_DELETE_LIMIT',), (u'MAX_SCHEMA_RETRY=25',), (u'OMIT_LOOKASIDE',), (u'SECURE_DELETE',), (u'SOUNDEX',), (u'SYSTEM_MALLOC',), (u'TEMP_STORE=1',), (u'THREADSAFE=1',)]
    NO
    

    However, when you install something by configure/make/make install on Linux, it usually goes in /usr/local/lib. To make sure that python links on runtime against the correct .so I used LD_LIBRARY_PATH. In this case I got:

    $ LD_LIBRARY_PATH=/usr/local/lib python ./test.py 
    [(u'COMPILER=gcc-4.8.5',), (u'ENABLE_FTS5',), (u'HAVE_ISNAN',), (u'TEMP_STORE=1',), (u'THREADSAFE=1',)]
    YES
    

    Additionally, when installing libraries, you might have to update ldconfig. On my system (Ubuntu 14.04):

    $ sudo ldconfig
    $ python ./test.py 
    [(u'COMPILER=gcc-4.8.5',), (u'ENABLE_FTS5',), (u'HAVE_ISNAN',), (u'TEMP_STORE=1',), (u'THREADSAFE=1',)]
    YES
    

    Notice that using LD_LIBRARY_PATH is not needed any more and python links against the correct lib. For this to happen you will need to have /usr/local/lib folder in your ld.so.conf somewhere... for me this is in:

    $ grep -ir local /etc/ld.so.conf.d/
    /etc/ld.so.conf.d/libc.conf:/usr/local/lib
    

提交回复
热议问题