summaryrefslogtreecommitdiff
path: root/helpers/lh_chroot_install-packages
diff options
context:
space:
mode:
authorChris Lamb <chris@chris-lamb.co.uk>2008-04-17 04:13:49 +0100
committerDaniel Baumann <daniel@debian.org>2011-03-09 19:03:32 +0100
commit36cc525945f8726662dbb35395a24064cee0098f (patch)
tree0fa56a1d775b64c68bbfed441499872f4463870f /helpers/lh_chroot_install-packages
parentae785955db43a135455b50b98807a26b9fb8805a (diff)
downloadlive-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-xhelpers/lh_chroot_install-packages68
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