apt-get autocomplete paket adı bozuldu


71

Bir anda

apt-get install

otomatik tamamlama bozuldu

TabBasında paket adı görmek benim için çok faydalı oldu.

Bu otomatik tamamlama nasıl onarılır?


Lütfen daha fazla bilgi eklemek için sorunuzu düzenleyin. Sekme bastığınızda şimdi ne yapar? Bir hata mı var? Lütfen ekleyin.
Oli

Hangi paketi bulmaya çalışıyordun? Apt-cache search yoluyla mevcut mu mypkg Oneiric'de Kubuntu kullanıyorum, iyi çalıştığını görüyorum.
koolhead17

Örneğin, sudo apt-get install
ruby'den sonra sekmeye basıyorum

Evet, sekmeye bastığınızda bunun yerine ne görüyorsunuz?
Oli

Klasör listesini görüyorum, cd + [TAB] gibi
Вячеслав Логинов

Yanıtlar:


105

Diğer cevaba yapılan yorumlarda belirtildiği gibi, ilk önce bash-completionkurulu olduğundan emin olun :

sudo apt-get install bash-completion

ve görünüşe göre @ diapir için, onu yeniden yüklemeye yardımcı oldu:

sudo apt-get install --reinstall bash-completion

Ancak, benim için sorun bash tamamlama yüklü veya bozuk değildi, sorun yanlışlıkla dosyamı sildim .bashrc. Yeni bir tanesini kopyalayarak alabilirsiniz /etc/skel:

cp /etc/skel/.bashrc ~/

2
Teşekkürler, bashrc ucu da benim için sorunu çözdü. Kullanımı sudoile ilgili chmodkomuta, gerçi gereksizdir?
BHSPitMonkey

2
içinde bulunan dosya user: group = ' /etc/dır ve kullanıcı klasörünüze kopyalandığında otomatik olarak kullanıcıya gider: user0644/-rw-r--r--root:root
kevinf

cp /etc/skel/.bashrc ~ / bu sorunu çözmeme yardım etti.
Jacob Abraham

Yeniden yükleyin ve kopyalayın /etc/skel/.bashrc bana yardımcı oldu, teşekkür ederim!
Sergey,

36

Aşağıdaki komutu yazın:

sudo -H gedit /etc/bash.bashrc

Bu çizgileri arayın:

# 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

Bu gibi görünmesi için bazı satırları uncomment:

# 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

Kaydet, terminali kapat, sonra tekrar aç.

13.04'ü yükledikten sonra bu sorunu yaşıyorum ve bu şekilde çözüyorum.


Bu benim için çalışan tek şeydi. teşekkür ederim.
this.foo

İlköğretim OS LoKi'de benim için çalıştı
Rodrigo Lopez Guerra

4

Sitesinden en son kararlı sürümü indirin http://bash-completion.alioth.debian.org/

./configure
make
sudo make install

eklemek

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

~ / .bashrc


bash-completionPaketler halinde - manuel olarak yapmanızın bir nedeni var mı? Paket hemen hemen tam olarak bu yapmalı :)
Caesium

:) her zamanki gibi, oturma, kitap okuma, yapılandırma ve sonra bu yumuşaklığın depoda olduğu
anlaşılıyor

3
sudo apt-get install --reinstall bash-completionbenim için yaptım.
diapir

2
@ diapir, Aynı sorunu var, ancak yalnızca yeniden yükleme çalışmıyor. Satırları bashrcdosyaya uygulamak zorundayım .
Anwar

0

Bu komutun çıktısını unutmayın:

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

Böyle bir şey olmalı:

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

Değeri Dir::Cache::pkgcacheboşsa, apt paket adlarını otomatik olarak tamamlayamaz. /etc/apt/apt.conf.d/Dosyalarınıza bir göz atın ve boş dizeye ayarlanmadığından emin olmak için bu anahtarı arayın.

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

Ayrıca bu cevaba bir göz atın .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.