SQLite con supporto readline su Ubuntu


19

Ho sqlite3installato il pacchetto su Ubuntu e non c'è supporto per readline. Ciò significa che non esiste una cronologia dei comandi e quelle altre eleganti funzionalità che readline ti dà.

Si tratta di un problema di configurazione o di imballaggio? Esiste un archivio di pacchetti diverso da qualche parte che mi darebbe supporto readline fuori dalla scatola? Altrimenti, come posso compilare sqlite3 da solo assicurandomi che abbia il supporto readline?

Risposte:


36

Puoi sempre usare rlwrap:

rlwrap sqlite3 database.db

Cordiali saluti, ho appena controllato la mia installazione di airone, e il suo sqlite3 ha il supporto readline.


Non sapevo di rlwrap. Davvero fantastico, grazie! Sto usando il pacchetto sqlite3 in Kubuntu Jaunty Jackalope e, per qualche motivo, non è stato fornito con il supporto readline.
Helder S Ribeiro,

20

Aggiungo un'altra risposta perché questo è il primo successo di " ubuntu sqlite3 readline " su google:

L'SDK Android installa la propria versione del file sqlite3binario. Questo binario non fornisce readlinesupporto. Se hai aggiunto Android SDK al tuo percorso questo potrebbe farti pensare di non avere readlinesupporto, infatti ogni pacchetto Ubuntu è compilato con il readlinesupporto.

Vedi anche questo rapporto sui bug di Ubuntu che descrive la stessa situazione.


6
Anaconda fa la stessa cosa. Argh! / usr / bin / sqlite3 funziona bene.
zbyszek,

2
Grazie per la segnalazione. Il mio SDK per Android nascondeva la mia applicazione / usr / bin / sqlite3.
Dwayne Crooks,

1
Questo è stato il caso anche sul mio macOS High Sierra. Puoi controllare eseguendo which sqlite3.
Shane Creighton-Young,

1
+1, è stato anche il mio problema, l'ho fatto $ANDROID_HOME/Sdk/platform-toolsdopo $PATH, ma non ho installato sqlite3. E ho trovato questa discussione usando esattamente la stessa frase di ricerca.
Meehow, il

2
  1. Scarica il file zip contenente il codice sorgente C da https://www.sqlite.org/download.html (sqlite-amalgamation-nnnnnnn.zip)
  2. Decomprimilo per ottenere shell.c, sqlite3.c e i file .h.
  3. Se non è già installato, installa libreadline e libncurses. Su Ubuntu Linux, installa eseguendo il comando seguente:

    sudo apt installa libreadline-dev libncurses-dev

  4. Esegui il comando seguente per compilare:

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

Nota: per ottenere la funzionalità readline sono necessari -DHAVE_READLINE e -lreadline e -lncurses.

Copia il file binario sqlite3 in / usr / bin o aggiungi al tuo percorso.


1
Questa è la risposta migliore Nota su Ubuntu 18.04 Per prima cosa ho dovuto eseguire questo:sudo apt install libreadline-dev libncurses-dev
rayzinnz,

Grazie, ho aggiunto i passaggi di installazione di sudo apt per scopi di completezza.
Rob de la Cruz,

0

Sono riuscito a compilare il mio binario con questo:

Scarica il file sorgente "autoconf" dalla pagina di download di SQLite . Decomprimi ed estrai il tar, passa alla directory dei sorgenti.

Compilare il codice sorgente con:

./configure --enable-readline
make

Sto correndo su RedHat, quindi ho dovuto correre in yum install readline-develanticipo. Questo potrebbe essere diverso sul tuo computer.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.