Я запускаю контейнер ubuntu в докер. Я спробував усе, що знайшов в Інтернеті, включаючи:
автоматичне завершення не працює для "sudo apt-get install"
але натискання "вкладки" все ще не впливає
Я запускаю контейнер ubuntu в докер. Я спробував усе, що знайшов в Інтернеті, включаючи:
автоматичне завершення не працює для "sudo apt-get install"
але натискання "вкладки" все ще не впливає
Відповіді:
Я знаю, що це старе, але я наткнувся і на нього. Зрозуміло, що не вдається за допомогою режиму налагодження в 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
Це допомогло мені зрозуміти, як ця система працювала ...