1RPMDEPLINT(1) rpmdeplint RPMDEPLINT(1)
2
3
4
6 rpmdeplint - a tool to find errors in RPM packages in the context of
7 their dependency graph
8
10 rpmdeplint COMMAND [--repo NAME,URL] [RPMPATH]
11
12
14 The rpmdeplint command tests the dependency satisfiability of specified
15 RPM packages against given repositories.
16
18 --repo NAME[,URL_OR_PATH], -r NAME[,URL_OR_PATH]
19 Load yum repository specified by name or by URL/path.
20
21 If the repo is already configured in /etc/yum.repos.d/*.repo
22 simply specify its name like:
23
24 --repo=fedora
25
26 Otherwise, specify a name and the base URL or metalink. The NAME
27 is for descriptive purposes only in this case. It has no impact
28 on dependency resolution. If rpmdeplint identifies a dependency
29 issue relating to a package in this repo, the NAME will appear
30 in the error message. Examples:
31
32 --repo=fedora,https://download.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/
33
34 --repo=fedora,https://mirrors.fedoraproject.org/metalink?repo=rawhide&arch=x86_64
35
36 You can also specify a local filesystem path instead of a URL,
37 like:
38
39 --repo=myrepo,/home/me/my_repo
40
41 Note that the URL/path should point at a directory containing
42 repodata/repomd.xml. Examples:
43
44 --repos-from-system, -R
45 Use yum repos from the system-wide configuration in /etc/yum.re‐
46 pos.d/*.repo. Repos which are disabled in the configuration (en‐
47 abled=0) are ignored.
48
49 This option can be combined with one or more --repo options.
50
51 --arch ARCH, -a ARCH
52 Only consider packages for ARCH when solving dependencies. If a
53 repo contains packages for any other arches, they will be ig‐
54 nored.
55
56 Note that the traditional RPM arch compatibility rules are ap‐
57 plied, which means that noarch packages and "inferior" arch
58 packages are also included (for example, i686 implicitly in‐
59 cludes i386).
60
61 This option is normally not required, because distribution repos
62 are normally split by arch (including the various special cases
63 for multilib).
64
66 RPMPATH
67 Path to an RPM package. This can be a relative or absolute
68 filesystem path.
69
71 check Performs each of the checks listed below.
72
73 check-sat
74 Checks for unmet dependencies with the given RPM packages
75 against the given repositories. Each unmet dependency is
76 listed.
77
78 check-repoclosure
79 Checks for unmet dependencies in the given repositories, when
80 considered together with the given packages. This check is simi‐
81 lar to check-sat, except it checks only packages in the reposi‐
82 tories, not the packages under test.
83
84 Packages are only considered to be available for dependency res‐
85 olution if they are the latest version and not obsoleted by any
86 other package. Therefore this check can detect problems where a
87 package under test is updating an existing package in the repos‐
88 itories, but it no longer provides a requirement needed by some
89 other package in the repositories.
90
91 In case a pre-existing repoclosure problem is found (that is,
92 the same problem exists when considering only the repositories
93 without the packages under test) a warning is printed to stderr,
94 but the check is not considered to have failed.
95
96 check-conflicts
97 Checks for undeclared file conflicts in the given RPM packages:
98 that is, when a given package contains a file also contained in
99 another package.
100
101 This command will not report a file as conflicting between two
102 packages if:
103
104 • there is an explicit RPM Conflicts between the two packages;
105 or
106
107 • the file’s checksum, permissions, owner, and group are identi‐
108 cal in both packages (RPM allows both packages to own the file
109 in this case); or
110
111 • the file’s color is different between the two packages (RPM
112 will silently resolve the conflict in favour of the 64-bit
113 file).
114
115 check-upgrade
116 Checks that there are no existing packages in the repositories
117 which would upgrade or obsolete the given packages.
118
119 If this check fails, it means that the package under test will
120 never be installed (since the package manager will always pick
121 the newer or obsoleting package from the repositories instead)
122 which is not desirable, assuming the package is intended as an
123 update.
124
125 list-deps
126 All dependencies will be listed for each given RPM package.
127
129 0 Checks ran successfully, and no problems were found
130
131 1 Error occurred while running checks (including network errors
132 downloading repodata)
133
134 2 Command-line usage error
135
136 3 Problems were found with the packages under test
137
139 Imagine you have produced a new pre-release build of your package, and
140 you want to check if it will cause dependency errors in Fedora:
141
142 rpmdeplint check \
143 --repo=fedora,https://download.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/ \
144 greenwave-0.6.1-0.git.2.2529bfb.fc29.noarch.rpm
145
146 You don't have to specify the URLs of the repos if they are already
147 configured in /etc/yum.repos.d/:
148
149 rpmdeplint check \
150 --repo=fedora --repo=updates \
151 greenwave-0.6.1-0.git.2.2529bfb.fc29.noarch.rpm
152
153 or use all configured repos:
154
155 rpmdeplint check \
156 --repos-from-system \
157 greenwave-0.6.1-0.git.2.2529bfb.fc29.noarch.rpm
158
159 You can also use a local filesystem path instead of an absolute URL for
160 the repos to test against. For example, if you are offline you could
161 re-use your local dnf cache. (Note that rpmdeplint may need to fetch
162 packages for file conflict checking and this step will fail if you use
163 an incomplete repo such as the dnf cache.)
164
165 rpmdeplint check \
166 --repo=rawhide,/var/cache/dnf/rawhide-2d95c80a1fa0a67d/
167 greenwave-0.6.1-0.git.2.2529bfb.fc29.noarch.rpm
168
170 Bug reports can be submitted to
171 https://github.com/fedora-ci/rpmdeplint/issues.
172
174 rpmdeplint contributors
175
177 2023, Red Hat
178
179
180
181
1822.0 Nov 14, 2023 RPMDEPLINT(1)