apt-get パッケージ名の自動補完が壊れている

ある瞬間

apt-get install

オートコンプリートが壊れた

パッケージ名をTabキーで表示できるのはとても便利でした。

このオートコンプリートを修復するには?

質問へのコメント (5)
ソリューション

他の回答のコメントにあるように、まずbash-completionがインストールされていることを確認してください:

sudo apt-get install bash-completion

で、どうやら@diapirさんには再インストールが有効だったようです:

sudo apt-get install --reinstall bash-completion

しかし私の場合、問題はbash-completionがインストールされていなかったり壊れていたりしたことではなく、誤って.bashrcファイルを削除してしまったことだった。etc/skel`からコピーして、新しいものを手に入れることができます:

cp /etc/skel/.bashrc ~/
解説 (4)

次のコマンドを入力する:

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をインストールした後にこの問題が発生しました。

解説 (2)

http://bash-completion.alioth.debian.org/`から最新の安定版リリースをダウンロードする

./configure
make
sudo make install

挿入

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

を~/.bashrcに追加します。

解説 (4)

このコマンドの出力に注意してください。

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の値が空の場合、aptはパッケージ名を自動で入力できません。 /etc/apt/apt.conf.d/ファイルを見て、このキーを検索して、空の文字列に設定されていないことを確認してください。

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

この回答もご覧ください。

解説 (0)