Мой потенциальный хостинг-провайдер предлагает запустить команду в терминале, чтобы сделать образ ОС сервера на основе KVM минимальным. Поскольку их KVM-шаблоны поставляются с пакетами, которые мне не нужны, я подумал, что могу использовать эту же команду для удаления нежелательных пакетов.
Эта команда начинается с DEBIAN_FRONTEND=noninteractive
, затем вызывается apt-get remove
следующим образом:
DEBIAN_FRONTEND=noninteractive apt-get remove --purge -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" package-1 package-2 ... package-n; apt-get -y autoremove; apt-get clean all
Я впервые сталкиваюсь с DEBIAN_FRONTEND
переменной среды, и до сих пор не смог найти полезную информацию. Поэтому мне интересно, что noninteractive
делает установка, и если это целесообразно, потому что я предполагаю, что значение ( noninteractive
) будет сохраняться.
apt
environment-variables
Asarluhi
источник
источник
Ответы:
Простое добавление
apt
команды с помощьюDEBIAN_FRONTEND=something
не сохраняется после отдельной команды, к которой она применяется.Эти
DEBIAN_FRONTEND
параметры описаны на страницах справочного руководства в разделе 7debconf
(вам может потребоваться установитьdebconf-doc
пакет, чтобы сделать их доступными в вашей системе). Отman 7 debconf
:Он также отмечает, что:
источник
DEBIAN_FRONTEND=noninteractive
часто используемые в Dockerfiles. Этот ответ заставляет меня задуматься, почему мы просто не используем--yes
флаг с командами apt, так как он будет более явным и в большинстве случаев будет соответствовать нашим потребностям.DEBIAN_FRONTEND
сsudo
, установите переменную внутриsudo
команды, а не для нее. То есть:sudo DEBIAN_FRONTEND=noninteractive apt-get install slrn
. Если вы установили параметр переменной env ранееsudo
, он будет действителен для самойsudo
команды иsudo
не будет копировать ее в выполняемуюapt-get
команду. Использование его междуsudo
и фактической командой являетсяsudo
синтаксисом для установки переменных env для запускаемой команды (см. Справочную страницу). Это дало мне трудные времена, поэтому я подумал, что хочу поделиться.noninteractive
, вы можете сделать это с помощью следующей команды:dpkg-reconfigure debconf --frontend=noninteractive