Estoy ejecutando un contenedor ubuntu en docker. Probé todo lo que encontré en línea, incluyendo:
la finalización automática no funciona para "sudo apt-get install"
pero presionar "tab" aún no tiene efecto
fuente
Estoy ejecutando un contenedor ubuntu en docker. Probé todo lo que encontré en línea, incluyendo:
la finalización automática no funciona para "sudo apt-get install"
pero presionar "tab" aún no tiene efecto
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-completion
y edite a sus usuarios .bashrc
para 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 update
una vez:
# apt update
[...]
# apt install firefox-d<tab>
firefox-dbg firefox-dev
Esto me ayudó a descubrir cómo funcionaba este sistema ...