320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync#!/bin/sh
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsync#
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsync# Oracle VM VirtualBox
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsync# VirtualBox linux uninstallation script
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsync
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsync#
c58f1213e628a545081c70e26c6b67a841cff880vboxsync# Copyright (C) 2009-2012 Oracle Corporation
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsync#
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsync# available from http://www.virtualbox.org. This file is free software;
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsync# you can redistribute it and/or modify it under the terms of the GNU
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsync# General Public License (GPL) as published by the Free Software
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsync#
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync. `dirname $0`/routines.sh
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncif [ -z "$ro_LOG_FILE" ]; then
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync create_log "/var/log/vbox-uninstall.log"
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncfi
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncif [ -z "VBOX_NO_UNINSTALL_MESSAGE" ]; then
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync info "Uninstalling VirtualBox"
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync log "Uninstalling VirtualBox"
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync log ""
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncfi
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
f40255ebb8e145bc49daa701edf16f1596cc93cevboxsynccheck_root
f40255ebb8e145bc49daa701edf16f1596cc93cevboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync[ -z "$DKMS" ] && DKMS=`which dkms 2> /dev/null`
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync[ -z "$CONFIG_DIR" ] && CONFIG_DIR="/etc/vbox"
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync[ -z "$CONFIG" ] && CONFIG="vbox.cfg"
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync[ -z "$CONFIG_FILES" ] && CONFIG_FILES="filelist"
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync[ -z "$DEFAULT_FILES" ] && DEFAULT_FILES=`pwd`/deffiles
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# Find previous installation
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncif [ -r $CONFIG_DIR/$CONFIG ]; then
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync . $CONFIG_DIR/$CONFIG
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync PREV_INSTALLATION=$INSTALL_DIR
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncfi
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# Remove previous installation
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncif [ "$PREV_INSTALLATION" = "" ]; then
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync log "Unable to find a VirtualBox installation, giving up."
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync abort "Couldn't find a VirtualBox installation to uninstall."
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncfi
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
f05c9726893158b78436cc78907835367d922de9vboxsync# Stop the ballon control service
f05c9726893158b78436cc78907835367d922de9vboxsyncstop_init_script vboxballoonctrl-service
ebd3c63c626c8039fdb7b95570390699333a7072vboxsync# Stop the autostart service
ebd3c63c626c8039fdb7b95570390699333a7072vboxsyncstop_init_script vboxautostart-service
0a249d1fff442e1f0f29959e2a0da91d024554fcvboxsync# Stop the web service
0a249d1fff442e1f0f29959e2a0da91d024554fcvboxsyncstop_init_script vboxweb-service
f40255ebb8e145bc49daa701edf16f1596cc93cevboxsync# Do this check here after we terminated the web service
f40255ebb8e145bc49daa701edf16f1596cc93cevboxsynccheck_running
f40255ebb8e145bc49daa701edf16f1596cc93cevboxsync# Terminate VBoxNetDHCP if running
f40255ebb8e145bc49daa701edf16f1596cc93cevboxsyncterminate_proc VBoxNetDHCP
20fc4a350a4a8e56ffaac6cf57dcd677a7ac36c5vboxsync# Terminate VBoxNetNAT if running
20fc4a350a4a8e56ffaac6cf57dcd677a7ac36c5vboxsyncterminate_proc VBoxNetNAT
f05c9726893158b78436cc78907835367d922de9vboxsyncdelrunlevel vboxballoonctrl-service > /dev/null 2>&1
f05c9726893158b78436cc78907835367d922de9vboxsyncremove_init_script vboxballoonctrl-service
ebd3c63c626c8039fdb7b95570390699333a7072vboxsyncdelrunlevel vboxautostart-service > /dev/null 2>&1
ebd3c63c626c8039fdb7b95570390699333a7072vboxsyncremove_init_script vboxautostart-service
0a249d1fff442e1f0f29959e2a0da91d024554fcvboxsyncdelrunlevel vboxweb-service > /dev/null 2>&1
0a249d1fff442e1f0f29959e2a0da91d024554fcvboxsyncremove_init_script vboxweb-service
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# Stop kernel module and uninstall runlevel script
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncstop_init_script vboxdrv
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncdelrunlevel vboxdrv > /dev/null 2>&1
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncremove_init_script vboxdrv
0a249d1fff442e1f0f29959e2a0da91d024554fcvboxsync# Stop host networking and uninstall runlevel script (obsolete)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncstop_init_script vboxnet
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncdelrunlevel vboxnet > /dev/null 2>&1
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncremove_init_script vboxnet
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# Remove kernel module installed
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncif [ -n "$DKMS" ]; then
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsync $DKMS remove -m vboxhost -v $INSTALL_VER --all > /dev/null 2>&1
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncfi
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncif [ -z "$VBOX_DONT_REMOVE_OLD_MODULES" ]; then
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync find /lib/modules/`uname -r` -name "vboxdrv\.*" 2>/dev/null|xargs rm -f 2> /dev/null
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync find /lib/modules/`uname -r` -name "vboxnetflt\.*" 2>/dev/null|xargs rm -f 2> /dev/null
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync find /lib/modules/`uname -r` -name "vboxnetadp\.*" 2>/dev/null|xargs rm -f 2> /dev/null
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync # Remove directories we have installed to in the past
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync find /lib/modules/`uname -r` -name vbox\* 2>/dev/null|xargs rmdir -p 2> /dev/null
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync find /lib/modules/`uname -r` -name misc\* 2>/dev/null|xargs rmdir -p 2> /dev/null
7eaaa8a4480370b82ef3735994f986f338fb4df2vboxsync rm -f /usr/src/vboxhost-$INSTALL_VER 2> /dev/null
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync rm -f /usr/src/vboxdrv-$INSTALL_VER 2> /dev/null
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync rm -f /usr/src/vboxnetflt-$INSTALL_VER 2> /dev/null
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync rm -f /usr/src/vboxnetadp-$INSTALL_VER 2> /dev/null
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncfi
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# Remove symlinks
be75da5235e6ed26c171a06f0a7d0e718bd7f60bvboxsyncrm -f \
be75da5235e6ed26c171a06f0a7d0e718bd7f60bvboxsync /usr/bin/VirtualBox \
be75da5235e6ed26c171a06f0a7d0e718bd7f60bvboxsync /usr/bin/VBoxManage \
be75da5235e6ed26c171a06f0a7d0e718bd7f60bvboxsync /usr/bin/VBoxSDL \
be75da5235e6ed26c171a06f0a7d0e718bd7f60bvboxsync /usr/bin/VBoxVRDP \
be75da5235e6ed26c171a06f0a7d0e718bd7f60bvboxsync /usr/bin/VBoxHeadless \
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync /usr/bin/VBoxDTrace \
1ab75e3bb644b29eb1cadd4f6075147012c22757vboxsync /usr/bin/VBoxBalloonCtrl \
ebd3c63c626c8039fdb7b95570390699333a7072vboxsync /usr/bin/VBoxAutostart \
be75da5235e6ed26c171a06f0a7d0e718bd7f60bvboxsync /usr/bin/VBoxNetDHCP \
20fc4a350a4a8e56ffaac6cf57dcd677a7ac36c5vboxsync /usr/bin/VBoxNetNAT \
be75da5235e6ed26c171a06f0a7d0e718bd7f60bvboxsync /usr/bin/vboxwebsrv \
396f76437ff8f66e088cea96fc7474554ea3fb7bvboxsync /usr/bin/vbox-img \
be75da5235e6ed26c171a06f0a7d0e718bd7f60bvboxsync /usr/bin/VBoxAddIF \
be75da5235e6ed26c171a06f0a7d0e718bd7f60bvboxsync /usr/bin/VBoxDeleteIf \
be75da5235e6ed26c171a06f0a7d0e718bd7f60bvboxsync /usr/bin/VBoxTunctl \
be75da5235e6ed26c171a06f0a7d0e718bd7f60bvboxsync /usr/bin/virtualbox \
be75da5235e6ed26c171a06f0a7d0e718bd7f60bvboxsync /usr/share/pixmaps/VBox.png \
78d5c1f3e0c4c4dce02baa0be07e616bc212f441vboxsync /usr/share/pixmaps/virtualbox.png \
be75da5235e6ed26c171a06f0a7d0e718bd7f60bvboxsync /usr/share/applications/virtualbox.desktop \
38e7976384c17215607055e2574ae71d386ba7bbvboxsync /usr/share/mime/packages/virtualbox.xml \
be75da5235e6ed26c171a06f0a7d0e718bd7f60bvboxsync /usr/bin/rdesktop-vrdp \
be75da5235e6ed26c171a06f0a7d0e718bd7f60bvboxsync /usr/bin/virtualbox \
be75da5235e6ed26c171a06f0a7d0e718bd7f60bvboxsync /usr/bin/vboxmanage \
be75da5235e6ed26c171a06f0a7d0e718bd7f60bvboxsync /usr/bin/vboxsdl \
be75da5235e6ed26c171a06f0a7d0e718bd7f60bvboxsync /usr/bin/vboxheadless \
50e5e7a2b25a463c312cf741832fcc34d36557bdvboxsync /usr/bin/vboxdtrace \
be75da5235e6ed26c171a06f0a7d0e718bd7f60bvboxsync $PREV_INSTALLATION/components/VBoxVMM.so \
be75da5235e6ed26c171a06f0a7d0e718bd7f60bvboxsync $PREV_INSTALLATION/components/VBoxREM.so \
be75da5235e6ed26c171a06f0a7d0e718bd7f60bvboxsync $PREV_INSTALLATION/components/VBoxRT.so \
be75da5235e6ed26c171a06f0a7d0e718bd7f60bvboxsync $PREV_INSTALLATION/components/VBoxDDU.so \
be75da5235e6ed26c171a06f0a7d0e718bd7f60bvboxsync $PREV_INSTALLATION/components/VBoxXPCOM.so \
be75da5235e6ed26c171a06f0a7d0e718bd7f60bvboxsync 2> /dev/null
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync# Remove udev description file
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncif [ -f /etc/udev/rules.d/60-vboxdrv.rules ]; then
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync rm -f /etc/udev/rules.d/60-vboxdrv.rules 2> /dev/null
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncfi
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncif [ -f /etc/udev/rules.d/10-vboxdrv.rules ]; then
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync rm -f /etc/udev/rules.d/10-vboxdrv.rules 2> /dev/null
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncfi
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
f55e40eab578fb43357fe057f8088cc16bb1a9e9vboxsync# Remove our USB device tree
f55e40eab578fb43357fe057f8088cc16bb1a9e9vboxsyncrm -rf /dev/vboxusb 2> /dev/null
f55e40eab578fb43357fe057f8088cc16bb1a9e9vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsynccwd=`pwd`
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncif [ -f $PREV_INSTALLATION/src/Makefile ]; then
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync cd $PREV_INSTALLATION/src
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync make clean > /dev/null 2>&1
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncfi
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncif [ -f $PREV_INSTALLATION/src/vboxdrv/Makefile ]; then
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync cd $PREV_INSTALLATION/src/vboxdrv
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync make clean > /dev/null 2>&1
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncfi
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncif [ -f $PREV_INSTALLATION/src/vboxnetflt/Makefile ]; then
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync cd $PREV_INSTALLATION/src/vboxnetflt
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync make clean > /dev/null 2>&1
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncfi
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncif [ -f $PREV_INSTALLATION/src/vboxnetadp/Makefile ]; then
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync cd $PREV_INSTALLATION/src/vboxnetadp
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync make clean > /dev/null 2>&1
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncfi
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsynccd $PREV_INSTALLATION
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncif [ -r $CONFIG_DIR/$CONFIG_FILES ]; then
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync rm -f `cat $CONFIG_DIR/$CONFIG_FILES` 2> /dev/null
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncelif [ -n "$DEFAULT_FILES" -a -r "$DEFAULT_FILES" ]; then
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync DEFAULT_FILE_NAMES=""
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync . $DEFAULT_FILES
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync for i in "$DEFAULT_FILE_NAMES"; do
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync rm -f $i 2> /dev/null
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync done
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncfi
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncfor file in `find $PREV_INSTALLATION 2> /dev/null`; do
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync rmdir -p $file 2> /dev/null
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncdone
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsynccd $cwd
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncmkdir -p $PREV_INSTALLATION 2> /dev/null # The above actually removes the current directory and parents!
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncrmdir $PREV_INSTALLATION 2> /dev/null
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncrm -r $CONFIG_DIR/$CONFIG 2> /dev/null
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncif [ -z "$VBOX_NO_UNINSTALL_MESSAGE" ]; then
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync rm -r $CONFIG_DIR/$CONFIG_FILES 2> /dev/null
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync rmdir $CONFIG_DIR 2> /dev/null
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync [ -n "$INSTALL_REV" ] && INSTALL_REV=" r$INSTALL_REV"
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync info "VirtualBox $INSTALL_VER$INSTALL_REV has been removed successfully."
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync log "Successfully $INSTALL_VER$INSTALL_REV removed VirtualBox."
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncfi
38e7976384c17215607055e2574ae71d386ba7bbvboxsyncupdate-mime-database /usr/share/mime >/dev/null 2>&1