Tôi đang chạy một container Ubuntu trong docker. Tôi đã thử mọi thứ tôi tìm thấy trên mạng, bao gồm:
tự động hoàn thành không hoạt động cho "sudo apt-get install"
nhưng nhấn "tab" vẫn không có hiệu lực
Tôi đang chạy một container Ubuntu trong docker. Tôi đã thử mọi thứ tôi tìm thấy trên mạng, bao gồm:
tự động hoàn thành không hoạt động cho "sudo apt-get install"
nhưng nhấn "tab" vẫn không có hiệu lực
Câu trả lời:
Tôi biết điều này là cũ, nhưng tôi cũng chạy vào nó. Rõ ràng điều gì đang thất bại với sự trợ giúp của chế độ gỡ lỗi trong bash : set -x
.
Khi bạn nhận được vào bộ chứa docker của mình apt install bash-completion
và chỉnh sửa người dùng của bạn .bashrc
để tìm đúng thư mục và đăng xuất / đăng nhập (về cơ bản hãy làm theo các bước trong q / a bạn đã tham chiếu .
Lệnh bị lỗi là:
# apt-cache --no-generate pkgnames firefox
E: Could not open file - open (2: No such file or directory)
'- không tạo ra' trong đó sẽ cung cấp cho bạn manh mối những gì đang diễn ra (một cái gì đó, một cái gì đó, bộ nhớ cache bị thiếu). Nếu bạn chạy mà không có nó, bạn sẽ nhận được một danh sách các gói.
Điều này khiến tôi tìm kiếm trong một số liên kết tham chiếu của mình với cách hệ thống này được cho là hoạt động và cuối cùng kiểm tra cấu hình 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 "";
Lưu ý rằng 'pkgcache' trống. Hãy thử điều đó trên một bản cài đặt bình thường (như thùng chứa lxd) và bạn sẽ thấy nó được đặt. Điều này dẫn tôi đến nơi lưu trữ thông tin cấu hình /etc/apt/apt.conf.d/
. Trên container docker:
# grep cache *
[...]
docker-clean:Dir::Cache::pkgcache ""; Dir::Cache::srcpkgcache "";
Bạn sẽ lưu ý ở trên rằng hình ảnh docker đang tích cực bỏ đặt giá trị này, để ngăn apt lưu trữ tệp bộ nhớ cache cục bộ (để giảm kích thước hình ảnh). Tôi đã nhận xét tất cả mọi thứ trong tệp đó, vì vậy tệp bây giờ trông như sau:
# 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 "";
Và bây giờ, mọi thứ hoạt động (sau khi chạy apt update
một lần:
# apt update
[...]
# apt install firefox-d<tab>
firefox-dbg firefox-dev
Chúng giúp tôi tìm ra cách hệ thống này hoạt động ...