SQLite có hỗ trợ readline trên Ubuntu


19

Tôi đã sqlite3cài đặt gói trên Ubuntu và không có hỗ trợ nào cho việc đọc. Điều đó có nghĩa là không có lịch sử lệnh và các tính năng tiện lợi khác mà đường đọc cung cấp cho bạn.

Đây là một cấu hình hoặc một vấn đề bao bì? Có một kho lưu trữ gói khác ở đâu đó sẽ cung cấp cho tôi hỗ trợ đọc ra khỏi hộp không? Hoặc nếu không, làm cách nào để tôi tự biên dịch sqlite3 để đảm bảo rằng nó có hỗ trợ đọc?

Câu trả lời:


36

Bạn luôn có thể sử dụng rlwrap:

rlwrap sqlite3 database.db

FYI, tôi vừa kiểm tra cài đặt diệc cứng của mình, và sqlite3 của nó có hỗ trợ đọc.


Không biết về rlwrap. Thực sự tuyệt vời, cảm ơn! Tôi đang sử dụng gói sqlite3 trong Kubfox Jasyy Jackalope và, vì một số lý do, nó không đi kèm với hỗ trợ đọc.
Helder S Ribeiro

20

Tôi thêm một câu trả lời khác bởi vì đây là lần truy cập đầu tiên cho " ubfox sqlite3 readline " trên google:

SDK Android cài đặt phiên bản sqlite3nhị phân của riêng nó . Nhị phân này không cung cấp readlinehỗ trợ. Nếu bạn đã thêm SDK Android vào đường dẫn của mình, điều này có thể khiến bạn nghĩ rằng bạn không có readlinehỗ trợ, thực tế mọi gói Ubuntu đều được biên dịch với readlinesự hỗ trợ.

Cũng xem Báo cáo lỗi Ubuntu này mô tả tình huống tương tự.


6
Anaconda cũng làm điều tương tự. Argh! / usr / bin / sqlite3 hoạt động tốt.
zbyszek

2
Cảm ơn đã chỉ ra rằng. SDK Android của tôi đã ẩn ứng dụng / usr / bin / sqlite3 của tôi.
Dwayne Crooks

1
Đây là trường hợp trên macOS High Sierra của tôi. Bạn có thể kiểm tra bằng cách chạy which sqlite3.
Shane Creighton-Young

1
+1, đó cũng là vấn đề của tôi, tôi đã có $ANDROID_HOME/Sdk/platform-toolssau đó $PATH, nhưng tôi không cài đặt sqlite3. Và tôi tìm thấy chủ đề này bằng cách sử dụng chính xác cùng một cụm từ tìm kiếm.
Meehow

2
  1. Tải xuống tệp zip chứa mã nguồn C từ https://www.sqlite.org/doad.html (sqlite-amalgamation-nnnnnnn.zip)
  2. Giải nén nó để có được các tập tin shell.c, sqlite3.c và .h.
  3. Nếu chưa được cài đặt, hãy cài đặt libreadline và libncurses. Trên Ubuntu Linux, cài đặt bằng cách chạy lệnh dưới đây:

    sudo apt cài đặt libreadline-dev libncurses-dev

  4. Chạy lệnh dưới đây để xây dựng:

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

Lưu ý: Bạn cần -DHAVE_READLINE và -lreadline và -lncurses để có được chức năng đọc.

Sao chép nhị phân sqlite3 vào / usr / bin hoặc thêm vào đường dẫn của bạn.


1
Đây là câu trả lời tốt nhất. Lưu ý trên Ubuntu 18.04 trước tiên tôi cần chạy cái này:sudo apt install libreadline-dev libncurses-dev
rayzinnz

Cảm ơn, tôi đã thêm các bước cài đặt sudo apt cho mục đích hoàn thiện.
Rob de la Cruz

0

Tôi quản lý để biên dịch nhị phân của riêng tôi với điều này:

Tải xuống tệp nguồn "autoconf" từ trang Tải xuống SQLite . Giải nén và giải nén tar, thay đổi thư mục nguồn.

Biên dịch mã nguồn với:

./configure --enable-readline
make

Tôi đang chạy trên RedHat, vì vậy tôi phải chạy yum install readline-develtrước. Điều này có thể khác trên máy của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.