当前位置: 首页>>技术教程>>正文


在Ubuntu上具有readline支持的SQLite

, , , ,

问题描述

我在Ubuntu上安装了sqlite3软件包,并且不支持readline。这意味着没有命令历史记录,而readline提供的其他精美功能也给您提供。

这是配置还是包装问题?是否有其他软件包存档可以为我提供开箱即用的readline支持?否则,我如何自己编译sqlite3以确保它具有readline支持?

最佳答案

您可以随时使用rlwrap:

rlwrap sqlite3 database.db

仅供参考,我刚刚检查了我的安全苍鹭安装,其sqlite3确实具有readline支持。

次佳答案

我添加了另一个答案,因为这是google上“ ubuntu sqlite3 readline”的首次点击:

android SDK将安装自己的sqlite3二进制版本。该二进制文件不提供readline支持。如果您将Android SDK添加到路径中,这可能会使您认为您不具有readline支持,实际上,每个Ubuntu软件包都是使用readline支持编译的。

另请参见此Ubuntu Bug Report,它描述了相同的情况。

第三种答案

  1. https://www.sqlite.org/download.html下载包含C源代码的zip文件(sqlite-amalgamation-nnnnnnn.zip)

  2. 将其解压缩以获取shell.c,sqlite3.c和.h文件。

  3. 如果尚未安装,请安装libreadline和libncurses。在Ubuntu Linux上,通过运行以下命令进行安装:sudo apt install libreadline-dev libncurses-dev

  4. 运行以下命令来构建:gcc -DSQLITE_ENABLE_FTS5 -DHAVE_READLINE shell.c sqlite3.c -lpthread -ldl -lm -lreadline -incurses -o sqlite3

注意:您需要-DHAVE_READLINE以及-lreadline和-inccurses才能获得读取行功能。

将sqlite3二进制文件复制到/usr /bin或添加到您的路径。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/9275.html,未经允许,请勿转载。