diff options
author | Chris Lamb <chris@chris-lamb.co.uk> | 2008-04-17 04:13:49 +0100 |
---|---|---|
committer | Daniel Baumann <daniel@debian.org> | 2011-03-09 19:03:32 +0100 |
commit | 36cc525945f8726662dbb35395a24064cee0098f (patch) | |
tree | 0fa56a1d775b64c68bbfed441499872f4463870f /helpers/lh_chroot_install-packages | |
parent | ae785955db43a135455b50b98807a26b9fb8805a (diff) | |
download | live-build-36cc525945f8726662dbb35395a24064cee0098f.zip live-build-36cc525945f8726662dbb35395a24064cee0098f.tar.gz |
Install most chroot packages in one ${LH_APT} call (Closes: #475739)
This patch installs (almost) all chroot packages by queueing the package
names into a single file and then installing that. It depends on my
previous patch to install local packages by using an APT mirror.
This speeds up image build causes even greater speedups once more packages
adopt triggers.
(Packages installed by debconf preseeding are not touched, nor are packages
installed by tasks.)
Diffstat (limited to 'helpers/lh_chroot_install-packages')
-rwxr-xr-x | helpers/lh_chroot_install-packages | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/helpers/lh_chroot_install-packages b/helpers/lh_chroot_install-packages new file mode 100755 index 0000000..dad074b --- /dev/null +++ b/helpers/lh_chroot_install-packages @@ -0,0 +1,68 @@ +#!/bin/sh + +# lh_chroot_install-packages(1) - install queued packages into chroot +# Copyright (C) 2006-2008 Daniel Baumann <daniel@debian.org> +# +# live-helper comes with ABSOLUTELY NO WARRANTY; for details see COPYING. +# This is free software, and you are welcome to redistribute it +# under certain conditions; see COPYING for details. + +set -e + +# Including common functions +LH_BASE="${LH_BASE:-/usr/share/live-helper}" + +for FUNCTION in "${LH_BASE}"/functions/*.sh +do + . "${FUNCTION}" +done + +# Setting static variables +DESCRIPTION="install queued packages into chroot" +HELP="" +USAGE="${PROGRAM} [--force]" + +Arguments "${@}" + +# Reading configuration files +Read_conffile config/all config/common config/bootstrap config/chroot config/binary config/source +Set_defaults + +Echo_message "Begin installing packages..." + +# Requiring stage file +Require_stagefile .stage/bootstrap + +# Checking stage file +Check_stagefile .stage/chroot_install-packages + +# Checking lock file +Check_lockfile .lock + +# Creating lock file +Create_lockfile .lock + +if [ -e chroot/root/chroot_packages ] && [ -s chroot/root/chroot_packages ] +then + # Restoring cache + Restore_cache cache/packages_packages + + # Installing packages + case "${LH_APT}" in + apt|apt-get) + Chroot "xargs --arg-file=/root/chroot_packages apt-get ${APT_OPTIONS} install" + ;; + + aptitude) + Chroot "xargs --arg-file=/root/chroot_packages aptitude ${APTITUDE_OPTIONS} install" + ;; + esac + + rm -f chroot/root/chroot_packages + + # Saving cache + Save_cache cache/packages_packages + + # Creating stage file + Create_stagefile .stage/chroot_install-packages +fi |