blob: e8ce9b54805730ea2e8657a30e1d765351303e95 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
#!/bin/bash
#
# System installer, chroot version.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public
# License along with this program. If not, see
# <http://www.gnu.org/licenses/>.
# Load.
source $APP_BASE/lib/hydra/functions || exit 1
hydra_config_load
# Make sure there is provision config.
function hydra_provision_config {
hydra_user_config folder /var/chroot/debian "Destination device"
hydra_user_config hostname machine "Hostname"
hydra_user_config domain example.org "Domain"
hydra_user_config arch amd64 "System arch"
hydra_user_config version stretch "Distro version"
hydra_user_config mirror http://http.debian.net/debian/ "Debian mirror"
}
# Load configuration
hydra_provision_config_load $1
# Get config parameters.
hydra_provision_config
# Parameters
WORK="$folder"
CHROOT="hydra_sudo_run chroot $WORK"
# Check for requirements.
for req in debootstrap qemu-user-static; do
hydra_install_package $req
done
hydra_sudo_run mkdir -p /var/chroot
hydra_sudo_run debootstrap --variant=minbase --arch $arch $version $WORK $mirror
# Apt
if [ "$version" != "sid" ]; then
echo "deb http://security.debian.org/ $version/updates main contrib non-free" | $SUDO tee $WORK/etc/apt/sources.list
echo "deb-src http://security.debian.org/ $version/updates main contrib non-free" | $SUDO tee $WORK/etc/apt/sources.list
fi
# Initial upgrade.
echo "Applying initial upgrades..."
hydra_sudo_run chroot $WORK/ apt-get update
hydra_sudo_run chroot $WORK/ apt-get upgrade -y
# Arch specific procedures
if [ "$arch" == "armel" ] || [ "$arch" == "armhf" ]; then
if [ ! -f '/usr/bin/qemu-arm-static' ]; then
hydra_sudo run apt-get install qemu-user-static
fi
hydra_sudo_run cp /usr/bin/qemu-arm-static $WORK/usr/bin/
$CHROOT /debootstrap/debootstrap --second-stage
fi
echo "$hostname.$domain" | hydra_sudo_run tee $WORK/etc/hostname > /dev/null
$CHROOT apt-get install -y locales
|