1YUM2DNF(8)                            DNF                           YUM2DNF(8)
2
3
4

NAME

6       yum2dnf - Changes in DNF compared to YUM
7

--SKIP-BROKEN

9       For install command:
10
11       The  --skip-broken  option  is  an  alias  for  --setopt=strict=0. Both
12       options could be used with DNF to  skip  all  unavailable  packages  or
13       packages with broken dependencies given to DNF without raising an error
14       causing the whole operation to  fail.  This  behavior  can  be  set  as
15       default in dnf.conf file. See strict conf option.
16
17       For upgrade command:
18
19       The  semantics  that were supposed to trigger in YUM with --skip-broken
20       are now set for plain dnf update as a default. There is no need to  use
21       --skip-broken with the dnf upgrade command. To use only the latest ver‐
22       sions of packages in transactions, there is  the  --best  command  line
23       switch.
24

UPDATE AND UPGRADE COMMANDS ARE THE SAME

26       Invoking  dnf  update  or dnf upgrade, in all their forms, has the same
27       effect in DNF, with the latter being preferred. In YUM yum upgrade  was
28       exactly like yum --obsoletes update.
29

CLEAN_REQUIREMENTS_ON_REMOVE ON BY DEFAULT

31       The clean_requirements_on_remove switch is on by default in DNF. It can
32       thus be confusing to compare the "remove" operation results between DNF
33       and YUM as by default DNF is often going to remove more packages.
34

NO RESOLVEDEP COMMAND

36       The  YUM version of this command is maintained for legacy reasons only.
37       The user can just use dnf provides to find out what package provides  a
38       particular file.
39

NO DEPLIST COMMAND

41       An alternative to the YUM deplist command to find out dependencies of a
42       package is dnf repoquery --deplist using repoquery command.
43
44       NOTE:
45          Alternatively there is a YUM compatibility support where yum deplist
46          is alias for dnf repoquery --deplist command
47

EXCLUDES AND REPO EXCLUDES APPLY TO ALL OPERATIONS

49       YUM  only  respects  excludes during installs and upgrades. DNF extends
50       this to all operations, among others erasing and listing. If  you  e.g.
51       want  to  see a list of all installed python-f* packages but not any of
52       the Flask packages, the following will work:
53
54          dnf -x '*flask*' list installed 'python-f*'
55

YUM'S CONF DIRECTIVE INCLUDEPKGS IS JUST INCLUDE

57       include directive name of [main] and Repo configuration is a more logi‐
58       cal and better named counterpart of exclude in DNF.
59

DNF PROVIDES /BIN/<FILE> DOES NOT FIND ANY PACKAGES ON FEDORA

61       After  UsrMove there's no directory /bin on Fedora systems and no files
62       get installed there, /bin is only a symlink created by  the  filesystem
63       package to point to /usr/bin. Resolving the symlinks to their real path
64       would only give the user a false sense that this works, while  in  fact
65       provides requests using globs such as:
66
67          dnf provides /b*/<file>
68
69       will  fail  still (as they do in YUM now). To find what provides a par‐
70       ticular binary, use the actual path for binaries on Fedora:
71
72          dnf provides /usr/bin/<file>
73
74       Also see related Fedora bugzillas 982947 and 982664.
75

SKIP_IF_UNAVAILABLE ENABLED BY DEFAULT

77       The important system  repos  should  never  be  down  and  we  see  the
78       third-party  repos  down often enough to warrant this change. Note that
79       without this setting and without an  explicit  skip_if_unavailable=True
80       in  the  relevant repo .ini file YUM immediately stops on a repo error,
81       confusing and bothering the user.
82
83       See the related Fedora bug 984483.
84

OVERWRITE_GROUPS DROPPED, COMPS FUNCTIONS ACTING AS IF ALWAYS DISABLED

86       This config option has been dropped. When DNF sees several groups  with
87       the same group ID it merges the groups' contents together.
88

MIRRORLIST_EXPIRE DROPPED

90       To  simplify  things  for  the  user, DNF uses metadata_expire for both
91       expiring metadata and the mirrorlist file (which is a kind of  metadata
92       itself).
93
95       The  following part of yum.conf(5) no longer applies for the mirrorlist
96       option:
97          As a special hack if the mirrorlist URL contains the word "metalink"
98          then  the  value of mirrorlist is copied to metalink (if metalink is
99          not set).
100
101       The relevant repository configuration files have been fixed to  respect
102       this, see the related Fedora bug 948788.
103

ALWAYSPROMPT DROPPED

105       Unsupported to simplify the configuration.
106

GROUP_PACKAGE_TYPES DROPPED

108       Done to simplify the configuration. Users will typically want to decide
109       what packages to install per-group and not via a global setting:
110
111          dnf group install with-optional Editors
112

UPGRADE_REQUIREMENTS_ON_INSTALL DROPPED

114       Dropping this config option with blurry semantics simplifies  the  con‐
115       figuration.  DNF behaves as if this was disabled. If the user wanted to
116       upgrade everything to the latest version she'd simply use dnf upgrade.
117

DNF HISTORY ROLLBACK CHECK DROPPED

119       Since DNF tolerates the use of other package managers, it  is  possible
120       that not all changes to the RPMDB are stored in the history of transac‐
121       tions. Therefore, DNF does not fail if such a situation is  encountered
122       and thus the force option is not needed anymore.
123

PACKAGES REPLACEMENT WITHOUT YUM SWAP

125       Time after time one needs to remove an installed package and replace it
126       with a different one, providing the same capabilities while other pack‐
127       ages  depending  on  these  capabilities stay installed. Without (tran‐
128       siently) breaking consistency of the package database this can be  done
129       by performing the remove and the install in one transaction. The common
130       way to set up such a transaction in DNF is to use dnf shell or use  the
131       --allowerasing switch.
132
133       E.g. say you want to replace A (providing P)  with B (also providing P,
134       conflicting with A) without  deleting  C  (which  requires  P)  in  the
135       process. Use:
136
137          dnf --allowerasing install B
138
139       This command is equal to yum swap A B.
140
141       DNF provides swap command but only dnf swap A B syntax is supported
142

DEPENDENCY PROCESSING DETAILS ARE NOT SHOWN IN THE CLI

144       During its depsolving phase, YUM outputs lines similar to:
145
146          ---> Package rubygem-rhc.noarch 0:1.16.9-1.fc19 will be an update
147          --> Processing Dependency: rubygem-net-ssh-multi >= 1.2.0 for package: rubygem-rhc-1.16.9-1.fc19.noarch
148
149       DNF does not output information like this. The technical reason is that
150       depsolver below DNF always considers all dependencies for update candi‐
151       dates  and  the  output  would be very long. Secondly, even in YUM this
152       output gets confusing very quickly especially  for  large  transactions
153       and so does more harm than good.
154
155       See the the related Fedora bug 1044999.
156

DNF PROVIDES COMPLIES WITH THE YUM DOCUMENTATION OF THE COMMAND

158       When one executes:
159
160          yum provides sandbox
161
162       YUM  applies extra heuristics to determine what the user meant by sand‐
163       box, for instance it sequentially prepends entries from the PATH  envi‐
164       ronment  variable  to  it  to see if it matches a file provided by some
165       package. This is an undocumented behavior that DNF  does  not  emulate.
166       Just typically use:
167
168          dnf provides /usr/bin/sandbox
169
170       or even:
171
172          dnf provides '*/sandbox'
173
174       to obtain similar results.
175

--ENABLEPLUGIN NOT RECOGNIZED

177       This switch has been dropped. It is not documented for YUM and of ques‐
178       tionable use (all plugins are enabled by default).
179

BANDWIDTH LIMITING

181       DNF supports the throttle and  bandwidth  options  familiar  from  YUM.
182       Contrary  to  YUM, when multiple downloads run simultaneously the total
183       downloading speed is throttled. This was  not  possible  in  YUM  since
184       downloaders ran in different processes.
185

INSTALLONLYPKGS CONFIG OPTION

187       Compared  to YUM, DNF appends list values from the installonlypkgs con‐
188       fig option to DNF defaults, where YUM overwrites the defaults by option
189       values.
190

THE USAGE OF DELTA RPM FILES

192       The  boolean deltarpm option controls whether delta RPM files are used.
193       Compared to YUM, DNF does not support deltarpm_percentage  and  instead
194       chooses  some  optimal  value of DRPM/RPM ratio to decide whether using
195       deltarpm makes sense in the given case.
196

HANDLING .SRPM FILES AND NON-EXISTENT PACKAGES

198       DNF will terminate early  with  an  error  if  a  command  is  executed
199       requesting an installing operation on a local .srpm file:
200
201          $ dnf install fdn-0.4.17-1.fc20.src.rpm tour-4-6.noarch.rpm
202          Error: Will not install a source rpm package (fdn-0.4.17-1.fc20.src).
203
204       The  same  applies  for  package  specifications  that do not match any
205       available package.
206
207       YUM will only issue a warning in this case and continue installing  the
208       "tour"  package.  The rationale behind the result in DNF is that a pro‐
209       gram should terminate with an error if it can not fulfill the CLI  com‐
210       mand in its entirety.
211

PROMOTING PACKAGE TO INSTALL TO A PACKAGE THAT OBSOLETES IT

213       DNF  will  not  magically replace a request for installing package X to
214       installing package Y if Y obsoletes X. YUM does this if  its  obsoletes
215       config  option  is  enabled but the behavior is not properly documented
216       and can be harmful.
217
218       See the the related Fedora bug 1096506 and guidelines for renaming  and
219       obsoleting packages in Fedora.
220

BEHAVIOR OF --INSTALLROOT OPTION

222       DNF  offers  more  predictable behavior of installroot. DNF handles the
223       path differently from the --config command-line option, where this path
224       is  always  related  to  the  host  system (YUM combines this path with
225       installroot). Reposdir is also handled  slightly  differently,  if  one
226       path  of  the  reposdirs  exists  inside of installroot, then repos are
227       strictly taken from installroot (YUM tests each path from reposdir sep‐
228       arately and use installroot path if existed). See the detailed descrip‐
229       tion for --installroot option.
230

DIFFERENT PROMPT AFTER TRANSACTION TABLE

232       DNF doesn't provide download functionality after displaying transaction
233       table.  It  only asks user whether to continue with transaction or not.
234       If one wants to download packages, they can use the 'download' command.
235

LIST COMMAND SHOWS ALL REPO ALTERNATIVES

237       DNF lists all packages from all repos, which means there can be  dupli‐
238       cates  package names (with different repo name). This is due to provid‐
239       ing users possibility to choose preferred repo.
240
241       ┌──────────────────────────┬─────────────────────┬────────────────────┐
242       │Original YUM tool         │ DNF command/option  │ Package            │
243       ├──────────────────────────┼─────────────────────┼────────────────────┤
244yum check                 │ dnf       repoquery │ dnf                
245       │                          │ --unsatisfied       │                    │
246       ├──────────────────────────┼─────────────────────┼────────────────────┤
247yum-langpacks             │                     │ dnf-langpacks      
248       ├──────────────────────────┼─────────────────────┼────────────────────┤
249yum-plug‐                 │ option   in  debug‐ dnf-plugins-core   
250in-auto-update-debug-info info-install.conf   │                    │
251       ├──────────────────────────┼─────────────────────┼────────────────────┤
252yum-plugin-copr           dnf coprdnf-plugins-core   
253       ├──────────────────────────┼─────────────────────┼────────────────────┤
254yum-plugin-fastestmirror  fastestmirror       dnf                
255       │                          │ option in dnf.conf  │                    │
256       ├──────────────────────────┼─────────────────────┼────────────────────┤
257yum-plugin-fs-snapshot    │                     │ dnf-plug‐          
258       │                          │                     │ ins-extras-snapper 
259       ├──────────────────────────┼─────────────────────┼────────────────────┤
260yum-plugin-local          │                     │ dnf-plugins-core   
261       ├──────────────────────────┼─────────────────────┼────────────────────┤
262yum-plugin-merge-conf     │                     │ dnf-plug‐          
263       │                          │                     │ ins-extras-rpmconf 
264       └──────────────────────────┴─────────────────────┴────────────────────┘
265
266
267yum-plugin-priorities     priority  option in │ dnf                
268       │                          │ dnf.conf            │                    │
269       ├──────────────────────────┼─────────────────────┼────────────────────┤
270yum-plug‐                 dnf autoremove      dnf                
271in-remove-with-leaves     │                     │                    │
272       ├──────────────────────────┼─────────────────────┼────────────────────┤
273yum-plugin-show-leaves    │                     │ dnf-plugins-core   
274       ├──────────────────────────┼─────────────────────┼────────────────────┤
275yum-plugin-versionlock    │                     │ dnf-plugins-core   
276       ├──────────────────────────┼─────────────────────┼────────────────────┤
277yum-rhn-plugin            │                     │ dnf-plugin-space‐  
278       │                          │                     │ walk               
279       └──────────────────────────┴─────────────────────┴────────────────────┘
280
281       Plugins that have not been ported yet:
282
283       yum-plugin-aliases,    yum-plugin-changelog,    yum-plugin-filter-data,
284       yum-plugin-keys,     yum-plugin-list-data,     yum-plugin-post-transac‐
285       tion-actions,  yum-plugin-protectbase,  yum-plugin-ps,  yum-plugin-pup‐
286       petverify,    yum-plugin-refresh-updatesd,   yum-plugin-rpm-warm-cache,
287       yum-plugin-tmprepo,   yum-plugin-tsflags,    yum-plugin-upgrade-helper,
288       yum-plugin-verify
289
290       Feel free to file an RFE for missing functionality if you need it.
291
292       All ported YUM tools are now implemented as DNF plugins.
293
294         ┌──────────────────────┬─────────────────────┬─────────────────────┐
295         │Original YUM tool     │ New DNF command     │ Package             │
296         ├──────────────────────┼─────────────────────┼─────────────────────┤
297debuginfo-install     dnf          debug‐dnf-plugins-core    
298         │                      │ info-install        │                     │
299         ├──────────────────────┼─────────────────────┼─────────────────────┤
300find-repos-of-install dnf list installeddnf                 
301         ├──────────────────────┼─────────────────────┼─────────────────────┤
302needs-restarting      dnf tracerdnf-plug‐           
303         │                      │                     │ ins-extras-tracer   
304         ├──────────────────────┼─────────────────────┼─────────────────────┤
305package-cleanup       │ dnf list, dnf repo‐ │ dnf,      dnf-plug‐ 
306         │                      │ query               │ ins-core            
307         ├──────────────────────┼─────────────────────┼─────────────────────┤
308repoclosure           dnf repoclosurednf-plug‐           
309         │                      │                     │ ins-extras-repoclo‐ 
310         │                      │                     │ sure                
311         ├──────────────────────┼─────────────────────┼─────────────────────┤
312repodiff              dnf repodiffdnf-plugins-core    
313         ├──────────────────────┼─────────────────────┼─────────────────────┤
314repo-graph            dnf repographdnf-plug‐           
315         │                      │                     │ ins-extras-repo‐    
316         │                      │                     │ graph               
317         ├──────────────────────┼─────────────────────┼─────────────────────┤
318repomanage            dnf repomanagednf-plug‐           
319         │                      │                     │ ins-extras-repoman‐ 
320         │                      │                     │ age                 
321         ├──────────────────────┼─────────────────────┼─────────────────────┤
322repoquery             │ dnf repoquery       │ dnf                 
323         ├──────────────────────┼─────────────────────┼─────────────────────┤
324reposync              dnf reposyncdnf-plugins-core    
325         ├──────────────────────┼─────────────────────┼─────────────────────┤
326repotrack             dnf        downloaddnf-plugins-core    
327         │                      │ --resolve --alldeps │                     │
328         ├──────────────────────┼─────────────────────┼─────────────────────┤
329yum-builddep          dnf builddepdnf-plugins-core    
330         ├──────────────────────┼─────────────────────┼─────────────────────┤
331yum-config-manager    dnf config-managerdnf-plugins-core    
332         └──────────────────────┴─────────────────────┴─────────────────────┘
333
334yum-debug-dump        dnf debug-dumpdnf-plug‐           
335         │                      │                     │ ins-extras-debug    
336         ├──────────────────────┼─────────────────────┼─────────────────────┤
337yum-debug-restore     dnf debug-restorednf-plug‐           
338         │                      │                     │ ins-extras-debug    
339         ├──────────────────────┼─────────────────────┼─────────────────────┤
340yumdownloader         dnf downloaddnf-plugins-core    
341         └──────────────────────┴─────────────────────┴─────────────────────┘
342
343       Detailed table for package-cleanup replacement:
344
345              ┌───────────────────────────┬────────────────────────────┐
346package-cleanup --dupes    dnf repoquery --duplicates 
347              ├───────────────────────────┼────────────────────────────┤
348package-cleanup --leaves   dnf repoquery --unneeded   
349              ├───────────────────────────┼────────────────────────────┤
350package-cleanup --orphans  dnf repoquery --extras     
351              ├───────────────────────────┼────────────────────────────┤
352package-cleanup  --oldker‐ dnf  repoquery   --instal‐ 
353nels                       lonly                      
354              ├───────────────────────────┼────────────────────────────┤
355package-cleanup --problems dnf  repoquery  --unsatis‐ 
356              │                           │ fied                       
357              ├───────────────────────────┼────────────────────────────┤
358package-cleanup     --cle‐ dnf remove --duplicates    
359andupes                    │                            │
360              ├───────────────────────────┼────────────────────────────┤
361package-cleanup  --oldker‐ dnf  remove   --oldinstal‐ 
362nels                       lonly                      
363              └───────────────────────────┴────────────────────────────┘
364

YUM-UPDATEONBOOT

366       DNF  does  not  have  a direct replacement of yum-updateonboot command.
367       However, the similar result can be achieved by  dnf  automatic  command
368       (see automatic).
369
370       You can either use the shortcut:
371
372          $ systemctl enable dnf-automatic-install.timer && systemctl start dnf-automatic-install.timer
373
374       Or  set apply_updates option of /etc/dnf/automatic.conf to True and use
375       generic timer unit:
376
377          $ systemctl enable dnf-automatic.timer && systemctl start dnf-automatic.timer
378
379       The timer in both cases is activated 1 hour after the system was booted
380       up  and  then  repetitively once every 24 hours. There is also a random
381       delay on these timers set to 5 minutes. These values can be tweaked via
382       dnf-automatic*.timer  config files located in the /usr/lib/systemd/sys‐
383       tem/ directory.
384

UTILITIES THAT HAVE NOT BEEN PORTED YET

386       repo-rss, show-changed-rco, show-installed, verifytree, yum-groups-man‐
387       ager
388
389       Take a look at the FAQ about YUM to DNF migration. Feel free to file an
390       RFE for missing functionality if you need it.
391

AUTHOR

393       See AUTHORS in DNF source distribution.
394
396       2012-2014, Red Hat, Licensed under GPLv2+
397
398
399
400
4014.0.9                            May 13, 2019                       YUM2DNF(8)
Impressum