74 votes

Le nom du paquet de l'apt-get autocomplete est cassé

A un moment donné

apt-get install

L'autocomplétion ne fonctionnait pas

Il m'a été très utile de voir le nom des paquets avec Tab presse

Comment réparer cette autocomplétion ?

111voto

Ian Hincks Points 2706

Comme indiqué dans les commentaires de l'autre réponse, assurez-vous d'abord que bash-completion est installé :

sudo apt-get install bash-completion

et apparemment pour @diapir, cela a aidé de le réinstaller :

sudo apt-get install --reinstall bash-completion

Cependant, pour moi, le problème n'était pas que bash-completion n'était pas installé ou était cassé, le problème était que j'avais accidentellement supprimé mes .bashrc fichier. Vous pouvez en obtenir un nouveau en le copiant à partir de /etc/skel :

cp /etc/skel/.bashrc ~/

37voto

Nur Points 3881

Tapez la commande suivante :

sudo -H gedit /etc/bash.bashrc

Cherchez ces lignes :

# 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

Décommentez quelques lignes, pour que cela ressemble à ceci :

# 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

Enregistrez, fermez le terminal, puis rouvrez-le.

J'ai ce problème après avoir installé la version 13.04, et c'est ainsi que je le résous.

5voto

skabob11 Points 608

Notez que la sortie de cette commande :

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

Ça devrait être quelque chose comme ça :

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

Si la valeur de Dir::Cache::pkgcache est vide, apt ne sera pas en mesure de compléter automatiquement les noms des paquets. Jetez un coup d'œil à votre /etc/apt/apt.conf.d/ et recherchez cette clé pour vous assurer qu'elle n'est pas définie comme une chaîne vide.

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

Jetez également un coup d'œil à cette réponse .

4voto

Xorlev Points 1835

Téléchargez la dernière version stable à partir de http://bash-completion.alioth.debian.org/

./configure
make
sudo make install

insérer

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

dans ~/.bashrc

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X