implement dpkgdivert as a separate function
This commit is contained in:
parent
7f43df508d
commit
a82bb122bf
|
|
@ -111,37 +111,20 @@ bootstrap_config_thirdstage() {
|
||||||
|
|
||||||
cat << EOF
|
cat << EOF
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
dpkg-divert --add --local \
|
|
||||||
--divert /usr/sbin/invoke-rc.d.chroot \
|
|
||||||
--rename /usr/sbin/invoke-rc.d
|
|
||||||
cp /bin/true /usr/sbin/invoke-rc.d
|
|
||||||
echo -e "#!/bin/sh\nexit 101" > /usr/sbin/policy-rc.d
|
|
||||||
chmod +x /usr/sbin/policy-rc.d
|
|
||||||
|
|
||||||
apt-get update
|
apt-get update
|
||||||
apt-get --yes --force-yes install locales-all
|
|
||||||
debconf-set-selections /debconf.set
|
debconf-set-selections /debconf.set
|
||||||
|
|
||||||
apt-get update
|
echo "root:toor" | chpasswd
|
||||||
apt-get --yes --force-yes install ${core_packages}
|
|
||||||
|
|
||||||
echo "root:${os}" | chpasswd
|
|
||||||
sed -i -e 's/KERNEL\!=\"eth\*|/KERNEL\!=\"/' \
|
sed -i -e 's/KERNEL\!=\"eth\*|/KERNEL\!=\"/' \
|
||||||
/lib/udev/rules.d/75-persistent-net-generator.rules
|
/lib/udev/rules.d/75-persistent-net-generator.rules
|
||||||
rm -f /etc/udev/rules.d/70-persistent-net.rules
|
rm -f /etc/udev/rules.d/70-persistent-net.rules
|
||||||
export DEBIAN_FRONTEND=noninteractive
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
apt-get --yes --force-yes install \
|
apt-get --yes --force-yes install ${core_packages}
|
||||||
${base_packages} \
|
apt-get --yes --force-yes install ${base_packages}
|
||||||
${extra_packages}
|
apt-get --yes --force-yes purge ${purge_packages}
|
||||||
apt-get --yes --force-yes dist-upgrade
|
|
||||||
apt-get --yes --force-yes autoremove
|
apt-get --yes --force-yes autoremove
|
||||||
|
|
||||||
apt-get clean
|
apt-get clean
|
||||||
|
|
||||||
rm -f /usr/sbin/policy-rc.d
|
|
||||||
rm -f /usr/sbin/invoke-rc.d
|
|
||||||
dpkg-divert --remove --rename /usr/sbin/invoke-rc.d
|
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -187,40 +170,26 @@ bootstrap_tar_unpack() {
|
||||||
ckreq || return 1
|
ckreq || return 1
|
||||||
|
|
||||||
[[ -f ${unpath}/.done ]] && {
|
[[ -f ${unpath}/.done ]] && {
|
||||||
warning "bootstrap already unpacked in $unpath"
|
warn "bootstrap already unpacked in $unpath"
|
||||||
return 1
|
return 1 }
|
||||||
}
|
|
||||||
|
|
||||||
mkdir -p ${unpath}
|
mkdir -p ${unpath}
|
||||||
silly
|
silly
|
||||||
sudo tar xf $bootstrap_tgz -C ${unpath}
|
sudo tar xfp $bootstrap_tgz -C ${unpath}
|
||||||
sudo mkdir -p ${unpath}/{boot,dev,sys,proc}
|
sudo mkdir -p ${unpath}/{boot,dev,sys,proc}
|
||||||
|
|
||||||
cat <<EOF | sudo tee ${strapdir}/postunpack
|
cat <<EOF | sudo tee ${strapdir}/postunpack
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
dpkg-divert --add --local \
|
|
||||||
--divert /usr/sbin/invoke-rc.d.chroot \
|
|
||||||
--rename /usr/sbin/invoke-rc.d
|
|
||||||
cp /bin/true /usr/sbin/invoke-rc.d
|
|
||||||
echo -e "#!/bin/sh\nexit 101" > /usr/sbin/policy-rc.d
|
|
||||||
chmod +x /usr/sbin/policy-rc.d
|
|
||||||
|
|
||||||
apt-get update
|
apt-get update
|
||||||
apt-get --yes --force-yes install ${extra_packages}
|
apt-get --yes --force-yes install ${extra_packages}
|
||||||
apt-get --yes --force-yes dist-upgrade
|
|
||||||
apt-get --yes --force-yes autoremove
|
apt-get --yes --force-yes autoremove
|
||||||
|
|
||||||
apt-get clean
|
apt-get clean
|
||||||
|
|
||||||
rm -f /usr/sbin/policy-rc.d
|
|
||||||
rm -f /usr/sbin/invoke-rc.d
|
|
||||||
dpkg-divert --remove --rename /usr/sbin/invoke-rc.d
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
sudo chmod +x $strapdir/postunpack || zerr
|
dpkgdivert on $strapdir
|
||||||
sudo chroot $strapdir /postunpack || zerr
|
sudo chmod +x $strapdir/postunpack || zerr
|
||||||
|
sudo -E chroot $strapdir /postunpack || zerr
|
||||||
|
dpkgdivert off $strapdir
|
||||||
|
|
||||||
for i in $custmodules; do
|
for i in $custmodules;do print $i | sudo tee -a $strapdir/etc/modules; done
|
||||||
print $i | sudo tee -a $strapdir/etc/modules
|
|
||||||
done
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -83,6 +83,39 @@ qemu_install_user() {
|
||||||
sudo cp $qemu_bin $strapdir/usr/bin
|
sudo cp $qemu_bin $strapdir/usr/bin
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dpkgdivert() {
|
||||||
|
fn dpkgdivert $@
|
||||||
|
req=(watdo werdo)
|
||||||
|
local watdo="$1"
|
||||||
|
local werdo="$2"
|
||||||
|
ckreq || return 1
|
||||||
|
|
||||||
|
if [[ $watdo = on ]]; then
|
||||||
|
cat <<EOF | sudo tee ${werdo}/dpkgdivert
|
||||||
|
#!/bin/sh
|
||||||
|
dpkg-divert --add --local \
|
||||||
|
--divert /usr/sbin/invoke-rc.d.chroot \
|
||||||
|
--rename /usr/sbin/invoke-rc.d
|
||||||
|
cp /bin/true /usr/sbin/invoke-rc.d
|
||||||
|
echo -e "#!/bin/sh\nexit 101" > /usr/sbin/policy-rc.d
|
||||||
|
chmod +x /usr/sbin/policy-rc.d
|
||||||
|
rm -f /dpkgdivert
|
||||||
|
EOF
|
||||||
|
chmod +x $werdo/dpkgdivert
|
||||||
|
sudo -E chroot $werdo/dpkgdivert || zerr
|
||||||
|
elif [[ $watdo = off ]]; then
|
||||||
|
cat <<EOF | sudo tee ${werdo}/dpkgdivert
|
||||||
|
#!/bin/sh
|
||||||
|
rm -f /usr/sbin/policy-rc.d
|
||||||
|
rm -f /usr/sbin/invoke-rc.d
|
||||||
|
dpkg-divert --remove --rename /usr/sbin/invoke-rc.d
|
||||||
|
rm -f /dpkgdivert
|
||||||
|
EOF
|
||||||
|
chmod +x $werdo/dpkgdivert
|
||||||
|
sudo -E chroot $werdo/dpkgdivert || zerr
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
silly() {
|
silly() {
|
||||||
fn silly "$@"
|
fn silly "$@"
|
||||||
local arg1="$1"
|
local arg1="$1"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue