uninstall.sh revision f40255ebb8e145bc49daa701edf16f1596cc93ce
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync#!/bin/sh
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync#
9476d2be49d26a770787f5957478b930484c6ea5vboxsync# Oracle VM VirtualBox
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync# VirtualBox linux uninstallation script
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync#
c58f1213e628a545081c70e26c6b67a841cff880vboxsync# Copyright (C) 2009-2010 Oracle Corporation
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync#
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync# available from http://www.virtualbox.org. This file is free software;
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync# you can redistribute it and/or modify it under the terms of the GNU
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync# General Public License (GPL) as published by the Free Software
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync#
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync. `dirname $0`/routines.sh
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncif [ -z "$ro_LOG_FILE" ]; then
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync create_log "/var/log/vbox-uninstall.log"
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncfi
b7782c7ad55341aaa2bcc6c5f20c8fcaf4d8dd7bvboxsync
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncif [ -z "VBOX_NO_UNINSTALL_MESSAGE" ]; then
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync info "Uninstalling VirtualBox"
23179f1443b03947d85eccc81cbc6b5153a4abf3vboxsync log "Uninstalling VirtualBox"
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync log ""
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncfi
389492cf692ff5f76b379f1142092a3091e9bb8dvboxsync
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsynccheck_root
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync
1715638289c28170682182429eaae968dddbe120vboxsync[ -z "$DKMS" ] && DKMS=`which dkms 2> /dev/null`
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync[ -z "$CONFIG_DIR" ] && CONFIG_DIR="/etc/vbox"
1715638289c28170682182429eaae968dddbe120vboxsync[ -z "$CONFIG" ] && CONFIG="vbox.cfg"
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync[ -z "$CONFIG_FILES" ] && CONFIG_FILES="filelist"
8b1975ddd07b69272802f37efbcf9a358c32a15avboxsync[ -z "$DEFAULT_FILES" ] && DEFAULT_FILES=`pwd`/deffiles
8b1975ddd07b69272802f37efbcf9a358c32a15avboxsync
8b1975ddd07b69272802f37efbcf9a358c32a15avboxsync# Find previous installation
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncif [ -r $CONFIG_DIR/$CONFIG ]; then
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync . $CONFIG_DIR/$CONFIG
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync PREV_INSTALLATION=$INSTALL_DIR
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncfi
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync# Remove previous installation
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncif [ "$PREV_INSTALLATION" = "" ]; then
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync log "Unable to find a VirtualBox installation, giving up."
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync abort "Couldn't find a VirtualBox installation to uninstall."
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncfi
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync# Stop the web service
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncstop_init_script vboxweb-service
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync# Do this check here after we terminated the web service
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsynccheck_running
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync# Terminate VBoxNetDHCP if running
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncterminate_proc VBoxNetDHCP
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncdelrunlevel vboxweb-service > /dev/null 2>&1
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncremove_init_script vboxweb-service
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync# Stop kernel module and uninstall runlevel script
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncstop_init_script vboxdrv
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncdelrunlevel vboxdrv > /dev/null 2>&1
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncremove_init_script vboxdrv
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync# Stop host networking and uninstall runlevel script (obsolete)
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncstop_init_script vboxnet
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncdelrunlevel vboxnet > /dev/null 2>&1
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncremove_init_script vboxnet
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync# Remove kernel module installed
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncif [ -n "$DKMS" ]; then
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync $DKMS remove -m vboxhost -v $INSTALL_VER --all > /dev/null 2>&1
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncfi
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncif [ -z "$VBOX_DONT_REMOVE_OLD_MODULES" ]; then
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync find /lib/modules/`uname -r` -name "vboxdrv\.*" 2>/dev/null|xargs rm -f 2> /dev/null
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync find /lib/modules/`uname -r` -name "vboxnetflt\.*" 2>/dev/null|xargs rm -f 2> /dev/null
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync find /lib/modules/`uname -r` -name "vboxnetadp\.*" 2>/dev/null|xargs rm -f 2> /dev/null
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync # Remove directories we have installed to in the past
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync find /lib/modules/`uname -r` -name vbox\* 2>/dev/null|xargs rmdir -p 2> /dev/null
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync find /lib/modules/`uname -r` -name misc\* 2>/dev/null|xargs rmdir -p 2> /dev/null
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync rm -f /usr/src/vboxhost-$INSTALL_VER 2> /dev/null
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync rm -f /usr/src/vboxdrv-$INSTALL_VER 2> /dev/null
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync rm -f /usr/src/vboxnetflt-$INSTALL_VER 2> /dev/null
c970e7d40b648d5c8f3e2b060692e670d85997d1vboxsync rm -f /usr/src/vboxnetadp-$INSTALL_VER 2> /dev/null
1207f59aa62006952dbb0bf7700decf34d8caeb2vboxsyncfi
1207f59aa62006952dbb0bf7700decf34d8caeb2vboxsync
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync# Remove symlinks
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncrm -f /usr/bin/VirtualBox 2> /dev/null
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncrm -f /usr/bin/VBoxManage 2> /dev/null
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncrm -f /usr/bin/VBoxSDL 2> /dev/null
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncrm -f /usr/bin/VBoxVRDP 2> /dev/null
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncrm -f /usr/bin/VBoxHeadless 2> /dev/null
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncrm -f /usr/bin/VBoxNetDHCP 2> /dev/null
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncrm -f /usr/bin/vboxwebsrv 2> /dev/null
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncrm -f /usr/bin/VBoxAddIF 2> /dev/null
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncrm -f /usr/bin/VBoxDeleteIf 2> /dev/null
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncrm -f /usr/bin/VBoxTunctl 2> /dev/null
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncrm -f /usr/share/pixmaps/VBox.png 2> /dev/null
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncrm -f /usr/share/applications/virtualbox.desktop 2> /dev/null
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncrm -f /usr/bin/rdesktop-vrdp 2> /dev/null
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncrm -f $PREV_INSTALLATION/components/VBoxVMM.so
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncrm -f $PREV_INSTALLATION/components/VBoxREM.so
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncrm -f $PREV_INSTALLATION/components/VBoxRT.so
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncrm -f $PREV_INSTALLATION/components/VBoxDDU.so
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncrm -f $PREV_INSTALLATION/components/VBoxXPCOM.so
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync
8b1975ddd07b69272802f37efbcf9a358c32a15avboxsync# Remove udev description file
8b1975ddd07b69272802f37efbcf9a358c32a15avboxsyncif [ -f /etc/udev/rules.d/60-vboxdrv.rules ]; then
8b1975ddd07b69272802f37efbcf9a358c32a15avboxsync rm -f /etc/udev/rules.d/60-vboxdrv.rules 2> /dev/null
4b4bf806fd0a1f544ae7c3866d4c056bbb306ca3vboxsyncfi
4b4bf806fd0a1f544ae7c3866d4c056bbb306ca3vboxsyncif [ -f /etc/udev/rules.d/10-vboxdrv.rules ]; then
4b4bf806fd0a1f544ae7c3866d4c056bbb306ca3vboxsync rm -f /etc/udev/rules.d/10-vboxdrv.rules 2> /dev/null
4b4bf806fd0a1f544ae7c3866d4c056bbb306ca3vboxsyncfi
4b4bf806fd0a1f544ae7c3866d4c056bbb306ca3vboxsync
8b1975ddd07b69272802f37efbcf9a358c32a15avboxsynccwd=`pwd`
4b4bf806fd0a1f544ae7c3866d4c056bbb306ca3vboxsyncif [ -f $PREV_INSTALLATION/src/Makefile ]; then
4b4bf806fd0a1f544ae7c3866d4c056bbb306ca3vboxsync cd $PREV_INSTALLATION/src
4b4bf806fd0a1f544ae7c3866d4c056bbb306ca3vboxsync make clean > /dev/null 2>&1
4b4bf806fd0a1f544ae7c3866d4c056bbb306ca3vboxsyncfi
4b4bf806fd0a1f544ae7c3866d4c056bbb306ca3vboxsyncif [ -f $PREV_INSTALLATION/src/vboxdrv/Makefile ]; then
4b4bf806fd0a1f544ae7c3866d4c056bbb306ca3vboxsync cd $PREV_INSTALLATION/src/vboxdrv
8b1975ddd07b69272802f37efbcf9a358c32a15avboxsync make clean > /dev/null 2>&1
8b1975ddd07b69272802f37efbcf9a358c32a15avboxsyncfi
8b1975ddd07b69272802f37efbcf9a358c32a15avboxsyncif [ -f $PREV_INSTALLATION/src/vboxnetflt/Makefile ]; then
8b1975ddd07b69272802f37efbcf9a358c32a15avboxsync cd $PREV_INSTALLATION/src/vboxnetflt
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync make clean > /dev/null 2>&1
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncfi
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncif [ -f $PREV_INSTALLATION/src/vboxnetadp/Makefile ]; then
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync cd $PREV_INSTALLATION/src/vboxnetadp
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync make clean > /dev/null 2>&1
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncfi
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsynccd $PREV_INSTALLATION
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncif [ -r $CONFIG_DIR/$CONFIG_FILES ]; then
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync rm -f `cat $CONFIG_DIR/$CONFIG_FILES` 2> /dev/null
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncelif [ -n "$DEFAULT_FILES" -a -r "$DEFAULT_FILES" ]; then
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync DEFAULT_FILE_NAMES=""
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync . $DEFAULT_FILES
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync for i in "$DEFAULT_FILE_NAMES"; do
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync rm -f $i 2> /dev/null
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync done
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncfi
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncfor file in `find $PREV_INSTALLATION 2> /dev/null`; do
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync rmdir -p $file 2> /dev/null
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncdone
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsynccd $cwd
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncmkdir -p $PREV_INSTALLATION 2> /dev/null # The above actually removes the current directory and parents!
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncrmdir $PREV_INSTALLATION 2> /dev/null
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncrm -r $CONFIG_DIR/$CONFIG 2> /dev/null
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncif [ -z "$VBOX_NO_UNINSTALL_MESSAGE" ]; then
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync rm -r $CONFIG_DIR/$CONFIG_FILES 2> /dev/null
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync rmdir $CONFIG_DIR 2> /dev/null
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync [ -n "$INSTALL_REV" ] && INSTALL_REV=" r$INSTALL_REV"
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync info "VirtualBox $INSTALL_VER$INSTALL_REV has been removed successfully."
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync log "Successfully $INSTALL_VER$INSTALL_REV removed VirtualBox."
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsyncfi
5b93fdb3b4e681a6e4e01a3000f2a3ac07d99895vboxsync