nama paket apt-get autocomplete rusak

71

Pada suatu saat

apt-get install

autocomplete rusak

Sangat berguna bagi saya untuk melihat nama paket dengan Tabpers

Bagaimana cara memperbaiki pelengkapan otomatis ini?

Вячеслав Логинов
sumber
Harap edit pertanyaan Anda untuk menambahkan informasi lebih lanjut. Apa yang dilakukan sekarang ketika Anda menekan tab? Apakah ada kesalahan? Harap sertakan.
Oli
Paket apa yang ingin Anda temukan? Apakah tersedia melalui mypkg pencarian apt-cache Saya menggunakan Kubuntu di Oneiric saya melihatnya bekerja dengan baik.
koolhead17
Misalnya saya menekan tab setelah sudo apt-get install ruby, dan terminal menampilkan saya semua paket dengan ruby: ruby-mysql, ryby-dev, dll.
Вячеслав Логинов
Ya, dan apa yang Anda lihat saat menekan tab?
Oli
Saya melihat daftar folder, seperti cd + [TAB]
Вячеслав Логинов

Jawaban:

105

Seperti yang dinyatakan dalam komentar untuk jawaban yang lain, pertama pastikan bahwa bash-completionsudah terpasang:

sudo apt-get install bash-completion

dan tampaknya untuk @diapir, itu membantu menginstalnya kembali:

sudo apt-get install --reinstall bash-completion

Namun, bagi saya, masalahnya bukan penyelesaian bash tidak diinstal atau rusak, masalahnya adalah saya tidak sengaja menghapus .bashrcfile saya . Anda bisa mendapatkan yang baru dengan menyalinnya dari /etc/skel:

cp /etc/skel/.bashrc ~/
Ian Hincks
sumber
2
Terima kasih, tip bashrc memecahkan masalah untuk saya juga. Penggunaan sudopada chmodperintah tidak perlu, kan?
BHSPitMonkey
2
file yang terletak di /etc/adalah 0644/-rw-r--r--dengan pengguna: group = root:root, dan ketika disalin ke folder pengguna Anda, secara otomatis akan pergi ke pengguna: user
kevinf
cp /etc/skel/.bashrc ~ / membantu saya mengatasi masalah ini.
Jacob Abraham
Instal ulang dan salin /etc/skel/.bashrc membantu saya, terima kasih!
Sergey
36

Ketikkan perintah berikut:

sudo -H gedit /etc/bash.bashrc

Cari baris berikut:

# 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

Batalkan komentar beberapa baris, agar terlihat seperti ini:

# 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

Simpan, tutup terminal, lalu buka kembali.

Saya memiliki masalah ini setelah menginstal 13.04, dan itulah cara saya mengatasinya.

Nur
sumber
ini adalah satu-satunya hal yang berhasil untuk saya. Terima kasih.
this.foo
Bekerja untuk saya di OS Dasar LoKi
Rodrigo Lopez Guerra
4

Unduh rilis stabil terbaru dari http://bash-completion.alioth.debian.org/

./configure
make
sudo make install

memasukkan

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

ke ~ / .bashrc

Вячеслав Логинов
sumber
bash-completionada dalam paket - apakah ada alasan Anda melakukannya secara manual? Paket harus melakukan cukup banyak ini :)
Cesium
:) seperti biasa, duduk, membaca manual, mengkonfigurasi, dan kemudian ternyata soft ini ada di repositori
Вячеслав Логинов
3
sudo apt-get install --reinstall bash-completionmelakukannya untukku.
diapir
2
@iapiapir, saya memiliki masalah yang sama, tetapi hanya menginstal ulang tidak berfungsi. Saya harus menerapkan baris dalam bashrcfile.
Anwar
0

Perhatikan bahwa output dari perintah ini:

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

Seharusnya seperti ini:

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

Jika nilai Dir::Cache::pkgcachekosong, apt tidak akan dapat secara otomatis melengkapi nama paket. Lihatlah /etc/apt/apt.conf.d/file-file Anda dan cari kunci ini untuk memastikan bahwa itu tidak disetel ke string kosong.

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

Lihat juga jawaban ini .

iman
sumber