urpm-repograph(1) Mandriva Package Management urpm-repograph(1)NAMEurpm-repograph - build dependency graph of repository
SYNOPSISurpm-repograph [options] REPOSITORY
DESCRIPTIONurpm-repograph is a tool for generating dependency graph for REPOSITORY
packages. Output is in the format of language "DOT". Meanwhile it can
check for missing dependecies, track cross-repository dependecies,
search and display dependency cycles (A needs B, B needs C, C needs A),
search and display alternatives ("word" is provided by A, B and C),
also the tool with options --whatrequires and --requires-recursive can
select only that part of the graph which is provided (in recursive
sense) by PKG or requires (also in recursive sense) PKG. Note that
warning about repository mismatches will not be shown in the last case.
GENERAL OPTIONS
REPOSITORY
The only required argument. URL (starts with "http://" or
"ftp://") or PATH (global or local, can starts with "file://")
to repository (exactly url or path which consists of packages
and includes directory "media_info", which is the only object of
interest for this tool. (You can download separately files "syn‐
thesis.hdlist.cz" and "files.xml.lzma" to folder (for example)
"./A/media_info" and run tool with "./A": "urpm-repograph ./A",
"files.xml.lzma" is needed only if --file / -f option is
present.)
--cross, -c CROSS_REPO [CROSS_REPO ...]
Check CROSS_REPO(s) for cross-repository dependencies. Note that
dependencies inside CROSS_REPO(s) (PKG1 from CROSS_REPO(s) needs
PKG2 from CROSS_REPO(s)) will not be shown, still dependencies
inside REPOSITORY will be.
--quiet, -q
Hide service messages. Hides all kinds of status messages.
Note, that you can not use options --quiet, -q, --nograph, -n
and do not use option --verbose, -v at the same time.
--verbose, -v
Show extended information. Shows more detailed information. Also
shows warnings - about missing dependecies, self-dependecies,
cross-repository dependencies. Note, that you can not use
options --quiet, -q, --nograph, -n and do not use option --ver‐
bose, -v at the same time.
--requires, -r
Also describes --suggests, -s. These two options declare for
which types of dependecies the graph should be build and whick
dependecies should be checked and processed. --requires, -r-
required dependencies, as in RPM spec-file. --suggests, -s -
suggested dependencies, as in RPM spec-file. If none of the
options are present then tool works as if --requires, -r option
was present.
--suggest, -s
See --requires, -r description.
--file, -f
Process file dependecies. If not present then tool will skip
both checking and processing dependencies from files. If
present, then "files.xml.lzma" should be present.
--unprovided, -u
Show unprovided dependencies. Unprovided phrases in requires
(and or suggests) sections of synthesis.hdlist will be shown in
final graph. Do not use with --broken, -b option, error will be
shown and workflow terminated. --broken, -b does the same as
--unprovided, -u. So there is no sense in using these two
options together.
PACKAGE SPECIFIC OPTIONS
Only one option in this group can be present. PKG is either packagename
(e.g. urpm-tools) or full package name (with version, release etc).
Note that if option from this group is present then PKG will be checked
- if there is no package named PKG in REPOSITORY and (if --cross, -c
option is present) there is no package named PKG in CROSS_REPO(s) (or
if there is no cross-repository dependencies to or from PKG really
present in CROSS_REPO(s)) then selecting of sub-graph will not be per‐
formed, warning will be shown and the tool will stop. Also note that
no warnings will be shown (even if --verbose, -v option is present).
If --verbose, -v option is present then list of packages will be writ‐
ten to STDIN. Also some types of warnings will be written to STDIN when
using --verbose, -v.
--requires-recursive PKG
Search for packages, which are required by package PKG. (in
recursive sense, for example, if PKG needs PKG2 and PKG2 needs
PKG3, then PKG3 will be also checked and processed and so on)
--whatrequires PKG
Search for packages, which requires package PKG. (in recursive
sense, for example, if PKG is needed by PKG2 and PKG2 is needed
by PKG3, then PKG3 will be also checked and processed and so on)
ALTERNATIVE TASK OPTIONS
Only one option from this group can be present. Note that --requires-
recursive and --whatrequires processes are first to made (if present).
So, for example, you can select subgraph connected with specific pack‐
age and then select subgraph of broken packages from the first sub‐
graph. If --loops, -l, --alternatives, -a or --broken, -b options are
present - then another graph will be shown and additional algorithms
will be performed.
--loops, -l
Search for all simple loops of cycled dependencies.
--alternatives, -a
Search for alternative packages providing the same feature.
--broken, -b
Search for broken packages and those, which are dependend from
broken.
--different, -d
Output each loop or each alternative in different file. OUT‐
PUT_FILE is tracted as folder name for new files in that case.
Ignored if both --loops, -l and --alternatives, -a options are
absent. Also ignored if --output, -o option is not present.
OUTPUT OPTIONS
Only one option in this group can be present. If not specified, graph
will be outputted to STDIN.
--output, -o OUTPUT_FILE
Output graph to a specified file OUTPUT_FILE. OUTPUT_FILE is
treated as directory name if --different, -d option is present.
--nograph, -n
Do not output graph. Note, that you can not use options
--quiet, -q, --nograph, -n and do not use option --verbose, -v
at the same time.
EXAMPLES
Analyze local repository and output graph to file './full-graph.dot',
show service messages:
urpm-repograph /tmp/repo -v -o ./full-graph.dot
Analyze external repository, hide service messages, show warnings and
save them into 'warnings.txt':
urpm-repograph http://example.com/repo -qvn > warnings.txt
Analyze two external repository - 'http://example.com/main/release' and
additional 'http://example.com/contrib/release'. Select only packages
that requires 'example-pkg' (in recursive sense). Search for loops in
this group of packages and output every loop in different file in
directory '/tmp/tmp-forever':
urpm-repograph http://example.com/main/release -c http://exam‐
ple.com/contrib/release --whatrequires example-pkg -qad-o
/tmp/tmp-forever/
AUTHORS
See the Authors file included with this program.
Vladimir Testov 21 December 2011 urpm-repograph(1)