Eu sei que isso é velho, mas eu também corri para ele. Está claro o que está falhando com a ajuda do modo de depuração no bash: set -x
.
Uma vez que você tenha o seu no container docker e apt install bash-completion
, edite seus usuários .bashrc
para obter o diretório correto, e faça logout / login (basicamente siga os passos no q / a que você referenciou .
O comando que está falhando é:
# apt-cache --no-generate pkgnames firefox
E: Could not open file - open (2: No such file or directory)
O '--no-generate' deve dar uma idéia do que está acontecendo (algo, algo, cache está faltando). Se você correr sem ele, você recebe uma lista de pacotes.
Isso me levou a pesquisar em alguns dos meus links de referência como esse sistema deveria funcionar e, eventualmente, inspecionar a configuração do 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 "";
Observe que o 'pkgcache' está vazio. Tente isso em uma instalação normal (como um contêiner lxd) e você perceberá que está definido. Isso me levou ao local em que as informações de configuração estão armazenadas, /etc/apt/apt.conf.d/
. No contêiner docker:
# grep cache *
[...]
docker-clean:Dir::Cache::pkgcache ""; Dir::Cache::srcpkgcache "";
Você notará que as imagens do docker estão ativamente desativando esse valor, para evitar o armazenamento do arquivo de cache localmente (para reduzir o tamanho da imagem). Eu comentei tudo nesse arquivo, então o arquivo agora se parece com:
# 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 "";
E agora, as coisas funcionam (depois de executar apt update
uma vez:
# apt update
[...]
# apt install firefox-d<tab>
firefox-dbg firefox-dev
Referências
Isso me ajudou a descobrir como esse sistema funcionava ...