ฉันกำลังเรียกใช้อูบุนตูคอนเทนเนอร์ในนักเทียบท่า ฉันลองทุกสิ่งที่ฉันพบทางออนไลน์รวมถึง:
การเติมข้อความอัตโนมัติไม่ทำงานสำหรับ "sudo apt-get install"
แต่การกด "แท็บ" ยังคงไม่มีผล
ฉันกำลังเรียกใช้อูบุนตูคอนเทนเนอร์ในนักเทียบท่า ฉันลองทุกสิ่งที่ฉันพบทางออนไลน์รวมถึง:
การเติมข้อความอัตโนมัติไม่ทำงานสำหรับ "sudo apt-get install"
แต่การกด "แท็บ" ยังคงไม่มีผล
คำตอบ:
ฉันรู้ว่ามันเก่า แต่ก็วิ่งเข้าไปหาด้วย set -x
มันชัดเจนว่าเป็นความล้มเหลวด้วยความช่วยเหลือของโหมดการแก้ปัญหาในทุบตี:
เมื่อคุณได้รับลงในภาชนะนักเทียบท่าของคุณและของคุณapt install bash-completion
และแก้ไขผู้ใช้ของคุณ.bashrc
ไปยังแหล่งไดเรกทอรีที่เหมาะสมและออกจากระบบ / เข้าสู่ระบบ (พื้นทำตามขั้นตอนในส่วนQ / คุณอ้างอิง
คำสั่งที่ล้มเหลวคือ:
# apt-cache --no-generate pkgnames firefox
E: Could not open file - open (2: No such file or directory)
'- ไม่มี - สร้าง' ในนั้นควรให้เบาะแสสิ่งที่เกิดขึ้นกับคุณ (บางสิ่งบางอย่างแคชหายไป) หากคุณทำงานโดยไม่มีคุณจะได้รับรายชื่อแพ็กเกจกลับมา
นี่ทำให้ฉันค้นหาลิงก์อ้างอิงบางส่วนของฉันว่าระบบนี้ทำงานอย่างไรและในที่สุดก็ตรวจสอบการกำหนดค่า apt:
root@edb76551d1dd:/var/cache/apt# apt-config dump |grep Dir::C
Dir::Cache "var/cache/apt/";
Dir::Cache::archives "archives/";
Dir::Cache::srcpkgcache "";
Dir::Cache::pkgcache "";
โปรดสังเกตว่า 'pkgcache' ว่างเปล่า ลองใช้การติดตั้งปกติ (เช่นคอนเทนเนอร์ lxd) และคุณจะสังเกตเห็นว่ามีการตั้งค่าไว้ สิ่งนี้ทำให้ฉันไปยังสถานที่ที่เก็บข้อมูลการกำหนดค่า, /etc/apt/apt.conf.d/
. บนคอนเทนเนอร์นักเทียบท่า:
# grep cache *
[...]
docker-clean:Dir::Cache::pkgcache ""; Dir::Cache::srcpkgcache "";
คุณจะสังเกตเห็นว่าภาพนักเทียบท่ากำลังยกเลิกการตั้งค่านี้อย่างแข็งขันเพื่อป้องกันไม่ให้มีการเก็บไฟล์แคชไว้ในเครื่อง (เพื่อลดขนาดภาพ) ฉันใส่ความคิดเห็นทุกอย่างในไฟล์ดังนั้นตอนนี้ไฟล์ดูเหมือน:
# file: /etc/apt/apt.conf.d/docker-clean
#DPkg::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };
#APT::Update::Post-Invoke { "rm -f /var/cache/apt/archives/*.deb /var/cache/apt/archives/partial/*.deb /var/cache/apt/*.bin || true"; };
#Dir::Cache::pkgcache ""; Dir::Cache::srcpkgcache "";
และตอนนี้สิ่งต่าง ๆ ทำงานได้ (หลังจากทำงานapt update
ครั้งเดียว:
# apt update
[...]
# apt install firefox-d<tab>
firefox-dbg firefox-dev
สิ่งเหล่านี้ช่วยให้ฉันทราบว่าระบบนี้ทำงานอย่างไร ...