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 op‐
12       tions could be used with DNF to skip all unavailable packages or  pack‐
13       ages  with  broken  dependencies  given to DNF without raising an error
14       causing the whole operation to fail. This behavior can be  set  as  de‐
15       fault 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

THE INCLUDE OPTION HAS BEEN REMOVED

57       Inclusion of other configuration files in the main  configuration  file
58       is no longer supported.
59

DNF PROVIDES /BIN/<FILE> IS NOT FULLY SUPPORTED

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 COULD BE ENABLED BY DEFAULT

77       In some distributions DNF is shipped with  skip_if_unavailable=True  in
78       the  DNF  configuration  file.  The  reason  for  the  change  is  that
79       third-party repositories can often be unavailable. Without this setting
80       in  the relevant repository configuration file YUM immediately stops on
81       a repository synchronization error, 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 ex‐
91       piring 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

UPGRADE_REQUIREMENTS_ON_INSTALL DROPPED

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

DNF HISTORY ROLLBACK CHECK DROPPED

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

PACKAGES REPLACEMENT WITHOUT YUM SWAP

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

DEPENDENCY PROCESSING DETAILS ARE NOT SHOWN IN THE CLI

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

DNF PROVIDES COMPLIES WITH THE YUM DOCUMENTATION OF THE COMMAND

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

BANDWIDTH LIMITING

171       DNF supports the throttle and  bandwidth  options  familiar  from  YUM.
172       Contrary  to  YUM, when multiple downloads run simultaneously the total
173       downloading speed is throttled. This was  not  possible  in  YUM  since
174       downloaders ran in different processes.
175

INSTALLONLYPKGS CONFIG OPTION

177       Compared  to YUM, DNF appends list values from the installonlypkgs con‐
178       fig option to DNF defaults, where YUM overwrites the defaults by option
179       values.
180

THE USAGE OF DELTA RPM FILES

182       The  boolean deltarpm option controls whether delta RPM files are used.
183       Compared to YUM, DNF does not support deltarpm_percentage  and  instead
184       chooses  some  optimal  value of DRPM/RPM ratio to decide whether using
185       deltarpm makes sense in the given case.
186

HANDLING .SRPM FILES AND NON-EXISTENT PACKAGES

188       DNF will terminate early with an error if a  command  is  executed  re‐
189       questing an installing operation on a local .srpm file:
190
191          $ dnf install fdn-0.4.17-1.fc20.src.rpm tour-4-6.noarch.rpm
192          Error: Will not install a source rpm package (fdn-0.4.17-1.fc20.src).
193
194       The  same  applies  for  package  specifications  that do not match any
195       available package.
196
197       YUM will only issue a warning in this case and continue installing  the
198       "tour"  package.  The rationale behind the result in DNF is that a pro‐
199       gram should terminate with an error if it can not fulfill the CLI  com‐
200       mand in its entirety.
201

PROMOTING PACKAGE TO INSTALL TO A PACKAGE THAT OBSOLETES IT

203       DNF  will  not  magically replace a request for installing package X to
204       installing package Y if Y obsoletes X. YUM does this if  its  obsoletes
205       config  option  is  enabled but the behavior is not properly documented
206       and can be harmful.
207
208       See the related Fedora bug 1096506 and guidelines for renaming and  ob‐
209       soleting packages in Fedora.
210

BEHAVIOR OF --INSTALLROOT OPTION

212       DNF  offers  more  predictable behavior of installroot. DNF handles the
213       path differently from the --config command-line option, where this path
214       is  always  related to the host system (YUM combines this path with in‐
215       stallroot). Reposdir is also handled slightly differently, if one  path
216       of  the reposdirs exists inside of installroot, then repos are strictly
217       taken from installroot (YUM tests each path  from  reposdir  separately
218       and  use installroot path if existed). See the detailed description for
219       --installroot option.
220

DIFFERENT PROMPT AFTER TRANSACTION TABLE

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

LIST COMMAND SHOWS ALL REPO ALTERNATIVES

227       DNF lists all packages from all repos, which means there can be  dupli‐
228       cates  package names (with different repo name). This is due to provid‐
229       ing users possibility to choose preferred repo.
230

YUM-LANGPACKS SUBCOMMANDS HAVE BEEN REMOVED

232       Translations became part of core DNF and it is no longer  necessary  to
233       manage individual language packs.
234
235       Following sub-commands were removed:
236
237       • langavailable
238
239       • langinstall
240
241       • langremove
242
243       • langlist
244
245       • langinfo
246
247       ┌───────────────────────┬─────────────────────┬─────────────────────────┐
248       │Original YUM tool      │ DNF command/option  │ Package                 │
249       ├───────────────────────┼─────────────────────┼─────────────────────────┤
250yum check              │ dnf repoquery --un‐ dnf                     
251       │                       │ satisfied           │                         │
252       ├───────────────────────┼─────────────────────┼─────────────────────────┤
253yum-langpacks          │                     │ dnf                     
254       ├───────────────────────┼─────────────────────┼─────────────────────────┤
255yum-plugin-aliases     │ dnf alias           │ dnf                     
256       ├───────────────────────┼─────────────────────┼─────────────────────────┤
257yum-plugin-auto-up‐    │ option   in  debug‐ dnf-plugins-core        
258date-debug-info        info-install.conf   │                         │
259       ├───────────────────────┼─────────────────────┼─────────────────────────┤
260yum-plugin-changelog   │                     │ dnf-plugins-core        
261       ├───────────────────────┼─────────────────────┼─────────────────────────┤
262yum-plugin-copr        dnf coprdnf-plugins-core        
263       └───────────────────────┴─────────────────────┴─────────────────────────┘
264
265yum-plugin-fastest‐    fastestmirror   op‐ │ dnf                     
266mirror                 │ tion in dnf.conf    │                         │
267       ├───────────────────────┼─────────────────────┼─────────────────────────┤
268yum-plugin-fs-snap‐    │                     │ dnf-plugins-ex‐         
269shot                   │                     │ tras-snapper            
270       ├───────────────────────┼─────────────────────┼─────────────────────────┤
271yum-plugin-local       │                     │ dnf-plugins-core        
272       ├───────────────────────┼─────────────────────┼─────────────────────────┤
273yum-plugin-merge-conf  │                     │ dnf-plugins-ex‐         
274       │                       │                     │ tras-rpmconf            
275       ├───────────────────────┼─────────────────────┼─────────────────────────┤
276yum-plugin-post-trans‐ │                     │ dnf-plugins-core        
277action-actions         │                     │                         │
278       ├───────────────────────┼─────────────────────┼─────────────────────────┤
279yum-plugin-priorities  priority option  in │ dnf                     
280       │                       │ dnf.conf            │                         │
281       ├───────────────────────┼─────────────────────┼─────────────────────────┤
282yum-plugin-re‐         │ dnf autoremove      │ dnf                     
283move-with-leaves       │                     │                         │
284       ├───────────────────────┼─────────────────────┼─────────────────────────┤
285yum-plugin-show-leaves │                     │ dnf-plugins-core        
286       ├───────────────────────┼─────────────────────┼─────────────────────────┤
287yum-plugin-tmprepo     --repofrompath  op‐ │ dnf                     
288       │                       │ tion                │                         │
289       ├───────────────────────┼─────────────────────┼─────────────────────────┤
290yum-plugin-tsflags     tsflags   option in │ dnf                     
291       │                       │ dnf.conf            │                         │
292       ├───────────────────────┼─────────────────────┼─────────────────────────┤
293yum-plugin-versionlock │                     │ python3-dnf-plugin-ver‐ 
294       │                       │                     │ sionlock                
295       ├───────────────────────┼─────────────────────┼─────────────────────────┤
296yum-rhn-plugin         │                     │ dnf-plugin-spacewalk    
297       └───────────────────────┴─────────────────────┴─────────────────────────┘
298
299       Plugins that have not been ported yet:
300
301       yum-plugin-filter-data,      yum-plugin-keys,     yum-plugin-list-data,
302       yum-plugin-protectbase,     yum-plugin-ps,     yum-plugin-puppetverify,
303       yum-plugin-refresh-updatesd,  yum-plugin-rpm-warm-cache, yum-plugin-up‐
304       grade-helper, yum-plugin-verify
305
306       Feel free to file an RFE for missing functionality if you need it.
307
308       All ported YUM tools are now implemented as DNF plugins.
309
310          ┌───────────────────┬─────────────────────┬─────────────────────┐
311          │Original YUM tool  │ New DNF command     │ Package             │
312          ├───────────────────┼─────────────────────┼─────────────────────┤
313debuginfo-install  dnf   debuginfo-in‐dnf-plugins-core    
314          │                   │ stall               │                     │
315          ├───────────────────┼─────────────────────┼─────────────────────┤
316find-repos-of-in‐  dnf list installeddnf                 
317stall              │                     │                     │
318          ├───────────────────┼─────────────────────┼─────────────────────┤
319needs-restarting   dnf tracerdnf-plugins-ex‐     
320          │                   │                     │ tras-tracer         
321          ├───────────────────┼─────────────────────┼─────────────────────┤
322package-cleanup    │ dnf list, dnf repo‐ │ dnf,      dnf-plug‐ 
323          │                   │ query               │ ins-core            
324          ├───────────────────┼─────────────────────┼─────────────────────┤
325repoclosure        dnf repoclosurednf-plugins-ex‐     
326          │                   │                     │ tras-repoclosure    
327          ├───────────────────┼─────────────────────┼─────────────────────┤
328repodiff           dnf repodiffdnf-plugins-core    
329          └───────────────────┴─────────────────────┴─────────────────────┘
330
331repo-graph         dnf repographdnf-plugins-ex‐     
332          │                   │                     │ tras-repograph      
333          ├───────────────────┼─────────────────────┼─────────────────────┤
334repomanage         dnf repomanagednf-plugins-ex‐     
335          │                   │                     │ tras-repomanage     
336          ├───────────────────┼─────────────────────┼─────────────────────┤
337repoquery          │ dnf repoquery       │ dnf                 
338          ├───────────────────┼─────────────────────┼─────────────────────┤
339reposync           dnf reposyncdnf-plugins-core    
340          ├───────────────────┼─────────────────────┼─────────────────────┤
341repotrack          dnf download  --re‐ │ dnf-plugins-core    
342          │                   │ solve --alldeps     │                     │
343          ├───────────────────┼─────────────────────┼─────────────────────┤
344yum-builddep       dnf builddepdnf-plugins-core    
345          ├───────────────────┼─────────────────────┼─────────────────────┤
346yum-config-manager dnf config-managerdnf-plugins-core    
347          ├───────────────────┼─────────────────────┼─────────────────────┤
348yum-debug-dump     dnf debug-dumpdnf-plugins-ex‐     
349          │                   │                     │ tras-debug          
350          ├───────────────────┼─────────────────────┼─────────────────────┤
351yum-debug-restore  dnf debug-restorednf-plugins-ex‐     
352          │                   │                     │ tras-debug          
353          ├───────────────────┼─────────────────────┼─────────────────────┤
354yumdownloader      dnf downloaddnf-plugins-core    
355          └───────────────────┴─────────────────────┴─────────────────────┘
356
357       Detailed table for package-cleanup replacement:
358
359              ┌───────────────────────────┬────────────────────────────┐
360package-cleanup --dupes    dnf repoquery --duplicates 
361              ├───────────────────────────┼────────────────────────────┤
362package-cleanup --leaves   dnf repoquery --unneeded   
363              ├───────────────────────────┼────────────────────────────┤
364package-cleanup --orphans  dnf repoquery --extras     
365              ├───────────────────────────┼────────────────────────────┤
366package-cleanup --problems dnf  repoquery  --unsatis‐ 
367              │                           │ fied                       
368              ├───────────────────────────┼────────────────────────────┤
369package-cleanup     --cle‐ dnf remove --duplicates    
370andupes                    │                            │
371              ├───────────────────────────┼────────────────────────────┤
372package-cleanup  --oldker‐ dnf  remove   --oldinstal‐ 
373nels                       lonly                      
374              ├───────────────────────────┼────────────────────────────┤
375package-cleanup  --oldker‐ dnf remove $(dnf repoquery 
376nels --keep=2              --installonly       --lat‐ 
377              │                           │ est-limit=-2)              
378              └───────────────────────────┴────────────────────────────┘
379

YUM-UPDATEONBOOT AND YUM-CRON

381       DNF does not have a direct replacement of yum-updateonboot and yum-cron
382       commands.  However, the similar result can be achieved by dnf automatic
383       command (see automatic).
384
385       You can either use the shortcut:
386
387          $ systemctl enable --now dnf-automatic-install.timer
388
389       Or set apply_updates option of /etc/dnf/automatic.conf to True and  use
390       generic timer unit:
391
392          $ systemctl enable --now dnf-automatic.timer
393
394       The timer in both cases is activated 1 hour after the system was booted
395       up and then repetitively once every 24 hours. There is  also  a  random
396       delay on these timers set to 5 minutes. These values can be tweaked via
397       dnf-automatic*.timer config files located in the  /usr/lib/systemd/sys‐
398       tem/ directory.
399

UTILITIES THAT HAVE NOT BEEN PORTED YET

401       repo-rss, show-changed-rco, show-installed, verifytree, yum-groups-man‐
402       ager
403
404       Take a look at the FAQ about YUM to DNF migration. Feel free to file an
405       RFE for missing functionality if you need it.
406

AUTHOR

408       See AUTHORS in DNF source distribution.
409
411       2012-2022, Red Hat, Licensed under GPLv2+
412
413
414
415
4164.13.0                           May 30, 2022                       YUM2DNF(8)
Impressum