apt-getオートコンプリートパッケージ名が壊れています


71

ある瞬間に

apt-get install

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

Tabプレスでパッケージ名を見るのはとても役に立ちました

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


質問を編集して詳細を追加してください。Tabキーを押すと、今何をしますか?エラーがありますか?含めてください。
オリ

どのパッケージを探していましたか?それはapt-cache検索mypkg経由で​​利用可能ですか?私はOneiricでKubuntuを使用していますが、うまく機能しています。
koolhead17

たとえば、私は、apt-getのルビーをインストールし、端末は私のルビーとすべてのパッケージを表示sudoの後にタブを押してください:ルビー-mysqlの、ryby-devを、など
ВячеславЛогинов

はい、タブを押すと代わりに何が表示されますか?
オリ

私はCD + [TAB]と同様に、フォルダの一覧を参照してください
ВячеславЛогинов

回答:


105

他の回答へのコメントで述べられているように、まずそれ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 ~/

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のインストール後にこの問題が発生しましたが、これが解決方法です。


これは私のために働いた唯一のものでした。ありがとうございました。
this.foo

Elementary OS LoKiで私のために働いた
ロドリゴロペスゲラ

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私のためにやった。
diapir

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

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

また、この答えを見てください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.