SQLite พร้อมการรองรับ readline บน Ubuntu


19

ฉันมีsqlite3แพ็คเกจที่ติดตั้งบน Ubuntu และไม่มีการรองรับ readline ซึ่งหมายความว่าไม่มีประวัติการใช้คำสั่งและคุณสมบัติอื่น ๆ ที่เป็นประโยชน์ readline ให้คุณ

นี่เป็นการกำหนดค่าหรือปัญหาบรรจุภัณฑ์หรือไม่? มีไฟล์เก็บถาวรของแพ็กเกจอื่นที่จะให้การสนับสนุน readline กับฉันหรือไม่ มิฉะนั้นฉันจะรวบรวม sqlite3 ด้วยตัวเองได้อย่างไรเพื่อให้แน่ใจว่ารองรับ readline?

คำตอบ:


36

คุณสามารถใช้ rlwrap:

rlwrap sqlite3 database.db

FYI ฉันเพิ่งตรวจสอบการติดตั้ง heron hery และ sqlite3 ของมันมีการรองรับ readline


ไม่รู้เรื่อง rlwrap ยอดเยี่ยมจริงๆขอบคุณ! ฉันใช้แพ็คเกจ sqlite3 ใน Kubuntu Jaunty Jackalope และด้วยเหตุผลบางอย่างมันไม่ได้มาพร้อมการรองรับ readline
Helder S Ribeiro

20

ฉันเพิ่มคำตอบอื่นเพราะนี่เป็นครั้งแรกสำหรับ " ubuntu sqlite3 readline " ใน google:

android SDK จะติดตั้งsqlite3ไบนารีของตัวเอง ไบนารีนี้ไม่ได้ให้readlineการสนับสนุน หากคุณเพิ่ม Android SDK ลงในพา ธ ของคุณสิ่งนี้อาจทำให้คุณคิดว่าคุณไม่ได้readlineรับการสนับสนุนอันที่จริงแล้วทุกแพ็คเกจของ Ubuntu นั้นได้รับการคอมไพล์ด้วยreadlineการสนับสนุน

โปรดดูรายงานข้อผิดพลาดของ Ubuntuซึ่งอธิบายสถานการณ์เดียวกัน


6
อนาคอนด้าทำสิ่งเดียวกัน โอ๊ะ! / usr / bin / sqlite3 ทำงานได้ดี
zbyszek

2
ขอบคุณสำหรับการชี้ให้เห็นว่า SDK Android ของฉันซ่อนแอปพลิเคชัน / usr / bin / sqlite3 ของฉัน
Dwayne Crooks

1
นี่เป็นกรณีของ macOS ของฉัน High Sierra เช่นกัน which sqlite3คุณสามารถตรวจสอบโดยการเรียกใช้
Shane Creighton-Young

1
1 มันเป็นปัญหาของฉันเป็นอย่างดีผมมีความ$ANDROID_HOME/Sdk/platform-toolsหลัง$PATHแต่ฉันก็ไม่ได้ติดตั้ง sqlite3 และฉันพบกระทู้นี้โดยใช้วลีค้นหาเดียวกันทั้งหมด
Meehow

2
  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 หรือเพิ่มเส้นทางของคุณ


1
นี่คือคำตอบที่ดีที่สุด หมายเหตุใน Ubuntu 18.04 ก่อนอื่นฉันต้องเปิดใช้งาน:sudo apt install libreadline-dev libncurses-dev
rayzinnz

ขอบคุณฉันได้เพิ่มขั้นตอนการติดตั้ง sudo apt เพื่อความสมบูรณ์
Rob de la Cruz

0

ฉันจัดการเพื่อรวบรวมไบนารีของตัวเองด้วยสิ่งนี้:

ดาวน์โหลด "autoconf" แฟ้มแหล่งที่มาจากข้อมูล SQLite หน้าดาวน์โหลด เปิดเครื่องรูดและแตก tar เปลี่ยนเป็นไดเรกทอรีต้นทาง

รวบรวมซอร์สโค้ดด้วย:

./configure --enable-readline
make

ฉันกำลังวิ่งบน RedHat ดังนั้นฉันต้องวิ่งไปyum install readline-develก่อน สิ่งนี้อาจแตกต่างจากเครื่องของคุณ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.