17

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

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

4 ответа4

33

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

rlwrap sqlite3 database.db

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

18

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

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

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

1
  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 или добавьте его по своему пути.

0

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

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

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

./configure --enable-readline
make

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .