apt-get Autocomplete-Paketname ist fehlerhaft

71

Irgendwann

apt-get install

Autocomplete war kaputt

Es war sehr nützlich für mich, den Paketnamen mit Tabpress zu sehen

Wie kann ich diese Autovervollständigung reparieren?

Вячеслав Логинов
quelle
Bitte bearbeiten Sie Ihre Frage, um weitere Informationen hinzuzufügen. Was macht es jetzt, wenn Sie die Tabulatortaste drücken? Liegt ein fehler vor Bitte legen Sie es bei.
Oli
Welches Paket haben Sie gesucht? Ist es über apt-cache search mypkg verfügbar? Ich verwende Kubuntu auf Oneiric. Ich sehe, dass es gut funktioniert.
koolhead17
Zum Beispiel drücke ich die Tabulatortaste, nachdem sudo apt-get ruby ​​installiert hat, und das Terminal zeigt mir alle Pakete mit ruby ​​an: ruby-mysql, ryby-dev usw.
Вячеслав Логинов
Ja, und was sehen Sie stattdessen, wenn Sie die Tabulatortaste drücken?
Oli
Ich sehe Ordnerliste, wie cd + [TAB]
Вячеслав Логинов

Antworten:

105

Stellen Sie, wie in den Kommentaren zu der anderen Antwort angegeben, zunächst sicher, dass bash-completionFolgendes installiert ist:

sudo apt-get install bash-completion

und anscheinend hat es bei @diapir geholfen, es neu zu installieren:

sudo apt-get install --reinstall bash-completion

Für mich bestand das Problem jedoch nicht darin, dass die Bash-Vervollständigung nicht installiert oder fehlerhaft war. Das Problem bestand darin, dass ich meine .bashrcDatei versehentlich gelöscht hatte . Sie können ein neues erhalten, indem Sie es kopieren von /etc/skel:

cp /etc/skel/.bashrc ~/
Ian Hincks
quelle
2
Danke, der bashrc-Tipp hat das Problem auch für mich gelöst. Die Verwendung des Befehls sudoon chmodist jedoch nicht erforderlich, oder?
BHSPitMonkey
2
Die Datei in /etc/befindet sich 0644/-rw-r--r--mit user: group = root:rootund wird beim Kopieren in Ihren Benutzerordner automatisch an user: user
kevinf gesendet.
cp /etc/skel/.bashrc ~ / hat mir geholfen, dieses Problem zu lösen.
Jacob Abraham
Neu installieren und kopiert /etc/skel/.bashrc hat mir geholfen, danke!
Sergey
36

Geben Sie den folgenden Befehl ein:

sudo -H gedit /etc/bash.bashrc

Suchen Sie nach diesen Zeilen:

# 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

Kommentieren Sie einige Zeilen aus, damit es so aussieht:

# 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

Speichern, Terminal schließen und erneut öffnen.

Ich habe dieses Problem nach der Installation von 13.04, und so löse ich es.

Nur
quelle
Dies war das einzige, was für mich funktioniert hat. Dankeschön.
this.foo
Arbeitete für mich auf Grund OS LoKi
Rodrigo Lopez Guerra
4

Laden Sie die neueste stabile Version von herunter http://bash-completion.alioth.debian.org/

./configure
make
sudo make install

einfügen

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

zu ~ / .bashrc

Вячеслав Логинов
quelle
bash-completionist in Paketen - gibt es einen Grund, warum Sie es manuell gemacht haben? Das Paket sollte so ziemlich genau das tun :)
Caesium
:) wie immer, sitzen, Handbücher lesen, konfigurieren, und dann stellt sich heraus, dass diese Software im Repository vorhanden ist
Вячеслав Логинов
3
sudo apt-get install --reinstall bash-completiontat es für mich.
Diapir
2
@diapir, ich habe das gleiche Problem, aber nur die Neuinstallation funktioniert nicht. Ich muss die Zeilen in der bashrcDatei anwenden .
Anwar,
0

Beachten Sie die Ausgabe dieses Befehls:

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

Sollte ungefähr so ​​aussehen:

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

Wenn der Wert von Dir::Cache::pkgcacheleer ist, kann apt die Paketnamen nicht automatisch vervollständigen. Schauen Sie sich Ihre /etc/apt/apt.conf.d/Dateien an und suchen Sie nach diesem Schlüssel, um sicherzustellen, dass er nicht auf leere Zeichenfolge eingestellt ist.

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

Schauen Sie sich auch diese Antwort an .

Iman
quelle