SQLite mit Readline-Unterstützung auf Ubuntu

4758
hsribei

Ich habe das sqlite3Paket auf Ubuntu installiert und readline wird nicht unterstützt. Das bedeutet, dass es keinen Befehlsverlauf gibt und diese anderen praktischen Funktionen, die Readline Ihnen bietet.

Ist dies eine Konfiguration oder ein Verpackungsproblem? Gibt es irgendwo ein anderes Paketarchiv, das Readline-Support aus der Box heraus geben würde? Oder wie kompiliere ich sqlite3 selbst und vergewissere mich, dass Readline unterstützt wird?

17

4 Antworten auf die Frage

33
Rudedog

Sie könnten immer rlwrap verwenden:

rlwrap sqlite3 database.db 

Zu Ihrer Information, ich habe gerade meine Hardy Heron-Installation überprüft, und die sqlite3 unterstützt Readline.

Wußte nichts von rlwrap. Wirklich großartig, danke! Ich verwende das sqlite3-Paket in Kubuntu Jaunty Jackalope, und aus irgendeinem Grund wurde Readline nicht unterstützt. hsribei vor 14 Jahren 0
Ich musste `rlwrap -a -N -c -i sqlite3` machen, damit dies funktioniert. https://superuser.com/a/999132/512500 kimbaudi vor 6 Jahren 0
16
theomega

I add another answer because this is the first hit for "ubuntu sqlite3 readline" on google:

The android SDK installs its own version of the sqlite3 binary. This binary does not provide readline support. If you added the Android SDK to your path this might make you think you have no readline support, in fact every Ubuntu package is compiled with readline support.

Also see this Ubuntu Bug Report which describes the same situation.

Anaconda macht dasselbe. Argh! / usr / bin / sqlite3 funktioniert einwandfrei. zbyszek vor 9 Jahren 4
Danke, dass du darauf hingewiesen hast. Mein Android-SDK versteckte meine / usr / bin / sqlite3-Anwendung. Dwayne Crooks vor 8 Jahren 0
Dies war auch auf meinem macOS High Sierra der Fall. Sie können dies überprüfen, indem Sie `which sqlite3` ausführen. Shane Creighton-Young vor 6 Jahren 0
1
Rob de la Cruz
  1. Laden Sie die ZIP-Datei mit C-Quellcode von https://www.sqlite.org/download.html (sqlite-amalgamation-nnnnnnn.zip) herunter.
  2. Entpacken Sie es, um shell.c, sqlite3.c und die .h-Dateien zu erhalten.
  3. Falls noch nicht installiert, installieren Sie libreadline und libncurses. Installieren Sie unter Ubuntu Linux den folgenden Befehl:

    sudo apt install libreadline-dev libncurses-dev

  4. Führen Sie den folgenden Befehl zum Erstellen aus:

    gcc -DSQLITE_ENABLE_FTS5 -DHAVE_READLINE shell.c sqlite3.c -lpthread -ldl -lm -lreadline -lncurses -o sqlite3

Hinweis: Sie benötigen -DHAVE_READLINE und -lreadline und -lncurses, um die Readline-Funktionalität zu erhalten.

Kopieren Sie die sqlite3-Binärdatei nach / usr / bin oder fügen Sie sie Ihrem Pfad hinzu.

Das ist die beste Antwort. Anmerkung zu Ubuntu 18.04 musste zuerst ausgeführt werden: `sudo apt install libreadline-dev libncurses-dev` rayzinnz vor 6 Jahren 0
Danke, ich habe die sudo apt Installationsschritte zur Vollständigkeit hinzugefügt. Rob de la Cruz vor 6 Jahren 0
0
Wernfried Domscheit

Es gelang mir, meine eigene Binärdatei damit zu kompilieren:

Laden Sie die Quelldatei "autoconf" von der SQLite-Downloadseite herunter . Entpacken und entpacken Sie das tar, wechseln Sie in das Quellverzeichnis.

Kompilieren Sie den Quellcode mit:

./configure --enable-readline make 

Ich bin mit RedHat unterwegs, also musste ich vorher laufen yum install readline-devel. Dies kann auf Ihrem Computer anders sein.

Das Kompilieren von Quellen mit der Option `--enable-readline` hat bei Ubuntu 18.04 LTS leider nicht funktioniert. Das einzige, was funktioniert hat, war `rlwrap -a -N -c -i sqlite3`. kimbaudi vor 6 Jahren 0