2011-10-17 5 views
21

Estoy escribiendo un script para una instalación desatendida de un paquete que está en nuestro Repo, es un paquete de software con uno de los Debians marcado config. ¿Hay alguna opción que pueda pasar a apt-get/aptitude para que acepte los nuevos archivos de configuración?Cómo hacer que apt-get acepte Nuevos archivos de configuración en una instalación desatendida de Debian desde Repo

Básicamente necesito un piso/aptitud equivalente de dpkg --force-confnew

tengo que responder a la siguiente pregunta planteada, mientras que apt-get instalación con un archivo de configuración Y


`/ opt/application/conf/XXX.conf '

==> Archivo en el sistema creado por usted o por un script.

==> Archivo también en paquete provisto por el mantenedor del paquete.

¿Qué le gustaría hacer al respecto? Sus opciones son:

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 

La acción predeterminada es mantener su versión actual.


Información adicional:

Además, yo estoy pasando la contraseña de sudo en una tubería para ejecutar el comando

echo "mysudopass" | sudo apt-get -S mypackage

Este está marcando 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 eso que cannotuse dpkg: Estos debians deben ser instalados de Repo y no tengo debians locales en mi máquina

Gracias Chicos por su ayuda con anticipación !!!!

+0

http://serverfault.com/questions/48724/100-non-interactive-debian-dist-upgrade –

Respuesta

10

Probé las sugerencias en las otras respuestas y descubrí que no era suficiente cuando intentaba instalar el paquete localepurge.

Después de usar debconf-set-selections para establecer lo que necesitaba, tenía que utilizar el siguiente:

DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confnew" install localepurge 

Sólo con la variable de entorno DEBIAN_FRONTEND establece en no interactivo podría forzar localepurge que ver lo que había pedido . Esto puede ser cierto para otros paquetes.

Por supuesto, con un script puede exportar la variable si así lo desea, pero tenga en cuenta que podría interferir con otros paquetes. Por ejemplo:

#!/bin/sh 
export DEBIAN_FRONTEND=noninteractive 
apt-get -o Dpkg::Options::="--force-confnew" install -y localepurge foo bar 

Cuando el dice -y apt-get dejar de hacer preguntas (ver el man page).

+0

¡Gracias señor! – Charaf

27

creo que el apt-get línea de comandos que estás buscando es

apt-get -o Dpkg::Options::="--force-confnew" install your-package 

cuanto a su problema -S sudo, tal vez trate de añadir algunos espacios alrededor de la '|' personaje. No es así, la pregunta How to pass the password to su/sudo/ssh without overriding the TTY? puede ser útil.

+1

impresionante . funciona ¡Muchas gracias! – RamNat

+2

Tuve que agregar -y también. apt-get -o Dpkg :: Options :: = "- force-confnew" install -y su-paquete – danielnegri

2

También puede haber apt configurado para hacerlo mediante la creación de /etc/apt/apt.conf.d/local y añadiendo:

Dpkg::Options { 
    "--force-confdef"; 
    "--force-confold"; 
} 
Cuestiones relacionadas