apt-get ชื่อแพคเกจเติมข้อความอัตโนมัติที่ใช้งานไม่ได้


71

ในบางช่วงเวลา

apt-get install

การเติมข้อความอัตโนมัติเสีย

มันมีประโยชน์มากสำหรับฉันที่จะเห็นชื่อแพ็คเกจด้วยการTabกด

วิธีซ่อมแซมการเติมข้อความอัตโนมัตินี้?


โปรดแก้ไขคำถามของคุณเพื่อเพิ่มข้อมูลเพิ่มเติม เมื่อกดแท็บจะทำอย่างไร มีข้อผิดพลาดหรือไม่? กรุณารวมมัน
Oli

คุณพยายามค้นหาแพ็คเกจอะไร มันใช้ได้ผ่านการค้นหา apt-cache mypkg ฉันใช้ Kubuntu บน Oneiric ฉันเห็นว่ามันใช้งานได้ดี
koolhead17

ตัวอย่างเช่นฉันกด tab หลังจาก sudo apt-get install ruby ​​และเทอร์มินัลแสดงแพคเกจทั้งหมดที่มี ruby: ruby-mysql, ryby-dev, ฯลฯ
ВячеславЛогинов

ใช่แล้วคุณเห็นสิ่งใดเมื่อคุณกดที่แท็บ
Oli

ฉันเห็นรายการโฟลเดอร์เช่น cd + [TAB]
ВячеславЛогинов

คำตอบ:


105

ตามที่ระบุไว้ในความคิดเห็นของคำตอบอื่น ๆ ก่อนอื่นให้ตรวจสอบว่าbash-completionติดตั้งแล้ว:

sudo apt-get install bash-completion

และเห็นได้ชัดว่า @diapir มันช่วยในการติดตั้งใหม่:

sudo apt-get install --reinstall 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 ~ / ช่วยฉันแก้ปัญหานี้
Jacob Abraham

ติดตั้งใหม่และคัดลอก /etc/skel/.bashrc ช่วยฉันขอบคุณ!
Sergey

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
Rodrigo Lopez Guerra

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ไฟล์
Anwar

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.