54 votos

¿Cómo puedo apt-get-y dist-upgrade sin grub config símbolo del sistema?

Al Hacer apt-get (o aptitud) ejecutar con -y pero no pedir la sustitución de los archivos de configuración?

Hice lo siguiente:

ec2run ami-3c994355 --region us-east-1 -n 1 -t m1.large -z us-east-1d

En la máquina:

sudo apt-get update
sudo apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade

Todavía se me pone un mensaje pidiéndome que archivo de configuración que quiero usar. Estas son las líneas que vienen antes de que el símbolo del sistema:

Setting up grub-pc (1.99-21ubuntu3.1) ...

entonces:

                         ┌───────────────────────────────────────────────────────┤ Configuring grub-pc ├───────────────────────────────────────────────────────┐                              
                         │ A new version of configuration file /etc/default/grub is available, but the version installed currently has been locally modified.  │                              
                         │                                                                                                                                     │                              
                         │ What do you want to do about modified configuration file grub?                                                                      │                              
                         │                                                                                                                                     │                              
                         │                                     install the package maintainer's version                                                        │                              

78voto

Matthew Schinckel Puntos15596

El /etc/default/grub archivo se genera en el momento de la instalación, la cual es necesaria debido a que se integra con debconf. Esto significa que no puede tratarse como un dpkg conf archivo, y así dpkg el archivo de configuración de manejo no sabe acerca de esto.

En su lugar, utiliza ucfmás sofisticado Debian herramienta para la gestión de la configuración. Esto, por desgracia, no entiende dpkg opciones, por lo que el establecimiento Dpkg::Options::="--force-confdef" no ayuda. Tiene su propia manera de hacer no-símbolo de las actualizaciones, a pesar de que, a través de la UCF_FORCE_CONFFNEW y UCF_FORCE_CONFFOLD variables de entorno.

ucf utiliza debconf para la solicitud, por lo que el establecimiento de la debconf interfaz a noninteractive también el silencio el mensaje. Si usted realmente desea no interactivo actualizaciones que usted necesitará hacer esto de todos modos arbitrarios paquetes puede pedir a las preguntas de debconf (aunque generalmente no durante las actualizaciones).

Puede establecer la debconf interfaz como un agregando DEBIAN_FRONTEND=noninteractive a su entorno, o puede establecer de forma permanente mediante la ejecución de dpkg-reconfigure debconf y la selección de los no interactivos de la interfaz. Si estás usando no frontend vas a obtener la respuesta por defecto para cualquier duda que un paquete puede pedir.

Para ucf, la respuesta por defecto es "mantener el archivo existente".

Así, el comando completo para hacer una realidad, 100% guaranteed1 sin preguntar actualización sería.

sudo DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade

1: Es técnicamente posible para los paquetes a utilizar otro método de solicitud de debconf, pero esto es en contra de la política de Debian. Si se ejecuta a través de un paquete de este tipo, presentar un error.

15voto

metral Puntos121

va fuera de RAOF la respuesta y después de pasar incontables horas buscando en la web para ser capaz de realizar una completamente en manos de actualización y dist-upgrade en Ubuntu 12.04, se me ocurrió esto gracias al hecho de este post (https://bugs.launchpad.net/ubuntu/+fuente/grub/+bug/239674/comentarios/1) señala que el grub se adhiere a la UCF y no Dpkg Opciones cuando se desea utilizar los mantenedores del paquete de menú de grub.lst en lugar de cualquier posible el menú local.lst ediciones.

salí de la Dpkg fuerza-confnew opciones para otros paquetes que no son de grub.

#!/bin/bash

unset UCF_FORCE_CONFFOLD
export UCF_FORCE_CONFFNEW=YES
ucf --purge /boot/grub/menu.lst

export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get -o Dpkg::Options::="--force-confnew" --force-yes -fuy dist-upgrade

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: