當前位置: 首頁>>技術教程>>正文


在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/zh-tw/article/9275.html,未經允許,請勿轉載。