urpm-tools/docs/urpm-repograph.1

107 lines
6.9 KiB
Groff
Raw Permalink Normal View History

.\" urpm-repograph
.TH "urpm-repograph" "1" "21 December 2011" "Vladimir Testov" "Mandriva Package Management"
.SH "NAME"
urpm-repograph - build dependency graph of repository
.SH "SYNOPSIS"
\fBurpm-repograph\fP [options] REPOSITORY
.SH "DESCRIPTION"
.PP
\fBurpm-repograph\fP 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 \fB--whatrequires\fP and \fB--requires-recursive\fP 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.
.PP
.SH "GENERAL OPTIONS"
.IP "\fBREPOSITORY\fP"
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
"synthesis.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 \fB--file / -f\fP option is present.)
.IP "\fB\-\-cross, -c CROSS_REPO [CROSS_REPO ...]\fP"
Check \fBCROSS_REPO(s)\fP for cross-repository dependencies. Note that dependencies inside \fBCROSS_REPO(s)\fP
(PKG1 from CROSS_REPO(s) needs PKG2 from CROSS_REPO(s)) will not be shown, still dependencies inside \fBREPOSITORY\fP will be.
.IP "\fB\-\-quiet, -q\fP"
Hide service messages. Hides all kinds of status messages.
Note, that you can not use options \fB--quiet, -q\fP, \fB--nograph, -n\fP and do not use option \fB--verbose, -v\fP at the same time.
.IP "\fB\-\-verbose, -v\fP"
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 \fB--quiet, -q\fP, \fB--nograph, -n\fP and do not use option \fB--verbose, -v\fP at the same time.
.IP "\fB\-\-requires, -r\fP"
Also describes \fB--suggests, -s\fP. These two options declare for which types of dependecies
the graph should be build and whick dependecies should be checked and processed.
\fB--requires, -r\fP - required dependencies, as in RPM spec-file. \fB--suggests, -s\fP - suggested dependencies, as in RPM spec-file.
If none of the options are present then tool works as if \fB--requires, -r\fP option was present.
.IP "\fB\-\-suggest, -s\fP"
See \fB--requires, -r\fP description.
.IP "\fB\-\-file, -f\fP"
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.
.IP "\fB\-\-unprovided, -u\fP"
Show unprovided dependencies. Unprovided phrases in requires (and \ or suggests) sections of synthesis.hdlist will be shown in final graph.
Do not use with \fB--broken, -b\fP option, error will be shown and workflow terminated. \fB--broken, -b\fP does the same as \fB--unprovided, -u\fP.
So there is no sense in using these two options together.
.PP
.SH "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 \fBREPOSITORY\fP and
(if \fB--cross, -c\fP option is present) there is no package named PKG in \fBCROSS_REPO(s)\fP
(or if there is no cross-repository dependencies to or from PKG really present in \fBCROSS_REPO(s)\fP)
then selecting of sub-graph will not be performed, warning will be shown and the tool will stop.
Also note that no warnings will be shown (even if \fB--verbose, -v\fP option is present).
If \fB--verbose, -v\fP option is present then list of packages will be written to STDIN. Also some types of warnings will be written to STDIN
when using \fB--verbose, -v\fP.
.IP "\fB\-\-requires-recursive PKG\fP"
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)
.IP "\fB\-\-whatrequires PKG\fP"
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)
.PP
.SH "ALTERNATIVE TASK OPTIONS"
Only one option from this group can be present. Note that \fB--requires-recursive\fP and \fB--whatrequires\fP processes are first to made (if present).
So, for example, you can select subgraph connected with specific package and then select subgraph of broken packages from the first subgraph.
If \fB--loops, -l\fP, \fB--alternatives, -a\fP or \fB--broken, -b\fP options are present - then another graph will be shown and additional algorithms will be performed.
.IP "\fB\-\-loops, -l\fP"
Search for all simple loops of cycled dependencies.
.IP "\fB\-\-alternatives, -a\fP"
Search for alternative packages providing the same feature.
.IP "\fB\-\-broken, -b\fP"
Search for broken packages and those, which are dependend from broken.
.IP "\fB\-\-different, -d\fP"
Output each loop or each alternative in different file. \fBOUTPUT_FILE\fP is tracted as folder name for new files in that case.
Ignored if both \fB--loops, -l\fP and \fB--alternatives, -a\fP options are absent. Also ignored if \fB--output, -o\fP option is not present.
.PP
.SH "OUTPUT OPTIONS"
Only one option in this group can be present. If not specified, graph will be outputted to STDIN.
.IP "\fB\-\-output, -o OUTPUT_FILE\fP"
Output graph to a specified file OUTPUT_FILE. OUTPUT_FILE is treated as directory name if \fB--different, -d\fP option is present.
.IP "\fB\-\-nograph, -n\fP"
Do not output graph.
Note, that you can not use options \fB--quiet, -q\fP, \fB--nograph, -n\fP and do not use option \fB--verbose, -v\fP at the same time.
.PP
.SH "EXAMPLES"
.IP "Analyze local repository and output graph to file './full-graph.dot', show service messages:"
\fBurpm-repograph /tmp/repo -v -o ./full-graph.dot\fP
.IP "Analyze external repository, hide service messages, show warnings and save them into 'warnings.txt':"
\fBurpm-repograph http://example.com/repo -qvn > warnings.txt\fP
.IP "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':"
\fBurpm-repograph http://example.com/main/release -c http://example.com/contrib/release --whatrequires example-pkg -qad -o /tmp/tmp-forever/\fP
.PP
.PP
.SH "AUTHORS"
.nf
See the Authors file included with this program.
.fi