UbuntuでreadlineをサポートするSQLite


19

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

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

回答:


36

常にrlwrapを使用できます。

rlwrap sqlite3 database.db

参考までに、私は丈夫なheronのインストールを確認しましたが、sqlite3はreadlineをサポートしています。


rlwrapについて知りませんでした。本当に素晴らしい、ありがとう!Kubuntu Jaunty Jackalopeでsqlite3パッケージを使用していますが、何らかの理由でreadlineサポートが付属していません。
ヘルダーSリベイロ

20

これはGoogleの「ubuntu sqlite3 readline」の最初のヒットであるため、別の答えを追加します:

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

同じ状況について説明しているこのUbuntu Bug Reportも参照してください。


6
Anacondaも同じことを行います。ああ!/ usr / bin / sqlite3は正常に動作します。
-zbyszek

2
それを指摘してくれてありがとう。私のAndroid SDKは/ usr / bin / sqlite3アプリケーションを隠していました。
ドウェインクルークス

1
これは、macOS High Sierraでも同様です。を実行して確認できwhich sqlite3ます。
シェーンクレイトンヤング

1
+1、それも私の問題でした、私は$ANDROID_HOME/Sdk/platform-tools後に持っていましたが$PATH、sqlite3をインストールしませんでした。そして、私はまったく同じ検索フレーズを使用してこのスレッドを見つけました。
Meehow

2
  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にコピーするか、パスに追加します。


1
これが最良の答えです。Ubuntu 18.04に関する注意事項最初にこれを実行する必要がありましたsudo apt install libreadline-dev libncurses-dev
。– rayzinnz

おかげで、完全を期すためにsudo aptインストール手順を追加しました。
ロブデラクルス

0

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

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

以下を使用してソースコードをコンパイルします。

./configure --enable-readline
make

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.