You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
2.3 KiB
56 lines
2.3 KiB
4 years ago
|
#!/bin/sh -eux
|
||
|
|
||
|
# set a default HOME_DIR environment variable if not set
|
||
|
HOME_DIR="${HOME_DIR:-/home/vagrant}";
|
||
|
|
||
|
case "$PACKER_BUILDER_TYPE" in
|
||
|
virtualbox-iso|virtualbox-ovf)
|
||
|
VER="`cat $HOME_DIR/.vbox_version`";
|
||
|
ISO="VBoxGuestAdditions_$VER.iso";
|
||
|
|
||
|
# mount the ISO to /tmp/vbox
|
||
|
mkdir -p /tmp/vbox;
|
||
|
mount -o loop $HOME_DIR/$ISO /tmp/vbox;
|
||
|
|
||
|
echo "installing deps necessary to compile kernel modules"
|
||
|
# We install things like kernel-headers here vs. kickstart files so we make sure we install them for the updated kernel not the stock kernel
|
||
|
if [ -f "/bin/dnf" ]; then
|
||
|
dnf install -y --skip-broken perl cpp gcc make bzip2 tar kernel-headers kernel-devel kernel-uek-devel || true # not all these packages are on every system
|
||
|
elif [ -f "/bin/yum" ] || [ -f "/usr/bin/yum" ]; then
|
||
|
yum install -y --skip-broken perl cpp gcc make bzip2 tar kernel-headers kernel-devel kernel-uek-devel || true # not all these packages are on every system
|
||
|
elif [ -f "/usr/bin/apt-get" ]; then
|
||
|
apt-get install -y build-essential dkms bzip2 tar linux-headers-`uname -r`
|
||
|
elif [ -f "/usr/bin/zypper" ]; then
|
||
|
zypper install -y perl cpp gcc make bzip2 tar kernel-default-devel
|
||
|
fi
|
||
|
|
||
|
echo "installing the vbox additions"
|
||
|
# this install script fails with non-zero exit codes for no apparent reason so we need better ways to know if it worked
|
||
|
/tmp/vbox/VBoxLinuxAdditions.run --nox11 || true
|
||
|
|
||
|
if ! modinfo vboxsf >/dev/null 2>&1; then
|
||
|
echo "Cannot find vbox kernel module. Installation of guest additions unsuccessful!"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
echo "unmounting and removing the vbox ISO"
|
||
|
umount /tmp/vbox;
|
||
|
rm -rf /tmp/vbox;
|
||
|
rm -f $HOME_DIR/*.iso;
|
||
|
|
||
|
echo "removing kernel dev packages and compilers we no longer need"
|
||
|
if [ -f "/bin/dnf" ]; then
|
||
|
dnf remove -y gcc cpp kernel-headers kernel-devel kernel-uek-devel
|
||
|
elif [ -f "/bin/yum" ] || [ -f "/usr/bin/yum" ]; then
|
||
|
yum remove -y gcc cpp kernel-headers kernel-devel kernel-uek-devel
|
||
|
elif [ -f "/usr/bin/apt-get" ]; then
|
||
|
apt-get remove -y build-essential gcc g++ make libc6-dev dkms linux-headers-`uname -r`
|
||
|
elif [ -f "/usr/bin/zypper" ]; then
|
||
|
zypper -n rm -u kernel-default-devel gcc make
|
||
|
fi
|
||
|
|
||
|
echo "removing leftover logs"
|
||
|
rm -rf /var/log/vboxadd*
|
||
|
;;
|
||
|
esac
|