Ubuntu पर रीडलाइन समर्थन के साथ SQLite


19

मेरे पास sqlite3उबंटू पर स्थापित पैकेज था और रीडलाइन के लिए कोई समर्थन नहीं है। इसका मतलब है कि कोई कमांड इतिहास नहीं है और उन अन्य निफ्टी सुविधाओं की रीडलाइन आपको देती है।

क्या यह एक कॉन्फ़िगरेशन या पैकेजिंग समस्या है? कहीं एक अलग पैकेज संग्रह है जो मुझे बॉक्स से बाहर रीडलाइन समर्थन देगा? या फिर, मैं sqlite3 को कैसे संकलित करता हूं यह सुनिश्चित करने के लिए कि यह रीडलाइन समर्थन है?

जवाबों:


36

आप हमेशा rlwrap का उपयोग कर सकते हैं:

rlwrap sqlite3 database.db

FYI करें, मैंने अभी-अभी अपनी हार्डी हर्न स्थापित की जाँच की है, और इसके sqlite3 में रीडलाइन समर्थन है।


Rlwrap के बारे में नहीं पता था। वास्तव में महान, धन्यवाद! मैं Kubuntu Jaunty Jackalope में sqlite3 पैकेज का उपयोग कर रहा हूं और किसी कारण से, यह रीडलाइन समर्थन के साथ नहीं आया।
हेलडर एस रिबेरो

20

मैं एक और उत्तर जोड़ता हूं क्योंकि यह Google पर " ubuntu sqlite3 readline " के लिए पहली हिट है :

Android SDK sqlite3बाइनरी का अपना संस्करण स्थापित करता है । यह बाइनरी readlineसमर्थन प्रदान नहीं करता है । यदि आपने Android SDK को अपने पथ में जोड़ लिया है, तो इससे आपको लग सकता है कि आपके पास कोई readlineसमर्थन नहीं है , वास्तव में हर Ubuntu पैकेज readlineसमर्थन के साथ संकलित है ।

यह उबंटू बग रिपोर्ट भी देखें जिसमें समान स्थिति का वर्णन है।


6
एनाकोंडा यही काम करता है। अरे! / usr / bin / sqlite3 ठीक काम करता है।
zbyszek

2
यह बात बताने के लिए धन्यवाद। मेरा Android SDK मेरे / usr / bin / sqlite3 एप्लिकेशन को छिपा रहा था।
ड्वेन क्रुक

1
यह मेरे macOS हाई सिएरा पर भी मामला था। आप रनिंग करके चेक कर सकते हैं which sqlite3
शेन क्रेयटन-यंग

1
+1, इससे मेरी समस्या के रूप में अच्छी तरह से था, मैं था $ANDROID_HOME/Sdk/platform-toolsके बाद $PATH, लेकिन मैं सिर्फ sqlite3 स्थापित नहीं किया। और मुझे यह धागा ठीक उसी खोज वाक्यांश का उपयोग करते हुए मिला।
मेवॉ

2
  1. सी स्रोत कोड युक्त ज़िप फ़ाइल https://www.sqlite.org/download.html (sqlite-amalgamation-nnnnnnn.zip) से डाउनलोड करें
  2. खोलना। प्राप्त करने के लिए इसे खोल दें। sqlite3.c, और .h फाइलें।
  3. यदि पहले से स्थापित नहीं है, तो libreadline और libncurses इंस्टॉल करें। उबंटू लिनक्स पर, नीचे कमांड चलाकर इंस्टॉल करें:

    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 की आवश्यकता है।

Sqlite3 बाइनरी को / usr / bin पर कॉपी करें या अपने पथ में जोड़ें।


1
यह सबसे अच्छा जवाब है। उबंटू 18.04 पर ध्यान दें, मुझे पहली बार इसे चलाने की आवश्यकता थी:sudo apt install libreadline-dev libncurses-dev
रेजिनजीन

धन्यवाद, मैंने पूर्णता प्रयोजनों के लिए sudo apt स्थापित चरणों को जोड़ा।
रोब डे ला क्रूज़

0

मैं इसके साथ अपनी खुद की बाइनरी संकलित करने में कामयाब रहा:

SQLite डाउनलोड पृष्ठ से "ऑटोकॉनफ़" स्रोत फ़ाइल डाउनलोड करें । अनज़िप और टार को निकालें, सोर्स डायरेक्टरी में बदलें।

स्रोत कोड को इसके साथ संकलित करें:

./configure --enable-readline
make

मैं रेडहैट पर दौड़ रहा हूं, इसलिए मुझे पहले से दौड़ना पड़ा yum install readline-devel। यह आपकी मशीन पर अलग हो सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.