Im not responsible if you destroyed your computer or data by following these steps. Deleting things in linux maybe a long and complicated processes if you really wnat to remove all traces of an app existing.

How to uninstall an application completely
###########################################

Imagine that app is munin, which installs itself all over the system

Before removing and app, close it down (ALSO DO A SYSTEM BACKUP IF YOU CAN, OR SNAPSHOT YOU CAN REVER TO! IM NOT RESPONSIBLE IF AFTER THIS YOUR SYSTEM WONT LOAD OR IMPORTANT DATA IS LOST)

# ps aux | grep munin

Look at the pids, example 543 and 234

# kill 543 
# kill 234

Double check its closed by repeating the “ps aux” command

You might need to “kill -9” the processes

So after its closed lets delete

# apt-get remove munin

but better:

# apt-get purge munin

clean up:

# apt-get autoremove
# apt-get install -f

if the last 2 steps removed an app/package you need just “apt-get install” it

Also double check what other software you can get rid of:

# dpkg -l | grep "munin"

Lets say you find this:

munin-common
and
munin-node

So then I can delete those

# apt-get purge munin-common
# apt-get purge munin-node

clean up:

# apt-get autoremove
# apt-get install -f

NOTE: check out my article on power deleting apps (be careful with that) HOW TO MASS REMOVE AN APP

Now we are going to work at deleting files and folders that werent removed:

Removing Files and Folders
#############################

now look for files that werent removed

# cd /
# find / -type f -iwholename "*munin*"

Or if you have multiple filesystems

# find / -xdev -type f -iwholename "*munin*"
# find / -mount -type f -iwholename "*munin*"

For the above -xdev/-mount method: You might need to start the search in other locations as / will only look thru the / root filesystem, but what if you had stuff installed in the /home filesystem as well:

# find /home -xdev -type f -iwholename "*munin*"
# find /home -mount -type f -iwholename "*munin*"

NOTE: I show that -xdev and -mount are the same thats why i put it there twice

There is lots of ways to do above commands

What to do with the findings:

Then remove any directories that have munin

Example:
/var/cache/munin/www
so i would remove

# rm -rf /var/cache/munin

Which would remove just the munin folder in /var/cache (but not /var/cache). It would also remove the www folder in munin
However DONT DO THIS:
lets say it found
/etc/munin.conf
Dont delete /etc obviously just delete the munin.conf file

To help with not removing the wrong folders, just look for folders that have word munin in it, and not files:

Look for directories that werent removed as well and remove the directories

# find / -xdev -type d -iwholename "*munin*"
# find / -mount -type d -iwholename "*munin*"

Example I see it found

# /var/log/munin
# rm -rf /var/log/munin

Now not all files are truely cleaned up, some files are shared with other files, so lets clean up the insides of files.

Example: /etc/apach2/apache2.conf
What if you edited somethings there for munin, now you need to remove those edits

Insides of files
###############

Finally lets find all of the config files that mention munin

# cd /etc
# egrep -ir "munin" *

 

All of the files and folders will be listed.

Go into each file and remove the lines (or sections of lines, or just parts of line) that have munin in it
Becareful you must understand how that setting files worked

Sometimes you will need to remove just part of a line that mentiones munin
Then other times you are safe to delete the whole line that mentions munin
Then there is whole sections that need to be deleted

DELETING MUNIN WORDS IN A LINE
===============================

Some config files munin will be mentioned but you can delete the whole line.
Example: /etc/init.d/.depend.start and /etc/init.d/.depend.sttop

Lets look at /etc/init.d/.depend.start notice munin on the top line

TARGETS = rsyslog motd killprocs bootlogs binfmt-support apache2 munin single mysql atd dbus sendmail cron ssh rsync saned rmnologin rc.local
INTERACTIVE = apache2
apache2: rsyslog
single: killprocs motd bootlogs
mysql: rsyslog
atd: rsyslog
dbus: rsyslog
sendmail: rsyslog
cron: rsyslog
ssh: rsyslog
rsync: rsyslog
saned: rsyslog dbus
rmnologin: apache2 rsyslog mysql atd saned dbus sendmail motd bootlogs binfmt-support cron ssh rsync
rc.local: apache2 rsyslog mysql atd saned dbus sendmail motd bootlogs binfmt-support cron ssh rsync

 

NOTE: the above config file is just made up, i grabbed mine and added in munin where I think it will be

Notice we cant just delete the line where munin is, it will delete that whole line

So go in with vi and delete munin from that line

# vi /etc/init.d/.depend.start

Scroll with arrow keys to the “m” in munin and press “x” until its gone and you only have 1 space between “apache2” and “single” so that it says this after:

TARGETS = rsyslog motd killprocs bootlogs binfmt-support apache2 single mysql atd dbus sendmail cron ssh rsync saned rmnologin rc.local

 

Then save and exit “:wq!”

Another alternative is to use sed (only use this on config files were your certain deleting the word munin out of each line will be okay):

# sed -i 's/munin //g' /etc/init.d/.depend.start

 

this will also work on:

# sed -i 's/munin //g' /etc/init.d/.depend.stop

NOTE: I use a sed search and replace to replace “munin ” (munin and a space sign) with nothingness (the same thing as a delete). Why the extra space? so that I dont get double space between “apache2” and “single” after words

NOTE: I dont think my /etc/init.d/.depend.boot file had anything mentioned about munin, thats why its not mentioned in this example
DELETING MUNIN LINES
=====================

Delete a line example:
/etc/shadow found this line that had munin in it

munin:*:16086:0:99999:7:::

We can

# vi /etc/shadow

And scroll down with arrow keys to that line and press “dd” to delete that line then save and exit “:wq!”

Here is a shortcut to delete munin lines (becareful only delete the line if your certain it can go):
I wouldnt use this on config files that have munin “sections” or munin in parts of line. As it only deletes the line. it wont delete the surrounding sections.
So this will be save on files like /etc/shadow and /etc/gshadow and /etc/passwd and /etc/group

# sed -i "/munin/d" /etc/shadow

that says delete the line that has munin in the shadow file and save it (-i meaning inline, meaning save, with out -i it will jsut show you the result on the output)

DELETING MUNIN SECTIONS
=========================

Deleting sections of munin will not be as easy as above to becuase the sections could be like this

<Directory /munin>
stuff
stuff
stuff
stuff
<Directory />

Notice that munin is only mentioned on the top line, but that whole section has to do with it. So we cant jsut delete the line talking about munin, and we cant just talk about the directory

In this case go in with vi and delete all of those 6 lines

# vi /whateverfile

Find the top line of the section talking about munin, scroll down to it and press “dd” as many times until that section is gone, then save and exit “:wq!”

Final steps, other config files and dead links
================================================

This method only covers files that talk about munin in clear text. What bout binary files etc. Hopefully the apt-get got rid of all of those.

By now we are almost done some dead links might still exist just double check to get all files:

# find / -iwhole "*munin*"

Then if its just some links you dont care about just do this:

# find / -iwhole "*munin*" --delete

The end
=========

Just reboot the system and hopefully it comes up 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *