如何Brew安装SQLite3 FTS5扩展?

如何Brew安装SQLite3 FTS5扩展?,sqlite,homebrew,Sqlite,Homebrew,对于随Brew安装的SQLite3,是否有一种简单的方法来启用FTS5扩展?一些较老的帖子说应该有一个安装选项--with-fts5,但是: $ brew reinstall sqlite3 --with-fts5 ... Error: invalid option: --with-fts5 未启用fts3\u标记器。我认为必须有一种简单的方法来使用Brew安装/启用扩展,而无需从Brew之外的源代码进行编译 $ sqlite3 SQLite version 3.35.5 2021-04-19

对于随Brew安装的SQLite3,是否有一种简单的方法来启用FTS5扩展?一些较老的帖子说应该有一个安装选项
--with-fts5
,但是:

$ brew reinstall sqlite3 --with-fts5
...
Error: invalid option: --with-fts5
未启用
fts3\u标记器
。我认为必须有一种简单的方法来使用Brew安装/启用扩展,而无需从Brew之外的源代码进行编译

$ sqlite3
SQLite version 3.35.5 2021-04-19 18:32:05
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> .dbconfig
          defensive off
            dqs_ddl on
            dqs_dml on
        enable_fkey off
        enable_qpsg off
     enable_trigger on
        enable_view on
     fts3_tokenizer off
 legacy_alter_table off
 legacy_file_format off
     load_extension on
   no_ckpt_on_close off
     reset_database off
        trigger_eqp off
     trusted_schema on
    writable_schema off

$ brew info sqlite3
sqlite: stable 3.35.5 (bottled) [keg-only]
Command-line interface for SQLite
https://sqlite.org/
/usr/local/Cellar/sqlite/3.35.5 (11 files, 4.2MB)
  Built from source on 2021-05-18 at 08:54:33
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/sqlite.rb
...
尝试使用CFLAGS环境:

编辑:

不需要重建以启用fts5。sqlite 3.35.5包已启用fts5模块

$ brew fetch sqlite
...
$ tar xzf ~/Library/Caches/Homebrew/downloads/61d40ad2021e894bcf4c7475eea2dbbfee14c4426b1bbb1816c4055ad1c70b50--sqlite--3.35.5.catalina.bottle.tar.gz -O sqlite/3.35.5/lib/libsqlite3.0.dylib \
  | strings - | grep '^fts5: 20\|trigram'
trigram
fts5: 2021-04-19 18:32:05 1b256d97b553a9611efca188a3d995a2fff712759044ba480f9a0c9e98fae886

我也在trac邮件列表上写过你,但也会在这里发布

如果您选中,则似乎有一个选项
--enable-fts5
,但它似乎也被故障禁用。也就是说,他们指向一个“合并”(页面中有一个指向它的链接),如果您编译“合并”,您可以使用此选项


Markus已启用FTS5。关于我所经历的问题的根源,我错了

>>> import sqlite3
>>> import pprint
>>> db = sqlite3.connect(':memory:')
>>> cursor = db.execute('PRAGMA COMPILE_OPTIONS')
>>> pprint.pprint(cursor.fetchall())
[(u'BUG_COMPATIBLE_20160819',),
 (u'COMPILER=clang-12.0.5',),
 (u'DEFAULT_CACHE_SIZE=2000',),
 (u'DEFAULT_CKPTFULLFSYNC',),
 (u'DEFAULT_JOURNAL_SIZE_LIMIT=32768',),
 (u'DEFAULT_PAGE_SIZE=4096',),
 (u'DEFAULT_SYNCHRONOUS=2',),
 (u'DEFAULT_WAL_SYNCHRONOUS=1',),
 (u'ENABLE_API_ARMOR',),
 (u'ENABLE_COLUMN_METADATA',),
 (u'ENABLE_DBSTAT_VTAB',),
 (u'ENABLE_FTS3',),
 (u'ENABLE_FTS3_PARENTHESIS',),
 (u'ENABLE_FTS3_TOKENIZER',),
 (u'ENABLE_FTS4',),
 (u'ENABLE_FTS5',),
 (u'ENABLE_JSON1',),
 (u'ENABLE_LOCKING_STYLE=1',),
 (u'ENABLE_PREUPDATE_HOOK',),
 (u'ENABLE_RTREE',),
 (u'ENABLE_SESSION',),
 (u'ENABLE_SNAPSHOT',),
 (u'ENABLE_SQLLOG',),
 (u'ENABLE_STMT_SCANSTATUS',),
 (u'ENABLE_UNKNOWN_SQL_FUNCTION',),
 (u'ENABLE_UPDATE_DELETE_LIMIT',),
 (u'HAS_CODEC_RESTRICTED',),
 (u'HAVE_ISNAN',),
 (u'MAX_LENGTH=2147483645',),
 (u'MAX_MMAP_SIZE=1073741824',),
 (u'MAX_VARIABLE_NUMBER=500000',),
 (u'OMIT_AUTORESET',),
 (u'OMIT_LOAD_EXTENSION',),
 (u'STMTJRNL_SPILL=131072',),
 (u'THREADSAFE=2',),
 (u'USE_URI',)]

我还没有找到将
--enable-fts5
选项传递给Homebrew的方法。也许您可以查看此链接,它也说明了如何编辑安装脚本,并显示了一个示例。同样,我不使用自制软件,所以我无法测试。
brew
提供预编译版本,
CFLAGS
不执行任何操作,除非您使用
brew安装--build from source
从源代码构建。
>>> import sqlite3
>>> import pprint
>>> db = sqlite3.connect(':memory:')
>>> cursor = db.execute('PRAGMA COMPILE_OPTIONS')
>>> pprint.pprint(cursor.fetchall())
[(u'BUG_COMPATIBLE_20160819',),
 (u'COMPILER=clang-12.0.5',),
 (u'DEFAULT_CACHE_SIZE=2000',),
 (u'DEFAULT_CKPTFULLFSYNC',),
 (u'DEFAULT_JOURNAL_SIZE_LIMIT=32768',),
 (u'DEFAULT_PAGE_SIZE=4096',),
 (u'DEFAULT_SYNCHRONOUS=2',),
 (u'DEFAULT_WAL_SYNCHRONOUS=1',),
 (u'ENABLE_API_ARMOR',),
 (u'ENABLE_COLUMN_METADATA',),
 (u'ENABLE_DBSTAT_VTAB',),
 (u'ENABLE_FTS3',),
 (u'ENABLE_FTS3_PARENTHESIS',),
 (u'ENABLE_FTS3_TOKENIZER',),
 (u'ENABLE_FTS4',),
 (u'ENABLE_FTS5',),
 (u'ENABLE_JSON1',),
 (u'ENABLE_LOCKING_STYLE=1',),
 (u'ENABLE_PREUPDATE_HOOK',),
 (u'ENABLE_RTREE',),
 (u'ENABLE_SESSION',),
 (u'ENABLE_SNAPSHOT',),
 (u'ENABLE_SQLLOG',),
 (u'ENABLE_STMT_SCANSTATUS',),
 (u'ENABLE_UNKNOWN_SQL_FUNCTION',),
 (u'ENABLE_UPDATE_DELETE_LIMIT',),
 (u'HAS_CODEC_RESTRICTED',),
 (u'HAVE_ISNAN',),
 (u'MAX_LENGTH=2147483645',),
 (u'MAX_MMAP_SIZE=1073741824',),
 (u'MAX_VARIABLE_NUMBER=500000',),
 (u'OMIT_AUTORESET',),
 (u'OMIT_LOAD_EXTENSION',),
 (u'STMTJRNL_SPILL=131072',),
 (u'THREADSAFE=2',),
 (u'USE_URI',)]