Cómo hacer * dpkg-reconfigure dash * como bash automáticamente


14

Quiero construir una imagen acoplable a partir de la imagen de ubuntu. Es necesario cambiar el sh predeterminado de guión a bash manualmente. (Debido a que requiere instalar muchos paquetes rpm que contienen scripts bash)

dpkg-reconfigure dash

¿Hay algún método para permitir esta acción automáticamente sin el comportamiento humano?

En mi Dockerfile puede estar escrito como (Método 1)

RUN dpkg-reconfigure dash

He probado otro método (Método 2)

RUN ln -sf bash /bin/sh

Pero, ambos métodos no pueden funcionar.

Respuestas:


3

Puede hacer que debconf solo pida preguntas altas o críticas [1].

Ex:

dpkg-reconfigure -p critical dash

dpkg-reconfigure usará la respuesta predeterminada definida en el script debconf. También puede usar debconf-get-selections para obtener una respuesta diferente para la instalación no interactiva [2].

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

Si desea ver qué sucede al ejecutar dpkg-reconfigure DEBCONF_DEBUG = desarrollador dpkg-reconfigure -p guión crítico
Rex Tsai

Falta debconf-get-selections. No puedo encontrarlo en packages.debian.org/wheezy/all/debconf/filelist .
Daniel YC Lin

10
Yo uso debconf-show dashpara obtener opciones. echo "dash dash/sh boolean false" | debconf-set-selectionsy DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dashpara hacer configuraciones no interactivas.
Daniel YC Lin

2
@DanielYCLin si agregaste eso como su propia respuesta, lo votaría.
gazarsgo

25

Pegar el comentario de Daniel como respuesta aquí ya que no se basa en la configuración predeterminada de dpkg-reconfigure.

Para obtener opciones:

debconf-show dash

Para configurar esta opción en particular para false:

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

y para reconfigurar realmente el paquete:

DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash

Esto funcionó para mí desde un 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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.