Recipe 4.3. Generating a List of Files from a Source Install for Easy Uninstalls
4.3.1 Problem
You need to know
what files are installed on your system when you install a program
from source code, so that you can find and remove all of them if you
decide you don't want them anymore. Some program
authors thoughtfully include a "make
uninstall" target to perform a clean uninstall, but
many do not.
4.3.2 Solution
You can use standard Linux utilities to generate a pre-installation
list of all files on your system. Then generate a post-installation
list, and diff the two lists to make a list of
newly-installed files. This example uses JOE: Joe's
Own Editor:
# find / | grep -v -e ^/proc/ -e ^/tmp/ -e ^/dev/ > joe-preinstall.list
Compile and install your new program, then generate the
post-installation list:
# find / | grep -v -e ^/proc/ -e ^/tmp/ -e ^/dev/ > joe-postinstall.list
Then create a list of files installed by Joe by
diffing the two lists:
$ diff joe-preinstall.list joe-postinstall.list > joe-installed.list
4.3.3 Discussion
Using find and grep together
makes it easy to exclude directories that don't
matter for your final list. The -v option for
grep turns on verbosity. -e
^ means "exclude the following
directory."
You don't need to bother with
/proc or /tmp files,
because these are transient and constantly changing.
/dev files are managed by the system, so you can
ignore these as well. And it's a also an important
safety measure—when you remove a program manually, using your
nice diff list, /proc,
/tmp, and /dev are all
directories you shouldn't touch in any case.
4.3.4 See Also
|