web-dev-qa-db-ja.com

カーネルのアップグレード後の無人grub構成

今日、ubuntuサーバーの自動展開に取り組んでいます。新しいカーネルへのアップグレードを試みるapt-get upgradeを使用したサーバーの自動更新で立ち往生しました。ログは次のようになります。

Setting up linux-image-3.2.0-24-generic (3.2.0-24.39) ...
Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst
(...)

次に質問が表示されます。

Package configuration

    ┌─────────────────────────────────┤  ├─────────────────────────────────┐    
    │ A new version of /boot/grub/menu.lst is available, but the version   │    
    │ installed currently has been locally modified.                       │    
    │                                                                      │    
    │ What would you like to do about menu.lst?                            │    
    │                                                                      │    
    │      install the package maintainer's version                        │    
    │      keep the local version currently installed                      │    
    │      show the differences between the versions                       │    
    │      show a side-by-side difference between the versions             │    
    │      show a 3-way difference between available versions              │    
    │      do a 3-way merge between available versions (experimental)      │    
    │      start a new Shell to examine the situation                      │    
    │                                                                      │    
    │                                                                      │    
    │                                <Ok>                                  │    
    │                                                                      │    
    └──────────────────────────────────────────────────────────────────────┘    

望ましい結果は、最初のオプションを選択して続行することです。

Replacing config file /run/grub/menu.lst with new version
Updating /boot/grub/menu.lst ... done

手動でアップグレードを実行した後、debconf-get-selectionsを使用して、質問に対する正しい答えを調べました( 他の設定を参照 )。 update_grub_changeprompt_threewayが答えられるべき質問のようです。ただし、debconf-set-selectionsを使用してこれを設定すると、同じ質問が表示されます。

debconf-set-selections <<< "grub grub/update_grub_changeprompt_threeway select install_new"
apt-get -y dist-upgrade

この質問はどのように自動化できますか?

14
bouke

export DEBIAN_FRONTEND=noninteractiveを実行する前に、apt-get upgrade -yを使用してこれを回避できました。

15
Joel Rebello

Ubuntu 16.04では、このシーケンスは対話型ダイアログを回避する必要があります。

export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get upgrade -yq

-qフラグが重要であることに注意してください。

(参照: この質問 devopsで)

3
Philipp Claßen