우분투에서 readline을 지원하는 SQLite sqlite3우분투에 설치 패키지 및 readline에

나는했다 sqlite3우분투에 설치 패키지 및 readline에 대한 지원은 없습니다. 즉, 명령 기록이 없으며 readline이 제공하는 다른 멋진 기능이 있습니다.

구성 또는 패키징 문제입니까? 즉시 패키지 지원을 제공 할 수있는 다른 패키지 아카이브가 있습니까? 아니면 sqlite3을 readline 지원을 사용하도록 직접 컴파일하려면 어떻게해야합니까?



답변

항상 rlwrap을 사용할 수 있습니다.

rlwrap sqlite3 database.db

참고로, 방금 hardy heron 설치를 확인했으며 sqlite3에는 readline 지원이 있습니다.


답변

Google 에서 ” ubuntu sqlite3 readline “에 대한 첫 번째 조회이므로 다른 답변을 추가합니다 .

Android SDK는 자체 sqlite3바이너리 버전을 설치합니다 . 이 바이너리는 readline지원 하지 않습니다 . Android SDK를 경로에 추가하면 readline지원 이 없다고 생각할 수 있습니다 . 실제로 모든 Ubuntu 패키지는 readline지원 으로 컴파일됩니다 .

동일한 상황을 설명하는 이 Ubuntu 버그 보고서 도 참조하십시오 .


답변

  1. https://www.sqlite.org/download.html(sqlite-amalgamation-nnnnnnn.zip ) 에서 C 소스 코드가 포함 된 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

참고 : readline 기능을 사용하려면 -DHAVE_READLINE 및 -lreadline 및 -lncurses가 필요합니다.

sqlite3 바이너리를 / usr / bin에 복사하거나 경로에 추가하십시오.


답변

나는 이것으로 내 바이너리를 컴파일 할 수 있었다.

SQLite 다운로드 페이지 에서 “autoconf”소스 파일을 다운로드하십시오 . tar를 압축 해제하고 압축을 풀고 소스 디렉토리로 변경하십시오.

다음을 사용하여 소스 코드를 컴파일하십시오.

./configure --enable-readline
make

RedHat에서 실행 중이므로 yum install readline-devel미리 실행해야했습니다 . 컴퓨터와 다를 수 있습니다.