Estoy escribiendo un script para una instalación desatendida de un paquete que está en nuestro repositorio, es un paquete de software con uno de los archivos de configuración marcados de Debian. ¿Hay alguna opción que pueda pasar apt-get/ aptitudepara que acepte los nuevos archivos de configuración?
Básicamente necesito un apt/ aptitudeequivalente de dpkg --force-confnew
Necesito responder la siguiente pregunta planteada mientras apt-getse instala con una Y
Archivo de configuración `` / opt / application / conf / XXX.conf ''
==> File on system created by you or by a script.
==> File also in package provided by package maintainer.
What would you like to do about it ? Your options are:
Y or I : install the package maintainer's version
N or O : keep your currently-installed version
D : show the differences between the versions
Z : background this process to examine the
The default action is to keep your current version.
Información adicional:
Además, estoy pasando la sudocontraseña en una tubería para ejecutar el comando
echo "mysudopass"|sudo -S apt-get mypackage
Esto indica un error en la instalación cuando la instalación está en la fase interactiva de configuración.
Estoy en Ubuntu 10.04
versión apta: apt 0.7.25.3
Por qué no puedo usar dpkg: estos Debians se deben instalar desde Repo y no tengo Debians locales en mi máquina

Respuestas:
Puede pasar
dpkgparámetros aapt-getgustar estoCon
--force-confdefsi todavía existen archivos de configuración viejos, no van a conseguir reemplazado. Así que probablemente no lo use, solo lo estoy documentando para otros.sudono le pedirá una contraseña si niega la opción de autenticación para el usuario o agrega laNOPASSWDetiqueta en la entrada específica. p.ejfuente
Puedes probar lo siguiente:
Pero tenga en cuenta que esto tiene implicaciones, como contraseñas predeterminadas vacías (tal vez desee alguna herramienta de implementación / configuración como marioneta, chef, tela ...?).
Consulte sudoers (5) sobre cómo permitir
sudoinvocaciones sin contraseña .fuente
Alternativamente a lo que sugirió forcefsck, le sugiero que agregue esto a la configuración de APT para que no tenga que agregar estas opciones difíciles de escribir todo el tiempo. Además, esto sería útil para actualizaciones desatendidas si tiene esta configuración.
Cree un
/etc/apt/apt.conf.d/71debconfarchivo para tener el siguiente contenido:Nota (de Geoff): este cambio sería un cambio global. Si tiene otros paquetes en el sistema que desea obtener actualizaciones desatendidas pero que también se han configurado manualmente, esta no sería la solución adecuada.
fuente
Además de las otras respuestas, es posible que también deba configurar el entorno UCF_FORCE_CONFFNEW = 1 .
Por ejemplo, openssh en debian stretch usa ucf (no debconf)
openssh-server/openssh-7.4p1/debian/openssh-server.postinstpara preguntar sobre el archivo de configuración. (Se puede ver laopenssh-server.postinstusandodgetcontra http://security.debian.org/debian-security/pool/updates/main/o/openssh/openssh_7.4p1-10+deb9u4.dsc )Hemos tenido que usar todos los trucos en esta página además de ser usuarios liberales de la preselección de debconf .
Sin embargo, nos detuvimos
export DEBIAN_FRONTEND=noninteractiveporque queremos saber si nos perdimos algo (eso podría ser importante). Nuestro caso de uso es un operador que comienza la operación. Se espera que la actualización no sea interactiva, pero el operador está presente si algo sale mal y se presenta un cuadro de diálogo. Tu situación puede ser diferente.Pero
export DEBIAN_FRONTEND=noninteractivees tu proverbial mazo.Solo tenga cuidado: la configuración
-o Dpkg::Options::=--force-confnewy / oUCF_FORCE_CONFFNEW=1significa que todos los archivos de configuración de los paquetes instalados vuelven a los anteriores. Por ejemplo, en el caso deopenssh-server,/etc/ssh/sshd_configse restablecerá la configuración de fábrica. Y, por ejemploPermitRootLogin=yes, será eliminado. Pero, por supuesto, no usas eso, ¡así que estarás bien! ;-)fuente