rpmdep.pl

NAME

rpmdep - display the full dependency of an installed rpm package

DESCRIPTION

rpmdep is an improved 'rpm -qR' command : it search recursively for package dependencies, and resolves all dependencies to package names. It can also prepare a file to build a graph of dependencies, with graphviz.

SYNOPSIS

rpmdep.pl [options] package

options:

   -help                brief help message
   -man                 full documentation
   -V, --version        print version
   -use-cache           use cache file instead rpm query
   -clear-cache         clear cache file

   -level               display dependencies by level
   -debug               debug mode
   -dot dotfile         build a dot file for graphviz
   -depending           instead of dependencies, display dependings
   -suggests            also show very weak dependencies : suggests
   -recommends          also show weak dependencies : recommends
   -all                 works on all installed packages

REQUIRED ARGUMENTS

a package to analyse. Only one name may be given. It is not necessary if you are using the -all option.

OPTIONS

-help

Print a brief help message and exits.

-man

Print the manual page and exits.

-version

Print the program release and exit.

-debug

The program works and print debugging messages.

-level

The program also print dependencies by level

-dot

create a dot file to be used by graphviz. in normal call, an arrow from a to b means that a package depends (uses) b package. in dependings call, an arrow from a to b means that a package is used by b package.

-use-cache

the rpm query may be long (10 to 30 s). If you will run an rpmorphan tool several time, this option will allow to gain a lot of time : it save the rpm query on a file cache (first call), then use this cache instead quering rpm (others calls).

-clear-cache

to remove cache file. Can be used with -use-cache to write a new cache.

--depending

instead of showing package dependencies (rpm -qR), display packages wich are depending upon the given argument : it then act as an improved 'rpm -q --whatrequires' command

--suggests

add to "required" dependencies, very weak dependencies

--recommends

add to "required" dependencies, weak dependencies

--all

rpmdep will then work on all installed packages, and display the results sorted by the number of depends (or dependings).

USAGE

get the full list of dependencies for rpmrebuild package

  rpmdep.pl rpmrebuild

get the full list of dependencies for rpmrestore package and build the graph data file (rpmrestore.dot)

  rpmdep.pl -dot rpmrestore.dot rpmrestore

build a png graph image from the graph data

  dot -Tpng rpmrestore.dot -o rpmrestore.png

get depending package of perl

  rpmdep.pl --depending perl

check is a package is an orphan

  rpmdep.pl --depending afick-gui

list all package dependencies

  rpmdep.pl -a

list all packages dependings and prepare a graph

  rpmdep.pl -a --depending --dot alldep.dot

get all dependencies of rpmrebuild package

  rpmdep.pl -suggests --recommends rpmrebuild

FILES

the program can use the /tmp/rpmorphan.cache file

DIAGNOSTICS

the debug mode allow to see all the recursive work

others messages are

package ... is not installed

this is not a name of an installed package

... has no dependencies

this can comes for some admin tools (ash for example)

... depends upon (list)

return a list of sorted and comma separated packages

... is needed by (list)

return the depending package list

no depending : ... is an orphan

the given package has no depending packages : it is an orphan

EXIT STATUS

O if all is ok

>=1 if a problem

CONFIGURATION

nothing

DEPENDENCIES

you should use graphviz to build graph from dot files

INCOMPATIBILITIES

not known

BUGS AND LIMITATIONS

the program does not work well on program installed in several versions

the code does not use the following rpm tags : Supplements, Enhances

NOTES

this program can be used as "normal" (unpriviledge) user

SEE ALSO

rpmorphan(1)

rpmusage(1)

rpmduplicates(1)

rpmextra(1)

LICENSE AND COPYRIGHT

Copyright (C) 2008 by Eric Gerbier This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

AUTHOR

Eric Gerbier

you can report any bug or suggest to gerbier@users.sourceforge.net

 rpmdep.pl