Як зробити * dpkg-переналаштування тире * як баш автоматично


15

Я хочу створити зображення докера з зображення ubuntu. Потрібно змінити типовий sh з тире на bash вручну. (Тому що для цього потрібно встановити багато пакетів, що містять bash-скрипти)

dpkg-reconfigure dash

Чи є якийсь метод, щоб дозволити цю дію автоматично, без поведінки людини?

У моєму Dockerfile це може бути написано як (метод 1)

RUN dpkg-reconfigure dash

Я спробував інший метод (метод 2)

RUN ln -sf bash /bin/sh

Але, обидва методи не можуть працювати.

Відповіді:


3

Ви можете змусити debconf задавати лише високі або критичні питання [1].

Наприклад:

dpkg-reconfigure -p critical dash

dpkg-configure буде використовувати відповідь за замовчуванням, визначену в сценарії debconf. Ви також можете використовувати debconf-get-select, щоб отримати різні відповіді на неінтерактивну установку [2].

  1. https://wiki.debian.org/debconf
  2. http://blog.nutsfactory.net/2008/03/06/noninteractive-dpkg-installation-on-debian-system/

Якщо ви хочете побачити, що відбувається під час керування dpkg-переналаштуванням DEBCONF_DEBUG = розробник dpkg-переконфігурувати -p критичний тире
Rex Tsai

відсутній вибір debconf-get-select. Я не можу знайти у пакетах.debian.org/wheezy/all/debconf/filelist .
Daniel YC Lin

11
Я використовую debconf-show dashдля отримання варіантів. echo "dash dash/sh boolean false" | debconf-set-selectionsі DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dashнеінтерактивне налаштування.
Daniel YC Lin

2
@DanielYCLin, якщо ви додали, що як власну відповідь, я б його схвалив.
gazarsgo

26

Вставте коментар Даніеля як відповідь тут, оскільки він не покладається на налаштування за замовчуванням з dpkg-reconfigure.

Щоб отримати варіанти:

debconf-show dash

Щоб встановити цю конкретну опцію false:

echo "dash dash/sh boolean false" | debconf-set-selections

і фактично налаштувати пакет:

DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash

Це працювало для мене з Dockerfile:

# make /bin/sh symlink to bash instead of dash:
RUN echo "dash dash/sh boolean false" | debconf-set-selections
RUN DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.