Always add our apt_preference(5) pinning stanza when using local-packages.

This mostly reverts my most recent chroot_local-packages/preferences commit
as I found problems when re-running parts of the build: as the pinning
stanza was removed, calls to "apt-get upgrade" from within live-helper
would remove replacement packages placed in chroot_local-packages.

This isn't 100% foolproof - running apt-get upgrade on the binary image may
still attempt to remove replacement packages (heavy users of this should
probably be using their own repo for this sort of thing anyway).
This commit is contained in:
Chris Lamb 2008-08-08 21:16:42 +01:00 committed by Daniel Baumann
parent 45bc246fbb
commit 382d244050
2 changed files with 12 additions and 15 deletions

View File

@ -159,3 +159,13 @@ case "${1}" in
Usage
;;
esac
if ls config/chroot_local-packages/*.deb > /dev/null 2>&1
then
cat >>chroot/etc/apt/preferences <<EOF
Package: *
Pin: release o=chroot_local-packages
Pin-Priority: 1001
EOF
fi

View File

@ -47,32 +47,19 @@ then
# Restoring cache
Restore_cache cache/packages_chroot
# Ensure chroot_local-packages override all other packages
if [ -e chroot/etc/apt/preferences ]
then
cp chroot/etc/apt/preferences chroot/etc/apt/preferences.live
fi
cat >> chroot/etc/apt/preferences.live <<EOF
Package: *
Pin: release o=chroot_local-packages
Pin-Priority: 1001
EOF
# Installing packages
case "${LH_APT}" in
apt|apt-get)
Chroot "xargs --arg-file=/root/chroot_packages apt-get ${APT_OPTIONS} -o Dir::Etc::preferences=preferences.live install"
Chroot "xargs --arg-file=/root/chroot_packages apt-get ${APT_OPTIONS} install"
;;
aptitude)
Chroot "xargs --arg-file=/root/chroot_packages aptitude ${APTITUDE_OPTIONS} -o Dir::Etc::preferences=preferences.live install"
Chroot "xargs --arg-file=/root/chroot_packages aptitude ${APTITUDE_OPTIONS} install"
;;
esac
# Tidying up
rm -f chroot/root/chroot_packages
rm -f chroot/etc/apt/preferences.live
# Saving cache
Save_cache cache/packages_chroot