Jak zrobić * dpkg-rekonfiguruj myślnik * jako bash automatycznie

15

Chcę zbudować obraz dokera z obrazu ubuntu. Wymagana jest ręczna zmiana domyślnego sh z myślnika na bash. (Ponieważ wymaga instalacji wielu pakietów rpm, które zawierają skrypty bash)

dpkg-reconfigure dash

Czy jest jakaś metoda, aby pozwolić tej akcji automatycznie bez zachowania człowieka?

W moim Dockerfile może to być zapisane jako (Metoda 1)

RUN dpkg-reconfigure dash

Próbowałem innej metody (metoda 2)

RUN ln -sf bash /bin/sh

Ale obie metody nie mogą działać.

Daniel YC Lin
źródło

Odpowiedzi:

3

Możesz sprawić, aby debconf zadawał tylko wysokie lub krytyczne pytania [1].

Dawny:

dpkg-reconfigure -p critical dash

dpkg-reconfigure użyje domyślnej odpowiedzi zdefiniowanej w skrypcie debconf. Możesz także użyć debconf-get-selections, aby wybrać inną odpowiedź dla instalacji nieinteraktywnej [2].

  1. https://wiki.debian.org/debconf
  2. http://blog.nutsfactory.net/2008/03/06/noninteractive-dpkg-installation-on-debian-system/
Rex Tsai
źródło
Jeśli chcesz zobaczyć, co się dzieje podczas uruchamiania dpkg-rekonfiguruj DEBCONF_DEBUG = programista dpkg-rekonfiguruj -p krytyczna kreska
Rex Tsai
brakuje debconf-get-selections. Nie mogę znaleźć w Package.debian.org/wheezy/all/debconf/filelist .
Daniel YC Lin
11
Korzystam debconf-show dashz opcji. echo "dash dash/sh boolean false" | debconf-set-selectionsi DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dashdo wykonania nieinteraktywnej konfiguracji.
Daniel YC Lin
2
@DanielYCLin, jeśli dodałeś to jako własną odpowiedź, głosowałbym za nią.
gazarsgo
26

Wklejając tutaj komentarz Daniela, ponieważ nie zależy on od ustawień domyślnych dpkg-reconfigure.

Aby uzyskać opcje:

debconf-show dash

Aby ustawić tę konkretną opcję na false:

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

i aby zrekonfigurować pakiet:

DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash

To zadziałało dla mnie z pliku 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
mgalgs
źródło