Korzystam z kontenera Ubuntu w oknie dokowanym. Próbowałem wszystkiego, co znalazłem w Internecie, w tym:
automatyczne uzupełnianie nie działa dla „sudo apt-get install”
ale naciśnięcie „tab” nadal nie ma żadnego efektu
źródło
Korzystam z kontenera Ubuntu w oknie dokowanym. Próbowałem wszystkiego, co znalazłem w Internecie, w tym:
automatyczne uzupełnianie nie działa dla „sudo apt-get install”
ale naciśnięcie „tab” nadal nie ma żadnego efektu
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-completion
i edycji użytkowników, .bashrc
aby 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 update
raz:
# apt update
[...]
# apt install firefox-d<tab>
firefox-dbg firefox-dev
Pomogło mi to dowiedzieć się, jak działa ten system ...