novi(1) - Linux man page
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
- This process is part of Kickstart/Anaconda/Yum repository maintenance, described in the following article:
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
Bugs
None yet...