Miałem sqlite3
zainstalowany pakiet na Ubuntu i nie ma wsparcia dla readline. Oznacza to, że nie ma historii poleceń i innych fajnych funkcji readline.
Czy to problem z konfiguracją lub pakowaniem? Czy jest gdzieś inne archiwum pakietów, które zapewniłoby mi wsparcie readline po wyjęciu z pudełka? Albo, jak sam skompilować sqlite3 upewniając się, że ma on obsługę readline?
Dodaję inną odpowiedź, ponieważ jest to pierwszy hit dla „ ubuntu sqlite3 readline ” w google:
Android SDK instaluje własną wersję
sqlite3
pliku binarnego. Ten plik binarny nie zapewniareadline
wsparcia. Jeśli do swojej ścieżki dodałeś zestaw Android SDK, może to oznaczać, że nie maszreadline
zestaw wsparcia, w rzeczywistości każdy pakiet Ubuntu jest kompilowany zreadline
obsługą.Zobacz także ten raport o błędach Ubuntu, który opisuje tę samą sytuację.
źródło
which sqlite3
.$ANDROID_HOME/Sdk/platform-tools
później$PATH
, ale po prostu nie zainstalowałem sqlite3. I znalazłem ten wątek, używając dokładnie tej samej wyszukiwanej frazy.Jeśli jeszcze nie został zainstalowany, zainstaluj libreadline i libncurses. W systemie Ubuntu Linux zainstaluj, uruchamiając poniższe polecenie:
sudo apt install libreadline-dev libncurses-dev
Uruchom poniższe polecenie, aby zbudować:
gcc -DSQLITE_ENABLE_FTS5 -DHAVE_READLINE shell.c sqlite3.c -lpthread -ldl -lm -lreadline -lncurses -o sqlite3
Uwaga: Potrzebujesz funkcji -DHAVE_READLINE oraz -lreadline i -lncurses, aby uzyskać funkcjonalność readline.
Skopiuj plik binarny sqlite3 do / usr / bin lub dodaj do swojej ścieżki.
źródło
sudo apt install libreadline-dev libncurses-dev
Udało mi się skompilować mój własny plik binarny z tym:
Pobierz plik źródłowy „autoconf” ze strony pobierania SQLite . Rozpakuj i rozpakuj tar, przejdź do katalogu źródłowego.
Skompiluj kod źródłowy za pomocą:
Korzystam z RedHat, więc musiałem
yum install readline-devel
wcześniej biegać . To może wyglądać inaczej na twoim komputerze.źródło