| Index: src/scripts/install_packages.sh
|
| diff --git a/src/scripts/install_packages.sh b/src/scripts/install_packages.sh
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..b049ffa292f3754d3767c72ed0339c1d334e071c
|
| --- /dev/null
|
| +++ b/src/scripts/install_packages.sh
|
| @@ -0,0 +1,82 @@
|
| +#!/bin/sh
|
| +
|
| +# Copyright (c) 2009 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.
|
| +
|
| +# Sets up the chromium-based os from inside a chroot of the root fs.
|
| +# NOTE: This script should be called by build_image.sh. Do not run this
|
| +# on your own unless you know what you are doing.
|
| +
|
| +set -e
|
| +
|
| +# Read options from the config file created by build_image.sh.
|
| +echo "Reading options..."
|
| +cat "$(dirname $0)/customize_opts.sh"
|
| +. "$(dirname $0)/customize_opts.sh"
|
| +
|
| +PACKAGE_LIST_FILE="${SETUP_DIR}/package-list-prod.txt"
|
| +PACKAGE_LIST_FILE2="${SETUP_DIR}/package-list-2.txt"
|
| +COMPONENTS=`cat $PACKAGE_LIST_FILE | grep -v ' *#' | grep -v '^ *$' | sed '/$/{N;s/\n/ /;}'`
|
| +
|
| +# Create the temporary apt source.list used to install packages.
|
| +cat <<EOF > /etc/apt/sources.list
|
| +deb file:"$SETUP_DIR" local_packages/
|
| +deb $SERVER $SUITE main restricted multiverse universe
|
| +EOF
|
| +
|
| +# Install prod packages
|
| +apt-get update
|
| +apt-get --yes --force-yes install $COMPONENTS
|
| +
|
| +# Create kernel installation configuration to suppress warnings,
|
| +# install the kernel in /boot, and manage symlinks.
|
| +cat <<EOF > /etc/kernel-img.conf
|
| +link_in_boot = yes
|
| +do_symlinks = yes
|
| +minimal_swap = yes
|
| +clobber_modules = yes
|
| +warn_reboot = no
|
| +do_bootloader = no
|
| +do_initrd = yes
|
| +warn_initrd = no
|
| +EOF
|
| +
|
| +# NB: KERNEL_VERSION comes from customize_opts.sh
|
| +apt-get --yes --force-yes --no-install-recommends \
|
| + install "linux-image-${KERNEL_VERSION}"
|
| +
|
| +# Setup bootchart. Due to dependencies, this adds about 180MB!
|
| +apt-get --yes --force-yes --no-install-recommends install bootchart
|
| +# TODO: Replace this with pybootchartgui, or remove it entirely.
|
| +apt-get --yes --force-yes --no-install-recommends install bootchart-java
|
| +
|
| +# Install additional packages from a second mirror, if necessary. This must
|
| +# be done after all packages from the first repository are installed; after
|
| +# the apt-get update, apt-get and debootstrap will prefer the newest package
|
| +# versions (which are probably on this second mirror).
|
| +if [ -f "$PACKAGE_LIST_FILE2" ]
|
| +then
|
| + COMPONENTS2=`cat $PACKAGE_LIST_FILE2 | grep -v ' *#' | grep -v '^ *$' | sed '/$/{N;s/\n/ /;}'`
|
| +
|
| + echo "deb $SERVER2 $SUITE2 main restricted multiverse universe" \
|
| + >> /etc/apt/sources.list
|
| + apt-get update
|
| + apt-get --yes --force-yes --no-install-recommends \
|
| + install $COMPONENTS2
|
| +fi
|
| +
|
| +# List all packages installed so far, since these are what the local
|
| +# repository needs to contain.
|
| +# TODO: better place to put the list. Must still exist after the chroot
|
| +# is dismounted, so build_image.sh can get it. That rules out /tmp and
|
| +# $SETUP_DIR (which is under /tmp).
|
| +sudo sh -c "/trunk/src/scripts/list_installed_packages.sh \
|
| + > /etc/package_list_installed.txt"
|
| +
|
| +# Clean up other useless stuff created as part of the install process.
|
| +rm -f /var/cache/apt/archives/*.deb
|
| +
|
| +# List all packages still installed post-pruning
|
| +sudo sh -c "/trunk/src/scripts/list_installed_packages.sh \
|
| + > /etc/package_list_pruned.txt"
|
|
|