mirror of
https://gitdl.cn/https://github.com/chakralinux/desktop.git
synced 2025-01-24 18:42:12 +08:00
119 lines
3.3 KiB
Plaintext
119 lines
3.3 KiB
Plaintext
# $1: The new package version
|
|
post_install() {
|
|
# Build new module
|
|
/etc/rc.d/vboxdrv setup
|
|
|
|
# Add vboxusers group, GID 108 is reserved,
|
|
# but in some systems it may be being used - please replace if needed.
|
|
groupadd -f -g 108 vboxusers
|
|
|
|
# Create the directory below if it doesn't exist
|
|
mkdir -p "/var/run/VirtualBox"
|
|
|
|
# Load new udev rule for module vboxdrv
|
|
udevadm control --reload-rules
|
|
|
|
# Show the license
|
|
echo >&2
|
|
echo '==> You must agree to the following license in order to use this program:' >&2
|
|
echo '------------------------------------------------------------------------' >&2
|
|
echo >&2
|
|
cat "/opt/VirtualBox/LICENSE" >&2
|
|
echo >&2
|
|
echo '------------------------------------------------------------------------' >&2
|
|
|
|
/bin/cat <<EOF
|
|
|
|
==> Add your user to the vboxusers group:
|
|
==> # gpasswd -a USERNAME vboxusers
|
|
==>
|
|
==> You must load vboxdrv module before starting VirtualBox:
|
|
==> # modprobe vboxdrv
|
|
==>
|
|
==> You must load vboxnetflt for Host Interface Networking:
|
|
==> # modprobe vboxnetflt
|
|
==>
|
|
==> You must load vboxnetadp for Host-Only networking:
|
|
==> # modprobe vboxnetadp
|
|
==>
|
|
==> To load it automatically, add vboxdrv module to the "MODULES" array
|
|
==> "/etc/rc.conf".
|
|
==>
|
|
==> Run \`/etc/rc.d/vboxdrv setup\` as root every time your kernel is
|
|
==> upgraded, to compile the module for the new kernel version.
|
|
==>
|
|
==> If USB does not work for you out-of-the-box, add the following line
|
|
==> to "/etc/fstab":
|
|
==> "none /proc/bus/usb usbfs auto,busgid=108,busmode=0775,devgid=108,devmode=0664 0 0"
|
|
|
|
EOF
|
|
}
|
|
|
|
# $1: The new package version
|
|
# $2: The old package version
|
|
post_upgrade() {
|
|
_NEWVERSION=`echo $1 | cut -f-1 -d '-'`
|
|
_OLDVERSION=`echo $2 | cut -f-1 -d '-'`
|
|
|
|
# Remove any stuff (e.g. module compilation files) from an old installation - old versions used
|
|
# to use these directories.
|
|
if [ "$_NEWVERSION" != "$_OLDVERSION" ]; then
|
|
rm -Rf "/opt/VirtualBox-${_OLDVERSION}" &> /dev/null
|
|
fi
|
|
if [ "$1" != "$2" ]; then
|
|
rm -Rf "/opt/virtualbox" &> /dev/null
|
|
fi
|
|
|
|
# Build new module
|
|
/etc/rc.d/vboxdrv setup
|
|
|
|
# Create the directory below if it doesn't exist
|
|
mkdir -p "/var/run/VirtualBox"
|
|
|
|
/bin/cat <<EOF
|
|
|
|
==> You must load vboxdrv module before starting VirtualBox:
|
|
==> # modprobe vboxdrv
|
|
==>
|
|
==> You must load vboxnetflt for Host Interface Networking:
|
|
==> # modprobe vboxnetflt
|
|
==>
|
|
==> You must load vboxnetadp for Host-Only networking:
|
|
==> # modprobe vboxnetadp
|
|
==>
|
|
==> To load it automatically, add vboxdrv module to the "MODULES" array
|
|
==> "/etc/rc.conf".
|
|
==>
|
|
==> Run \`/etc/rc.d/vboxdrv setup\` as root every time your kernel is
|
|
==> upgraded, to compile the module for the new kernel version.
|
|
==>
|
|
==> If USB does not work for you out-of-the-box, add the following line
|
|
==> to "/etc/fstab":
|
|
==> "none /proc/bus/usb usbfs auto,busgid=108,busmode=0775,devgid=108,devmode=0664 0 0"
|
|
|
|
EOF
|
|
|
|
if [ "`vercmp $_OLDVERSION 3.2.2`" -lt 0 ]; then
|
|
/bin/cat <<EOF
|
|
==> IMPORTANT: This package now uses \`/etc/rc.d/vboxdrv setup\` instead
|
|
==> of the old "vbox_build_module" script.
|
|
|
|
EOF
|
|
fi
|
|
}
|
|
|
|
# $1: The old package version
|
|
pre_remove() {
|
|
# Unload modules (if any)
|
|
for _mod in vbox{drv,netadp,netflt}; do
|
|
modprobe -r $_mod &> /dev/null
|
|
done
|
|
|
|
# Remove the module files
|
|
rm -f "/lib/modules/`uname -r`/misc/"{vboxdrv,vboxnetadp,vboxnetflt}.ko
|
|
|
|
# Remove any stuff remaining from the module compilation
|
|
rm -Rf "/opt/VirtualBox"
|
|
}
|
|
|