web-dev-qa-db-ja.com

UbuntuでreadlineをサポートするSQLite

私はsqlite3パッケージがUbuntuにインストールされており、readlineはサポートされていません。つまり、コマンド履歴はなく、readlineが提供する他の気の利いた機能があります。

これは構成の問題ですか、それともパッケージの問題ですか?箱から出してreadlineサポートを提供する別のパッケージアーカイブがどこかにありますか?または、sqlite3を自分でコンパイルして、readlineがサポートされていることを確認するにはどうすればよいですか?

19

いつでもrlwrapを使用できます。

rlwrap sqlite3 database.db

参考までに、hardy heronのインストールを確認したところ、そのsqlite3はreadlineをサポートしています。

37
Rudedog

これはグーグルでの「ubuntu sqlite3 readline」の最初のヒットなので、別の答えを追加します。

Android SDKは、独自のバージョンのsqlite3バイナリをインストールします。このバイナリはreadlineサポートを提供しません。パスにAndroid SDKを追加した場合、readlineのサポートがないと思われるかもしれません。実際、すべてのUbuntuパッケージはreadlineのサポートでコンパイルされています。

同じ状況を説明している buntuバグレポート も参照してください。

20
theomega
  1. Cソースコードを含むZipファイルを https://www.sqlite.org/download.html (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 -lncurses -o sqlite3

注:readline機能を取得するには、-DHAVE_READLINEと-lreadlineおよび-lncursesが必要です。

Sqlite3バイナリを/ usr/binにコピーするか、パスに追加します。

3
Rob de la Cruz

私はこれで自分のバイナリをコンパイルすることができました:

SQLiteダウンロードページ から「autoconf」ソースファイルをダウンロードします。 tarを解凍して解凍し、ソースディレクトリに移動します。

ソースコードを次のようにコンパイルします。

./configure --enable-readline
make

私はRedHatで実行しているので、事前にyum install readline-develを実行する必要がありました。これは、マシンによって異なる場合があります。

0