Merge "Perform package install outside of debootstrap"
This commit is contained in:
commit
fffe15e763
@ -1,2 +1,6 @@
|
||||
linux-image-amd64:
|
||||
arch: amd64
|
||||
linux-image-686:
|
||||
arch: i386
|
||||
systemd:
|
||||
systemd-sysv:
|
||||
|
@ -15,10 +15,6 @@
|
||||
#
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
# The filename needs to be 02-...: because the install-package script
|
||||
# is installed in the dpkg/pre-install/01-dpkg and that has to be executed
|
||||
# first.
|
||||
|
||||
if [ ${DIB_DEBUG_TRACE:-0} -gt 0 ]; then
|
||||
set -x
|
||||
@ -34,20 +30,28 @@ set -o pipefail
|
||||
function apt_sources_write {
|
||||
local APT_SOURCES_CONF="$1"
|
||||
|
||||
mkdir -p /etc/apt/sources.list.d
|
||||
sudo mkdir -p $TARGET_ROOT/etc/apt/sources.list.d
|
||||
|
||||
echo "${APT_SOURCES_CONF}" \
|
||||
| while read line; do
|
||||
local name=$(echo ${line} | cut -d ":" -f 1)
|
||||
local value=$(echo ${line} | cut -d ":" -f 2-)
|
||||
echo "$value" >>/etc/apt/sources.list.d/${name}.list
|
||||
echo "$value" | sudo tee $TARGET_ROOT/etc/apt/sources.list.d/${name}.list
|
||||
done
|
||||
}
|
||||
|
||||
sudo mount -t proc none $TARGET_ROOT/proc
|
||||
sudo mount -t sysfs none $TARGET_ROOT/sys
|
||||
trap "sudo umount $TARGET_ROOT/proc; sudo umount $TARGET_ROOT/sys" EXIT
|
||||
|
||||
apt_get="sudo chroot $TARGET_ROOT /usr/bin/apt-get"
|
||||
|
||||
apt_sources_write "${DIB_APT_SOURCES_CONF}"
|
||||
|
||||
# Need to update to retrieve the signed Release file
|
||||
apt-get update
|
||||
$apt_get update
|
||||
|
||||
apt-get clean
|
||||
install-packages -u
|
||||
$apt_get clean
|
||||
$apt_get dist-upgrade -y
|
||||
|
||||
$apt_get install -y busybox python sudo
|
@ -28,23 +28,9 @@ fi
|
||||
[ -n "$DIB_RELEASE" ]
|
||||
[ -n "$DIB_DISTRIBUTION_MIRROR" ]
|
||||
|
||||
if [ $DISTRO_NAME = 'ubuntu' ] ; then
|
||||
KERNEL='generic'
|
||||
else
|
||||
case $ARCH in
|
||||
amd64) KERNEL='amd64' ;;
|
||||
i386) KERNEL='686' ;;
|
||||
arm7)
|
||||
[ -n "$DIB_ARM_KERNEL" ]
|
||||
KERNEL="$DIB_ARM_KERNEL"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
KERNEL_PACKAGE="linux-image-$KERNEL"
|
||||
|
||||
DIB_DEBIAN_COMPONENTS=${DIB_DEBIAN_COMPONENTS:-main}
|
||||
DIB_DEBOOTSTRAP_EXTRA_ARGS=${DIB_DEBOOTSTRAP_EXTRA_ARGS:-}
|
||||
DEBOOTSTRAP_TARBALL=$DIB_IMAGE_CACHE/debootstrap-${DISTRO_NAME}-${DIB_RELEASE}-${ARCH}-${KERNEL}.tar.gz
|
||||
DEBOOTSTRAP_TARBALL=$DIB_IMAGE_CACHE/debootstrap-${DISTRO_NAME}-${DIB_RELEASE}-${ARCH}.tar.gz
|
||||
http_proxy=${http_proxy:-}
|
||||
no_proxy=${no_proxy:-}
|
||||
|
||||
@ -63,7 +49,6 @@ else
|
||||
# Have to --include=busybox because initramfs needs it
|
||||
sudo sh -c "http_proxy=$http_proxy no_proxy=$no_proxy debootstrap --verbose \
|
||||
--variant=minbase \
|
||||
--include=python,sudo,busybox,$KERNEL_PACKAGE \
|
||||
--components=${DIB_DEBIAN_COMPONENTS} \
|
||||
--arch=${ARCH} \
|
||||
$KEYRING_OPT \
|
||||
@ -79,6 +64,7 @@ else
|
||||
sudo rm -fr ${TARGET_ROOT}/etc/apt/sources.list \
|
||||
${TARGET_ROOT}/etc/apt/sources.list.d
|
||||
|
||||
|
||||
echo Caching debootstrap result in $DEBOOTSTRAP_TARBALL
|
||||
if [ "${DIB_DEBOOTSTRAP_CACHE:-0}" != "0" ]; then
|
||||
sudo tar --numeric-owner -C $TARGET_ROOT -zcf $DEBOOTSTRAP_TARBALL --exclude='./tmp/*' .
|
||||
|
@ -1 +1,2 @@
|
||||
debootstrap
|
||||
package-installs
|
||||
|
1
elements/ubuntu-minimal/package-installs.yaml
Normal file
1
elements/ubuntu-minimal/package-installs.yaml
Normal file
@ -0,0 +1 @@
|
||||
linux-image-generic:
|
46
elements/ubuntu-minimal/root.d/75-ubuntu-minimal-baseinstall
Executable file
46
elements/ubuntu-minimal/root.d/75-ubuntu-minimal-baseinstall
Executable file
@ -0,0 +1,46 @@
|
||||
#!/bin/bash
|
||||
# Copyright (c) 2014 Hewlett-Packard Development Company, L.P.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
# implied.
|
||||
#
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
if [ ${DIB_DEBUG_TRACE:-0} -gt 0 ]; then
|
||||
set -x
|
||||
fi
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
DIB_DISTRIBUTION_MIRROR=${DIB_DISTRIBUTION_MIRROR:-http://archive.ubuntu.com/ubuntu}
|
||||
|
||||
# We should manage this in a betterer way
|
||||
sudo bash -c "cat << EOF >$TARGET_ROOT/etc/apt/sources.list
|
||||
deb $DIB_DISTRIBUTION_MIRROR $DIB_RELEASE main restricted universe
|
||||
deb $DIB_DISTRIBUTION_MIRROR $DIB_RELEASE-updates main restricted universe
|
||||
deb $DIB_DISTRIBUTION_MIRROR $DIB_RELEASE-backports main restricted universe
|
||||
deb $DIB_DISTRIBUTION_MIRROR $DIB_RELEASE-security main restricted universe
|
||||
EOF"
|
||||
|
||||
sudo mount -t proc none $TARGET_ROOT/proc
|
||||
sudo mount -t sysfs none $TARGET_ROOT/sys
|
||||
trap "sudo umount $TARGET_ROOT/proc; sudo umount $TARGET_ROOT/sys" EXIT
|
||||
|
||||
apt_get="sudo chroot $TARGET_ROOT /usr/bin/apt-get" # dib-lint: safe_sudo
|
||||
|
||||
# Need to update to retrieve the signed Release file
|
||||
$apt_get update
|
||||
|
||||
$apt_get clean
|
||||
$apt_get dist-upgrade -y
|
||||
|
||||
$apt_get install -y busybox python sudo
|
@ -0,0 +1,5 @@
|
||||
---
|
||||
fixes:
|
||||
- The `debian-minimal` and and `ubuntu-minimal` elements now install
|
||||
directly from the updates repo, avoiding the need to
|
||||
double-install packages during build.
|
Loading…
Reference in New Issue
Block a user