Le nom du paquet apt-get autocomplete est cassé

71

À un moment donné

apt-get install

autocomplete était cassé

Il m’a été très utile de voir les paquets name avec Tabpress

Comment réparer cette autocomplete?

Вячеслав Логинов
la source
Veuillez modifier votre question pour ajouter plus d'informations. Que fait-il maintenant lorsque vous appuyez sur l'onglet? Y a-t-il une erreur? S'il vous plaît inclure.
Oli
Quel paquet essayiez-vous de trouver? Est-il disponible via apt-cache search mypkg J'utilise Kubuntu sur Oneiric, je le vois bien fonctionner.
koolhead17
Par exemple, j'appuie sur l'onglet après sudo apt-get install ruby, et le terminal m'affiche tous les paquets contenant ruby: ruby-mysql, ryby-dev, etc.
Lire la suite
Oui, et que voyez-vous à la place lorsque vous appuyez sur la touche de tabulation?
Oli
Je vois la liste des dossiers, comme cd + [TAB]
Вячеслав Логинов

Réponses:

105

Comme indiqué dans les commentaires à l’autre réponse, assurez-vous d’abord qu’il bash-completionest installé:

sudo apt-get install bash-completion

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

sudo apt-get install --reinstall bash-completion

Cependant, pour moi, le problème n'était pas que bash-complétion n'était pas installé ou cassé, le problème était que j'avais effacé accidentellement mon .bashrcfichier. Vous pouvez en obtenir un nouveau en le copiant à partir de /etc/skel:

cp /etc/skel/.bashrc ~/
Ian Hincks
la source
2
Merci, le conseil de Bashrc a également résolu le problème. L'utilisation de sudosur la chmodcommande est inutile, n'est-ce pas?
BHSPitMonkey
2
le fichier situé dans /etc/est 0644/-rw-r--r--avec utilisateur: groupe = root:root, et lorsqu'il est copié dans votre dossier utilisateur, ira automatiquement à utilisateur: utilisateur
kevinf
cp /etc/skel/.bashrc ~ / m'a aidé à résoudre ce problème.
Jacob Abraham
Réinstaller et copier /etc/skel/.bashrc m'a aidé, merci!
Sergey
36

Tapez la commande suivante:

sudo -H gedit /etc/bash.bashrc

Recherchez 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 l'installation de 13.04, et c'est comme ça que je le résous.

Nur
la source
c'était la seule chose qui a fonctionné pour moi. Merci.
this.foo
J'ai travaillé pour l'OS élémentaire LoKi
Rodrigo Lopez Guerra.
4

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

./configure
make
sudo make install

insérer

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

à ~ / .bashrc

Вячеслав Логинов
la source
bash-completionest dans les paquets - y a-t-il une raison pour laquelle vous l'avez fait manuellement? Le paquet devrait faire à peu près exactement cela :)
Cesium
:) comme toujours, assis, en lisant des manuels, configurer, et puis il s'avère que ce logiciel est disponible dans le référentiel
Stock
3
sudo apt-get install --reinstall bash-completionl'a fait pour moi.
diapir
2
@diapir, j'ai le même problème, mais seulement réinstaller ne fonctionne pas. Je dois appliquer les lignes dans le bashrcfichier.
Anwar
0

Notez que la sortie de cette commande:

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

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::pkgcacheest vide, apt ne pourra pas compléter automatiquement les noms de paquets. Examinez vos /etc/apt/apt.conf.d/fichiers et recherchez cette clé pour vous assurer qu'elle n'est pas définie sur chaîne vide.

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

Regardez aussi cette réponse .

iman
la source