The FreeBSD base system contains everything neccesary for a minimal functional operating system. However it contains a little more than that and since some of the developers started talking about importing OpenLDAP into base I have been thinking about a way to avoid installing that on my machines.
I update my machines using the traditional method of make buildworld
and make installworld
. The build system lets me specify NO_* variables
in /etc/make.conf
to exclude certain parts of the system from being
built and installed. But if I add those variables after having done a standard install
of the system those parts will not be removed from my system, just not updated.
So I end up with a number of stale files that can possibly cause unpredictable
behaviour.
To solve this problem I have written a script that builds a standard full world
as well as a world using the variables from /etc/make.conf
. It then
compares the list of files installed from both of them and presents a list of
files not present in the custom world.
The file list is opened in the vi
editor and can be changed if desired.
After closing the editor you need to confirm the deletion of the files before
they are deleted.
The script takes one argument which is a path to a working directory. The directory needs to be on a filesystem with 1 to 1.5GB of free space.
The script can be downloaded from here. Enjoy.