| #!/bin/sh |
| # Copyright 2019 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| # Upgrades a Crostini container from Debian Stretch to Buster, |
| # expects to be run as root. |
| |
| set -ex |
| |
| # Use defaults for everything, we don't support answering prompts. |
| export DEBIAN_FRONTEND=noninteractive |
| |
| # No longer need to backport GPU support packages. |
| rm -f /etc/apt/sources.list.d/cros-gpu.list \ |
| /etc/apt/preferences.d/cros-gpu.pref |
| |
| # Make sure apt-keys are up to date. We don't use keyring.debian.org because it |
| # only serves debian-specific keys and that's not enough when we want the |
| # Google package signing key. however most people don't need this so ignore |
| # failures. |
| APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --batch \ |
| --refresh-keys --keyserver keyserver.ubuntu.com \ |
| EB4C1BFD4F042F6DDDCCEC917721F63BD38B4796 || true |
| |
| # The actual flip to buster. |
| sed -i 's/stretch/buster/g' /etc/apt/sources.list \ |
| /etc/apt/sources.list.d/cros.list |
| |
| # When conflicting configuration files exist between the local system and the |
| # upstream package, prefer the default option. If there is no default option, |
| # default to keeping the local version. This is required along with setting |
| # DEBIAN_FRONTEND above for a truly noninteractive upgrade experience. |
| APT_OPTIONS="-o Dpkg::Options::=--force-confdef |
| -o Dpkg::Options::=--force-confold" |
| |
| # If a previous run of this script was killed, it might have left packages in a |
| # half-configured state. Complete the configurations. |
| dpkg --configure -a || true |
| |
| # Upgrade everything to Buster versions. |
| apt-get ${APT_OPTIONS} update -y |
| apt-get ${APT_OPTIONS} upgrade -y |
| apt-get ${APT_OPTIONS} dist-upgrade -y |