habilitación de la finalización automática para la instalación de apt-get en docker (ubuntu 14.04)

Respuestas:

11

Sé que esto es viejo, pero también me encontré con él. Está claro que lo que está fallando con la ayuda del modo de depuración en bash: set -x.

Una vez que ingrese su contenedor Docker apt install bash-completiony edite a sus usuarios .bashrcpara obtener el directorio correcto, y cierre sesión / inicie sesión (básicamente siga los pasos en el q / a al que hizo referencia) .

El comando que falla es:

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

El '--no-generate' allí debería darle una pista de lo que está sucediendo (algo, algo, falta el caché). Si corre sin él, obtiene una lista de paquetes.

Esto me llevó a buscar en algunos de mis enlaces de referencia sobre cómo se supone que funciona este sistema, y ​​finalmente inspeccionar la configuración adecuada:

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

Tenga en cuenta que 'pkgcache' está vacío. Pruebe eso en una instalación normal (como un contenedor lxd), y notará que está configurado. Esto me llevó al lugar que la información de configuración se almacena, /etc/apt/apt.conf.d/. En el contenedor acoplable:

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

Notará anteriormente que las imágenes de la ventana acoplable están desactivando activamente este valor, para evitar que el archivo de caché se almacene localmente (para reducir el tamaño de la imagen). Comenté todo en ese archivo, por lo que el archivo ahora se ve así:

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

Y ahora, las cosas funcionan (después de correr apt updateuna vez:

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

Referencias

Esto me ayudó a descubrir cómo funcionaba este sistema ...

dpb
fuente