NOVI.1(1)

NAME
novi - scan directories for the latest-version RPMs

SYNOPSIS
novi [ -a|action={type} ]
   [ -t|--target={dir} ]
   [ -v|--verbose ]
   [ -h|--help ]
   source1 [source2 source3 ...]

Pass a list of RPM source directories as the last arguments. For example:

        novi -a hardlink -t /some/dir source1 source2 source3 ...

DESCRIPTION
There may exist several versions of an RPM for a single product. novi scans directories for RPMs and finds the latest-version RPM for every product.

In turn, this data can be used to:

-   see what are the latest RPMs on your system

-   fold the latest RPMs into a Kickstart tree, such that you can build systems with the updates already applied

This process is part of Kickstart/Anaconda/Yum repository maintenance, described in the following article:

"Pre-Patched Kickstart Installs"

http://www.linuxdevcenter.com/pub/a/linux/2005/02/17/kickstart_updates.html

FLAGS

-a, --action={type}
    Specify what to do with the results:

    list (default) - show a list of the latest-version RPMs found in the specified directories.

    hardlink - hard-link the latest-version RPMs to the specfied directory. This saves space and requires less I/O than copying the files (since hard-linking involves an extra pointer in the inode table) but requires all source and target directories to exist on the same filesystem.

    softlink (symbolic link) - this is similar to hard-linking, except that the source and destination directories may exist on different filesystems. If you serve your Yum/Kickstart area via webserver, make sure the webserver is configured to follow symbolic links.

    copy - copies the latest-version RPMs to the target directory. This is extremely I/O-intensive (an OS release may contain a couple gigabytes of RPMs) but makes the source and target directories completely independent of one another.

    NOTE: "copy" functionality hasn't yet been implemented.

    (All but "list" require a target directory, described below.)

-t, --target={dir}
    Where to put the latest-version RPMs. (Used when the action is hardlink or softlink.)

-v, --verbose
    enable verbose output

-h, --help
    show a brief help message

source1 [source2 source3 ...]
    Specify source paths for RPMs. Sources can be plain directories (in which case novi will look for source/*.rpm) or paths to repo metadata files (novi will try to load source/repodata/primary.xml.gz).

    Use the repo: prefix to specify a repo metadata source:

            novi ... repo:/some/path

    Plain directories require no prefix:

            novi ... /some/path

EXAMPLES
Please refer to the separate novi_examples(1) man page for examples.

AUTHOR
Ethan McCallum

WEBSITE
http://www.ExMachinaTech.net/ (still under construction)

LIMITATIONS
novi calls the librpm library behind the scenes to extract RPM metadata and sort packages per RPM naming conventions. A package that doesn't follow RPM naming conventions or a bug in librpm's version comparison may skew novi's results.

SEE ALSO
novi_examples(1)

BUGS
None yet...

NOTES