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.) Signed-off-by: Chris Lamb <chris@chris-lamb.co.uk>
This commit is contained in:
parent
1086ec4784
commit
478331c4e1
|
@ -48,9 +48,10 @@ lh_chroot_preseed ${*}
|
|||
lh_chroot_local-preseed ${*}
|
||||
lh_chroot_tasks ${*}
|
||||
lh_chroot_packageslists ${*}
|
||||
lh_chroot_packages ${*}
|
||||
lh_chroot_local-packageslists ${*}
|
||||
lh_chroot_local-packages ${*}
|
||||
lh_chroot_packages ${*}
|
||||
lh_chroot_install-packages ${*}
|
||||
lh_chroot_localization ${*}
|
||||
lh_chroot_local-includes ${*}
|
||||
lh_chroot_sysvinit ${*}
|
||||
|
|
|
@ -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
|
|
@ -33,9 +33,6 @@ Require_stagefile .stage/bootstrap
|
|||
|
||||
case "${1}" in
|
||||
install)
|
||||
# Restoring cache
|
||||
Restore_cache cache/packages_linux-image
|
||||
|
||||
Echo_message "Configuring file /etc/kernel-img.conf"
|
||||
|
||||
# Checking stage file
|
||||
|
@ -72,16 +69,13 @@ EOF
|
|||
do
|
||||
for PACKAGE in ${LH_LINUX_PACKAGES}
|
||||
do
|
||||
PACKAGES="${PACKAGES} ${PACKAGE}-${FLAVOUR}"
|
||||
echo ${PACKAGE}-${FLAVOUR} >> chroot/root/chroot_packages
|
||||
done
|
||||
done
|
||||
fi
|
||||
|
||||
# Installing linux-image, modules and ${LH_INITRAMFS}
|
||||
Apt install ${PACKAGES} ${LH_INITRAMFS}
|
||||
|
||||
# Saving cache
|
||||
Save_cache cache/packages_linux-image
|
||||
# Queue installation of linux-image and ${LH_INITRAMFS}
|
||||
echo ${LH_INITRAMFS} >> chroot/root/chroot_packages
|
||||
|
||||
# Creating stage file
|
||||
Create_stagefile .stage/chroot_linux-image
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
|
||||
# lh_chroot_local-packages(1) - install local packages into chroot
|
||||
# lh_chroot_local-packages(1) - queue install of local packages into chroot
|
||||
# Copyright (C) 2006-2008 Daniel Baumann <daniel@debian.org>
|
||||
#
|
||||
# live-helper comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
|
||||
|
@ -18,7 +18,7 @@ do
|
|||
done
|
||||
|
||||
# Setting static variables
|
||||
DESCRIPTION="install local packages into chroot"
|
||||
DESCRIPTION="queue install of local packages into chroot"
|
||||
HELP=""
|
||||
USAGE="${PROGRAM} [--force]"
|
||||
|
||||
|
@ -28,7 +28,7 @@ Arguments "${@}"
|
|||
Read_conffile config/all config/common config/bootstrap config/chroot config/binary config/source
|
||||
Set_defaults
|
||||
|
||||
Echo_message "Begin installing local packages..."
|
||||
Echo_message "Begin queueing installation of local packages..."
|
||||
|
||||
# Requiring stage file
|
||||
Require_stagefile .stage/bootstrap
|
||||
|
@ -44,13 +44,8 @@ Create_lockfile .lock
|
|||
|
||||
if ls chroot/root/local-packages/*.deb > /dev/null 2>&1
|
||||
then
|
||||
# Restoring cache
|
||||
Restore_cache cache/packages_local-packages
|
||||
|
||||
Apt install $(gunzip < chroot/root/local-packages/Packages.gz | awk '/^Package: / { print $2 }')
|
||||
|
||||
# Saving cache
|
||||
Save_cache cache/packages_local-packages
|
||||
gunzip < chroot/root/local-packages/Packages.gz | awk '/^Package: / { print $2 }' \
|
||||
>> chroot/root/chroot_packages
|
||||
|
||||
# Creating stage file
|
||||
Create_stagefile .stage/chroot_local-packages
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
|
||||
# lh_chroot_local-packageslists(1) - install local packages lists into chroot
|
||||
# lh_chroot_local-packageslists(1) - queue install of local packages lists into chroot
|
||||
# Copyright (C) 2006-2008 Daniel Baumann <daniel@debian.org>
|
||||
#
|
||||
# live-helper comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
|
||||
|
@ -18,7 +18,7 @@ do
|
|||
done
|
||||
|
||||
# Setting static variables
|
||||
DESCRIPTION="install local packages into chroot"
|
||||
DESCRIPTION="queue install of local packages lists into chroot"
|
||||
HELP=""
|
||||
USAGE="${PROGRAM} [--force]"
|
||||
|
||||
|
@ -28,7 +28,7 @@ Arguments "${@}"
|
|||
Read_conffile config/all config/common config/bootstrap config/chroot config/binary config/source
|
||||
Set_defaults
|
||||
|
||||
Echo_message "Begin installing local packages lists..."
|
||||
Echo_message "Begin queueing installation of local packages lists..."
|
||||
|
||||
# Requiring stage file
|
||||
Require_stagefile .stage/bootstrap
|
||||
|
@ -44,32 +44,16 @@ Create_lockfile .lock
|
|||
|
||||
if ls config/chroot_local-packageslists/* > /dev/null 2>&1
|
||||
then
|
||||
# Restoring cache
|
||||
Restore_cache cache/packages_local-packageslists
|
||||
|
||||
for PACKAGESLIST in config/chroot_local-packageslists/*
|
||||
for PACKAGES_LIST in config/chroot_local-packageslists/*
|
||||
do
|
||||
# Generate package list
|
||||
Expand_packagelist "$(basename ${PACKAGESLIST})" "config/chroot_local-packageslists" "${LH_BASE:-/usr/share/live-helper/lists}/lists" > chroot/root/"$(basename ${PACKAGESLIST})"
|
||||
|
||||
# Installing package list
|
||||
case "${LH_APT}" in
|
||||
apt|apt-get)
|
||||
Chroot "xargs --arg-file=/root/$(basename ${PACKAGESLIST}) apt-get ${APT_OPTIONS} install"
|
||||
;;
|
||||
|
||||
aptitude)
|
||||
Chroot "xargs --arg-file=/root/$(basename ${PACKAGESLIST}) aptitude ${APTITUDE_OPTIONS} install"
|
||||
;;
|
||||
esac
|
||||
|
||||
# Removing package list
|
||||
rm -f chroot/root/"$(basename ${PACKAGESLIST})"
|
||||
Expand_packagelist \
|
||||
"$(basename ${PACKAGES_LIST})" \
|
||||
"config/chroot_local-packageslists" \
|
||||
"${LH_BASE:-/usr/share/live-helper/lists}/lists" \
|
||||
>> chroot/root/chroot_packages
|
||||
done
|
||||
|
||||
# Saving cache
|
||||
Save_cache cache/packages_local-packageslists
|
||||
|
||||
# Creating stage file
|
||||
Create_stagefile .stage/chroot_local-packageslists
|
||||
fi
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
|
||||
# lh_chroot_packages(1) - install packages into chroot
|
||||
# lh_chroot_packages(1) - queue install of packages into chroot
|
||||
# Copyright (C) 2006-2008 Daniel Baumann <daniel@debian.org>
|
||||
#
|
||||
# live-helper comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
|
||||
|
@ -18,7 +18,7 @@ do
|
|||
done
|
||||
|
||||
# Setting static variables
|
||||
DESCRIPTION="install packages into chroot"
|
||||
DESCRIPTION="queue install of packages into chroot"
|
||||
HELP=""
|
||||
USAGE="${PROGRAM} [--force]"
|
||||
|
||||
|
@ -28,7 +28,7 @@ Arguments "${@}"
|
|||
Read_conffile config/all config/common config/bootstrap config/chroot config/binary config/source
|
||||
Set_defaults
|
||||
|
||||
Echo_message "Begin installing packages..."
|
||||
Echo_message "Begin queueing installation of packages..."
|
||||
|
||||
# Requiring stage file
|
||||
Require_stagefile .stage/bootstrap
|
||||
|
@ -44,14 +44,7 @@ Create_lockfile .lock
|
|||
|
||||
if [ -n "${LH_PACKAGES}" ] && [ "${LH_PACKAGES}" != "none" ]
|
||||
then
|
||||
# Restoring cache
|
||||
Restore_cache cache/packages_packages
|
||||
|
||||
# Installing packages
|
||||
Apt install ${LH_PACKAGES}
|
||||
|
||||
# Saving cache
|
||||
Save_cache cache/packages_packages
|
||||
echo ${LH_PACKAGES} >> chroot/root/chroot_packages
|
||||
|
||||
# Creating stage file
|
||||
Create_stagefile .stage/chroot_packages
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
|
||||
# lh_chroot_packageslists(1) - install packages lists into chroot
|
||||
# lh_chroot_packageslists(1) - queue install of packages lists into chroot
|
||||
# Copyright (C) 2006-2008 Daniel Baumann <daniel@debian.org>
|
||||
#
|
||||
# live-helper comes with ABSOLUTELY NO WARRANTY; for details see COPYING.
|
||||
|
@ -18,7 +18,7 @@ do
|
|||
done
|
||||
|
||||
# Setting static variables
|
||||
DESCRIPTION="install packages lists into chroot"
|
||||
DESCRIPTION="queue install of packages lists into chroot"
|
||||
HELP=""
|
||||
USAGE="${PROGRAM} [--force]"
|
||||
|
||||
|
@ -28,7 +28,7 @@ Arguments "${@}"
|
|||
Read_conffile config/all config/common config/bootstrap config/chroot config/binary config/source
|
||||
Set_defaults
|
||||
|
||||
Echo_message "Begin installing packages lists..."
|
||||
Echo_message "Begin queueing installation of packages lists..."
|
||||
|
||||
# Requiring stage file
|
||||
Require_stagefile .stage/bootstrap
|
||||
|
@ -44,35 +44,22 @@ Create_lockfile .lock
|
|||
|
||||
if [ -n "${LH_PACKAGES_LISTS}" ] && [ "${LH_PACKAGES_LISTS}" != "none" ]
|
||||
then
|
||||
# Restoring cache
|
||||
Restore_cache cache/packages_packageslists
|
||||
|
||||
for LIST in ${LH_PACKAGES_LISTS}
|
||||
do
|
||||
if [ -f ${LH_BASE:-/usr/share/live-helper}/lists/"${LIST}" ]
|
||||
then
|
||||
# Generating package list
|
||||
Expand_packagelist "${LIST}" "config/chroot_local-packageslists" "${LH_BASE:-/usr/share/live-helper}/lists" > chroot/root/${LIST}
|
||||
|
||||
# Installing package list
|
||||
case "${LH_APT}" in
|
||||
apt|apt-get)
|
||||
Chroot "xargs --arg-file=/root/${LIST} apt-get ${APT_OPTIONS} install"
|
||||
;;
|
||||
|
||||
aptitude)
|
||||
Chroot "xargs --arg-file=/root/${LIST} aptitude ${APTITUDE_OPTIONS} install"
|
||||
;;
|
||||
esac
|
||||
|
||||
# Removing package list
|
||||
rm -f chroot/root/"${LIST}"
|
||||
Expand_packagelist \
|
||||
"${LIST}" \
|
||||
"config/chroot_local-packageslists" \
|
||||
"${LH_BASE:-/usr/share/live-helper}/lists" \
|
||||
>> chroot/root/chroot_packages
|
||||
else
|
||||
Echo_warning "skipping installation of unknown packages list '${LIST}'."
|
||||
fi
|
||||
done
|
||||
|
||||
# Saving cache
|
||||
Save_cache cache/packages_packageslists
|
||||
|
||||
# Creating stage file
|
||||
Create_stagefile .stage/chroot_packageslists
|
||||
fi
|
||||
|
|
Loading…
Reference in New Issue