włączanie automatycznego uzupełniania dla instalacji apt-get w oknie dokowanym (ubuntu 14.04)

Odpowiedzi:

11

Wiem, że to stare, ale też na to wpadłem. To jasne, co nie udaje się z pomocą w trybie debugowania bash: set -x.

Po wejściu do kontenera dokowanego apt install bash-completioni edycji użytkowników, .bashrcaby uzyskać właściwy katalog i wylogować się / zalogować (w zasadzie postępuj zgodnie z instrukcjami w q / a, do którego się odwołujesz .

Polecenie, które nie działa, to:

# apt-cache --no-generate pkgnames firefox
E: Could not open file  - open (2: No such file or directory)

Znajdujące się tam „--no-generowanie” powinno dać ci wskazówkę, co się dzieje (brakuje czegoś, czegoś, pamięci podręcznej). Jeśli uruchomisz go bez niego, otrzymasz listę pakietów.

Doprowadziło mnie to do wyszukiwania w niektórych moich odnośnikach referencyjnych tego, jak ten system powinien działać, i ostatecznie sprawdziłem konfigurację 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 "";

Zauważ, że „pkgcache” jest pusty. Wypróbuj to podczas normalnej instalacji (np. Kontenera LXD), a zauważysz, że jest ustawiony. To doprowadziło mnie do miejsca, które są przechowywane informacje o konfiguracji, /etc/apt/apt.conf.d/. W kontenerze dokera:

# grep cache *
[...]
docker-clean:Dir::Cache::pkgcache ""; Dir::Cache::srcpkgcache "";

Zauważysz powyżej, że obrazy dokerów aktywnie wyłączają tę wartość, aby zapobiec lokalnemu przechowywaniu pliku pamięci podręcznej (w celu zmniejszenia rozmiaru obrazu). Skomentowałem wszystko w tym pliku, więc plik wygląda teraz tak:

# 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 "";

A teraz wszystko działa (po uruchomieniu apt updateraz:

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

Bibliografia

Pomogło mi to dowiedzieć się, jak działa ten system ...

dpb
źródło