SQLite с поддержкой readline в Ubuntu

4242
hsribei

Я установил sqlite3пакет в Ubuntu, и поддержка readline отсутствует. Это означает, что нет истории команд, и эти отличные функции readline дает вам.

Это проблема конфигурации или упаковки? Есть ли где-нибудь другой архив пакетов, который бы дал мне поддержку readline из коробки? Или как собрать сам sqlite3, чтобы он поддерживал readline?

17

4 ответа на вопрос

33
Rudedog

Вы всегда можете использовать rlwrap:

rlwrap sqlite3 database.db 

К вашему сведению, я только что проверил мою версию hardy heron, и его sqlite3 имеет поддержку readline.

Не знал о rlwrap. Действительно здорово, спасибо! Я использую пакет sqlite3 в Kubuntu Jaunty Jackalope, и по некоторым причинам он не поставляется с поддержкой readline. hsribei 14 лет назад 0
Я должен был сделать `rlwrap -a -N -c -i sqlite3`, чтобы это работало. https://superuser.com/a/999132/512500 kimbaudi 5 лет назад 0
16
theomega

Я добавляю еще один ответ, потому что это первый хит " ubuntu sqlite3 readline " в Google:

Android SDK устанавливает свою собственную версию sqlite3бинарника. Этот двоичный файл не обеспечивает readlineподдержку. Если вы добавили Android SDK к своему пути, это может заставить вас думать, что у вас нет readlineподдержки, фактически каждый пакет Ubuntu компилируется с readlineподдержкой.

Также смотрите этот отчет об ошибках Ubuntu, в котором описана та же ситуация.

Анаконда делает то же самое. Argh! / usr / bin / sqlite3 работает нормально. zbyszek 8 лет назад 4
Спасибо что подметил это. Мой Android SDK скрывал мое приложение / usr / bin / sqlite3. Dwayne Crooks 8 лет назад 0
Так было и на моей MacOS High Sierra. Вы можете проверить, запустив `which sqlite3`. Shane Creighton-Young 6 лет назад 0
1
Rob de la Cruz
  1. Загрузите zip-файл, содержащий исходный код C, по адресу https://www.sqlite.org/download.html (sqlite-amalgamation-nnnnnnn.zip)
  2. Разархивируйте его, чтобы получить файлы shell.c, sqlite3.c и .h.
  3. Если он еще не установлен, установите libreadline и libncurses. В Ubuntu Linux установите, выполнив следующую команду:

    sudo apt установить libreadline-dev libncurses-dev

  4. Запустите команду ниже, чтобы построить:

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

Примечание: вам нужны -DHAVE_READLINE и -lreadline и -lncurses, чтобы получить функциональность readline.

Скопируйте двоичный файл sqlite3 в / usr / bin или добавьте его по своему пути.

Это лучший ответ. Замечание по Ubuntu 18.04 Сначала мне нужно было выполнить следующее: `sudo apt install libreadline-dev libncurses-dev` rayzinnz 5 лет назад 0
Спасибо, я добавил шаги по установке sudo apt для целей полноты. Rob de la Cruz 5 лет назад 0
0
Wernfried Domscheit

Мне удалось собрать свой собственный двоичный файл с этим:

Загрузите исходный файл «autoconf» со страницы загрузки SQLite . Разархивируйте и распакуйте tar, перейдите в исходный каталог.

Скомпилируйте исходный код:

./configure --enable-readline make 

Я работаю на RedHat, поэтому мне пришлось бежать yum install readline-develзаранее. Это может отличаться на вашей машине.

К сожалению, компиляция из источника с параметром `--enable-readline` не работала для меня в Ubuntu 18.04 LTS. Единственное, что сработало, это `rlwrap -a -N -c -i sqlite3`. kimbaudi 5 лет назад 0

Похожие вопросы