cho phép hoàn thành tự động để cài đặt apt-get trong docker (ubfox 14.04)


Câu trả lời:


11

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-completionvà 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 updatemột lần:

# apt update
[...]        
# apt install firefox-d<tab>   
firefox-dbg  firefox-dev

Người giới thiệu

Chúng giúp tôi tìm ra cách hệ thống này hoạt động ...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.