image-minimizer

Authors:

Brian C. Lane <bcl@redhat.com>

image-minimizer is a script used as an interpreter for kickstart %post sections. It is used to remove rpm packages and individual files from the system that Anaconda has just installed.

It processes a list of commands that tell it which files or rpms to remove, and which to keep.

image-minimizer cmdline arguments

usage: image-minimizer [-h] [-i STRING] [--dryrun] [-v] STRING

Optional arguments

-h, --help

show this help message and exit

-i STRING, --installroot STRING

Root path to prepend to all file patterns and installation root for RPM operations. Defaults to INSTALL_ROOT or /mnt/sysimage/

--dryrun

If set, no filesystem changes are made.

-v, --verbose

Display every action as it is performed.

Positional arguments

STRING:

Filename to process

NOTES

You cannot pass any arguments to image-minimizer when using it from the kickstart %post.

When using this from a kickstart the image-minimizer package needs to be available. It is not included on the standard boot.iso, so you will need to include lorax in the %package section. You can use image-minimizer to remove lorax from the install.

If you are using this with livemedia-creator it can be installed on the host system so that lorax isn't needed in the %package list, and it doesn't need to be removed.

commands

Commands are listed one per line, followed by a space, and then by the package, file, or glob. The globs used are Unix style pathname patterns using *, ?, and [] character ranges. globbing is implemented using the python glob module.

  • drop <PATTERN> This will remove files from the installation.

  • keep <PATTERN> This will keep files, and should follow any drop commands including globs.

  • droprpm <PATTERN> Remove matching rpm packages. Dependencies are not remove, just individual packages matching the glob.

  • keeprpm <PATTERN> Do not remove matching rpm packages, it should follow any droprpm commands that include globs.

example

Example Anaconda %post usage:

%post --interpreter=image-minimizer --nochroot

drop /lib/modules/*/kernel/fs
keep /lib/modules/*/kernel/fs/ext*
keep /lib/modules/*/kernel/fs/mbcache*
keep /lib/modules/*/kernel/fs/squashfs

droprpm make
droprpm mtools
droprpm mysql-libs
droprpm perl
droprpm perl-Pod-*
droprpm syslinux
keeprpm perl-Pod-Simple

# Not needed after image-minimizer is done
droprpm lorax

%end