включення автоматичного завершення встановлення apt-get в docker (ubuntu 14.04)


Відповіді:


11

Я знаю, що це старе, але я наткнувся і на нього. Зрозуміло, що не вдається за допомогою режиму налагодження в bash : set -x.

Після того, як ви потрапите у свій контейнер докера та apt install bash-completion, і відредагуйте своїх користувачів, .bashrcщоб вони мали джерело потрібного каталогу та вихід / вхід (в основному виконайте кроки в посиланні q / a, на яке ви посилаєтесь .

Невдала команда:

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

"--No-generated" там повинен дати вам зрозуміти, що відбувається (щось, щось, кеш відсутній). Якщо ви працюєте без цього, ви отримуєте назад список пакетів.

Це підштовхнуло мене до пошуку в деяких моїх довідкових посиланнях на те, як повинна працювати ця система, і врешті-решт перевірити конфігурацію 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 "";

Зауважте, що "pkgcache" порожній. Спробуйте це при звичайній установці (наприклад, контейнер lxd), і ви помітите, що він встановлений. Це привело мене до того місця , що інформація про конфігурації зберігається, /etc/apt/apt.conf.d/. На контейнері докер:

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

Ви помітите вище, що зображення докера активно скидають це значення, щоб уникнути зберігання файлу кешу на локальному рівні (для зменшення розміру зображення). Я прокоментував усе у цьому файлі, тому файл тепер виглядає так:

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

А тепер все працює (після запуску apt updateодин раз:

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

Список літератури

Це допомогло мені зрозуміти, як ця система працювала ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.