Come fare * dpkg-reconfigure dash * come bash automaticamente


14

Voglio creare un'immagine docker dall'immagine Ubuntu. È necessario modificare manualmente lo sh predefinito da dash a bash. (Perché richiede l'installazione di molti pacchetti rpm che contengono script bash)

dpkg-reconfigure dash

Esiste un metodo per lasciare automaticamente questa azione senza comportamento umano?

Nel mio Dockerfile potrebbe essere scritto come (Metodo 1)

RUN dpkg-reconfigure dash

Ho provato un altro metodo (metodo 2)

RUN ln -sf bash /bin/sh

Ma entrambi i metodi non possono funzionare.

Risposte:


3

Puoi fare in modo che debconf faccia solo domande importanti o critiche [1].

Ex:

dpkg-reconfigure -p critical dash

dpkg-reconfigure utilizzerà la risposta predefinita definita nello script debconf. Puoi anche usare debconf-get-selections per raccogliere risposte diverse per l'installazione non interattiva [2].

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

Se vuoi vedere cosa succede durante l'esecuzione di dpkg-reconfigure DEBCONF_DEBUG = sviluppatore dpkg-reconfigure -p trattino critico
Rex Tsai

manca debconf-get-selections. Non riesco a trovare in pacchetti.debian.org/wheezy/all/debconf/filelist .
Daniel YC Lin,

10
Uso debconf-show dashper ottenere opzioni. echo "dash dash/sh boolean false" | debconf-set-selectionse DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dashper eseguire la configurazione non interattiva.
Daniel YC Lin,

2
@DanielYCLin se lo aggiungessi come risposta, lo voterei.
Gazarsgo,

25

Incollare il commento di Daniel come risposta qui poiché non si basa sulle impostazioni predefinite di dpkg-reconfigure.

Per ottenere le opzioni:

debconf-show dash

Per impostare questa particolare opzione su false:

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

e per riconfigurare effettivamente il pacchetto:

DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash

Questo ha funzionato per me da un file Docker:

# 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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.