VirtualBox

source: vbox/trunk/src/VBox/Installer/linux/uninstall.sh@ 32736

Last change on this file since 32736 was 32326, checked in by vboxsync, 14 years ago

Linux .run installer: try to terminate VBoxSVC if necessary; check for running VBoxSVC instances before uninstalling; handle the vboxweb-service

  • Property svn:eol-style set to LF
File size: 5.3 KB
Line 
1#!/bin/sh
2#
3# Oracle VM VirtualBox
4# VirtualBox linux uninstallation script
5
6#
7# Copyright (C) 2009-2010 Oracle Corporation
8#
9# This file is part of VirtualBox Open Source Edition (OSE), as
10# available from http://www.virtualbox.org. This file is free software;
11# you can redistribute it and/or modify it under the terms of the GNU
12# General Public License (GPL) as published by the Free Software
13# Foundation, in version 2 as it comes in the "COPYING" file of the
14# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16#
17
18. `dirname $0`/routines.sh
19
20if [ -z "$ro_LOG_FILE" ]; then
21 create_log "/var/log/vbox-uninstall.log"
22fi
23
24if [ -z "VBOX_NO_UNINSTALL_MESSAGE" ]; then
25 info "Uninstalling VirtualBox"
26 log "Uninstalling VirtualBox"
27 log ""
28fi
29
30check_root
31
32[ -z "$DKMS" ] && DKMS=`which dkms 2> /dev/null`
33[ -z "$CONFIG_DIR" ] && CONFIG_DIR="/etc/vbox"
34[ -z "$CONFIG" ] && CONFIG="vbox.cfg"
35[ -z "$CONFIG_FILES" ] && CONFIG_FILES="filelist"
36[ -z "$DEFAULT_FILES" ] && DEFAULT_FILES=`pwd`/deffiles
37
38# Find previous installation
39if [ -r $CONFIG_DIR/$CONFIG ]; then
40 . $CONFIG_DIR/$CONFIG
41 PREV_INSTALLATION=$INSTALL_DIR
42fi
43
44# Remove previous installation
45if [ "$PREV_INSTALLATION" = "" ]; then
46 log "Unable to find a VirtualBox installation, giving up."
47 abort "Couldn't find a VirtualBox installation to uninstall."
48fi
49
50# Stop the web service
51stop_init_script vboxweb-service
52# Do this check here after we terminated the web service
53check_running
54# Terminate VBoxNetDHCP if running
55terminate_proc VBoxNetDHCP
56delrunlevel vboxweb-service > /dev/null 2>&1
57remove_init_script vboxweb-service
58# Stop kernel module and uninstall runlevel script
59stop_init_script vboxdrv
60delrunlevel vboxdrv > /dev/null 2>&1
61remove_init_script vboxdrv
62# Stop host networking and uninstall runlevel script (obsolete)
63stop_init_script vboxnet
64delrunlevel vboxnet > /dev/null 2>&1
65remove_init_script vboxnet
66# Remove kernel module installed
67if [ -n "$DKMS" ]; then
68 $DKMS remove -m vboxhost -v $INSTALL_VER --all > /dev/null 2>&1
69fi
70if [ -z "$VBOX_DONT_REMOVE_OLD_MODULES" ]; then
71 find /lib/modules/`uname -r` -name "vboxdrv\.*" 2>/dev/null|xargs rm -f 2> /dev/null
72 find /lib/modules/`uname -r` -name "vboxnetflt\.*" 2>/dev/null|xargs rm -f 2> /dev/null
73 find /lib/modules/`uname -r` -name "vboxnetadp\.*" 2>/dev/null|xargs rm -f 2> /dev/null
74 # Remove directories we have installed to in the past
75 find /lib/modules/`uname -r` -name vbox\* 2>/dev/null|xargs rmdir -p 2> /dev/null
76 find /lib/modules/`uname -r` -name misc\* 2>/dev/null|xargs rmdir -p 2> /dev/null
77 rm -f /usr/src/vboxhost-$INSTALL_VER 2> /dev/null
78 rm -f /usr/src/vboxdrv-$INSTALL_VER 2> /dev/null
79 rm -f /usr/src/vboxnetflt-$INSTALL_VER 2> /dev/null
80 rm -f /usr/src/vboxnetadp-$INSTALL_VER 2> /dev/null
81fi
82
83# Remove symlinks
84rm -f /usr/bin/VirtualBox 2> /dev/null
85rm -f /usr/bin/VBoxManage 2> /dev/null
86rm -f /usr/bin/VBoxSDL 2> /dev/null
87rm -f /usr/bin/VBoxVRDP 2> /dev/null
88rm -f /usr/bin/VBoxHeadless 2> /dev/null
89rm -f /usr/bin/VBoxNetDHCP 2> /dev/null
90rm -f /usr/bin/vboxwebsrv 2> /dev/null
91rm -f /usr/bin/VBoxAddIF 2> /dev/null
92rm -f /usr/bin/VBoxDeleteIf 2> /dev/null
93rm -f /usr/bin/VBoxTunctl 2> /dev/null
94rm -f /usr/share/pixmaps/VBox.png 2> /dev/null
95rm -f /usr/share/applications/virtualbox.desktop 2> /dev/null
96rm -f /usr/bin/rdesktop-vrdp 2> /dev/null
97rm -f $PREV_INSTALLATION/components/VBoxVMM.so
98rm -f $PREV_INSTALLATION/components/VBoxREM.so
99rm -f $PREV_INSTALLATION/components/VBoxRT.so
100rm -f $PREV_INSTALLATION/components/VBoxDDU.so
101rm -f $PREV_INSTALLATION/components/VBoxXPCOM.so
102
103# Remove udev description file
104if [ -f /etc/udev/rules.d/60-vboxdrv.rules ]; then
105 rm -f /etc/udev/rules.d/60-vboxdrv.rules 2> /dev/null
106fi
107if [ -f /etc/udev/rules.d/10-vboxdrv.rules ]; then
108 rm -f /etc/udev/rules.d/10-vboxdrv.rules 2> /dev/null
109fi
110
111cwd=`pwd`
112if [ -f $PREV_INSTALLATION/src/Makefile ]; then
113 cd $PREV_INSTALLATION/src
114 make clean > /dev/null 2>&1
115fi
116if [ -f $PREV_INSTALLATION/src/vboxdrv/Makefile ]; then
117 cd $PREV_INSTALLATION/src/vboxdrv
118 make clean > /dev/null 2>&1
119fi
120if [ -f $PREV_INSTALLATION/src/vboxnetflt/Makefile ]; then
121 cd $PREV_INSTALLATION/src/vboxnetflt
122 make clean > /dev/null 2>&1
123fi
124if [ -f $PREV_INSTALLATION/src/vboxnetadp/Makefile ]; then
125 cd $PREV_INSTALLATION/src/vboxnetadp
126 make clean > /dev/null 2>&1
127fi
128cd $PREV_INSTALLATION
129if [ -r $CONFIG_DIR/$CONFIG_FILES ]; then
130 rm -f `cat $CONFIG_DIR/$CONFIG_FILES` 2> /dev/null
131elif [ -n "$DEFAULT_FILES" -a -r "$DEFAULT_FILES" ]; then
132 DEFAULT_FILE_NAMES=""
133 . $DEFAULT_FILES
134 for i in "$DEFAULT_FILE_NAMES"; do
135 rm -f $i 2> /dev/null
136 done
137fi
138for file in `find $PREV_INSTALLATION 2> /dev/null`; do
139 rmdir -p $file 2> /dev/null
140done
141cd $cwd
142mkdir -p $PREV_INSTALLATION 2> /dev/null # The above actually removes the current directory and parents!
143rmdir $PREV_INSTALLATION 2> /dev/null
144rm -r $CONFIG_DIR/$CONFIG 2> /dev/null
145
146if [ -z "$VBOX_NO_UNINSTALL_MESSAGE" ]; then
147 rm -r $CONFIG_DIR/$CONFIG_FILES 2> /dev/null
148 rmdir $CONFIG_DIR 2> /dev/null
149 [ -n "$INSTALL_REV" ] && INSTALL_REV=" r$INSTALL_REV"
150 info "VirtualBox $INSTALL_VER$INSTALL_REV has been removed successfully."
151 log "Successfully $INSTALL_VER$INSTALL_REV removed VirtualBox."
152fi
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette