apt-get autocomplete पैकेज नाम टूट गया है


71

किसी क्षण

apt-get install

स्वत: पूर्ण टूट गया था

Tabप्रेस के साथ संकुल का नाम देखना मेरे लिए बहुत उपयोगी था

इस स्वत: पूर्ण की मरम्मत कैसे करें?


अधिक जानकारी जोड़ने के लिए कृपया अपने प्रश्न को संपादित करें। जब आप टैब दबाते हैं तो अब यह क्या करता है? क्या कोई त्रुटि है? कृपया इसे शामिल करें।
ओली

आप किस पैकेज को खोजने की कोशिश कर रहे थे? क्या यह apt-cache search mypkg के माध्यम से उपलब्ध है मैं Oneiric पर कुबंटू का उपयोग कर रहा हूं मैं इसे अच्छी तरह से काम करता हूं।
koolhead17

उदाहरण के लिए मैं sudo apt-get install ruby ​​के बाद टैब दबाता हूं, और टर्मिनल मुझे माणिक के साथ सभी पैकेज प्रदर्शित करता है: ruby-mysql, ryby-dev, आदि
Вячеслав Логинов

हां, और जब आप टैब दबाते हैं तो आप क्या देखते हैं?
ओली

मुझे फ़ोल्डर सूची दिखाई देती है, जैसे cd + [TAB]
Вячеслав Логинов

जवाबों:


105

जैसा कि अन्य उत्तर के लिए टिप्पणियों में कहा गया है, पहले सुनिश्चित करें कि bash-completionस्थापित है:

sudo apt-get install bash-completion

और जाहिरा तौर पर @diapir के लिए, इसे पुन: स्थापित करने में मदद मिली:

sudo apt-get install --reinstall bash-completion

हालाँकि, मेरे लिए, समस्या यह नहीं थी कि बैश-समापन स्थापित या टूटा नहीं था, समस्या यह थी कि मैंने गलती से अपनी .bashrcफ़ाइल को हटा दिया था । आप इसे कॉपी करके एक नया प्राप्त कर सकते हैं /etc/skel:

cp /etc/skel/.bashrc ~/

2
धन्यवाद, bashrc टिप ने मेरे लिए समस्या को हल किया। आदेश sudoपर उपयोग chmodहालांकि अनावश्यक है, है ना?
BHSPitMonkey

2
में स्थित फ़ाइल /etc/है 0644/-rw-r--r--उपयोगकर्ता के साथ: समूह = root:root, और जब अपने उपयोगकर्ता फ़ोल्डर में प्रतिलिपि, स्वचालित रूप से करने के लिए उपयोगकर्ता जाना होगा: उपयोगकर्ता
kevinf

cp /etc/skel/.bashrc ~ / ने मुझे इस समस्या को हल करने में मदद की।
जैकब अब्राहम

स्थापना रद्द की और /etc/skel/.bashrc ने मेरी मदद की, धन्यवाद!
सेर्गी

36

निम्न कमांड टाइप करें:

sudo -H gedit /etc/bash.bashrc

इन पंक्तियों के लिए देखें:

# enable bash completion in interactive shells
# if ! shopt -oq posix; then
#  if [ -f /usr/share/bash-completion/bash_completion ]; then
#    . /usr/share/bash-completion/bash_completion
#  elif [ -f /etc/bash_completion ]; then
#    . /etc/bash_completion
#  fi
# fi

कुछ पंक्तियों को हटा दें, ताकि यह इस तरह दिखाई दे:

# enable bash completion in interactive shells
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

सहेजें, नज़दीकी टर्मिनल, फिर इसे फिर से खोलें।

मेरे पास 13.04 स्थापित करने के बाद यह समस्या है, और मैं इसे हल करता हूं।


यह केवल एक चीज थी जो मेरे लिए काम करती थी। धन्यवाद।
यह।

मेरे लिए एलिमेंट्री ओएस लोकी पर काम किया
रॉड्रिगो लोपेज गुएरा

4

से नवीनतम स्थिर रिलीज डाउनलोड करें http://bash-completion.alioth.debian.org/

./configure
make
sudo make install

सम्मिलित

if [ -f /etc/bash_completion ]; then
  . /etc/bash_completion
fi

~ से .bashrc


bash-completionपैकेज में है - क्या कोई कारण है कि आपने इसे मैन्युअल रूप से किया है? पैकेज को बहुत अधिक सटीक रूप से यह करना चाहिए :)
सीज़ियम

:) हमेशा की तरह, बैठना, मैनुअल पढ़ना, कॉन्फ़िगर करना, और फिर यह पता चला कि यह नरम भंडार में मौजूद है
Вячеслав Логинов

3
sudo apt-get install --reinstall bash-completionमेरे लिए किया।
डायपिर

2
@diapir, मुझे एक ही समस्या है, लेकिन केवल पुनर्स्थापना काम नहीं करती है। मुझे bashrcफाइल में लाइनें लगानी हैं।
अनवर

0

ध्यान दें कि इस कमांड का आउटपुट:

apt-config dump | grep "Dir::Cache"

कुछ इस तरह होना चाहिए:

Dir::Cache "var/cache/apt";
Dir::Cache::archives "archives/";
Dir::Cache::srcpkgcache "srcpkgcache.bin";
Dir::Cache::pkgcache "pkgcache.bin";

यदि मान Dir::Cache::pkgcacheरिक्त है, तो उपयुक्त स्वत: पूर्ण पैकेज नामों में सक्षम नहीं होगा। अपनी /etc/apt/apt.conf.d/फ़ाइलों पर एक नज़र डालें और इस कुंजी को खोजें ताकि यह सुनिश्चित हो सके कि यह खाली स्ट्रिंग पर सेट नहीं है।

grep -r pkgcache /etc/apt/apt.conf.d/

इस उत्तर पर भी एक नज़र डालें ।

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