Update fedora from 29 to 31,but getting 29 conflicting requests

Recommended method is DNF: System upgrade plugin.

What @twohot says isn’t supported:
Can I upgrade between Fedora releases using only DNF?

1 Like

We learn everyday. I will try this upgrade plugin soon – just seeing it for the first time.

If neofetch says that you are on Fedora 31, then you managed to perform the upgrade. :thinking:
What you posted is the output of which command?

I post the conflicting requests by command sudo dnf update.
I upgrade the os from feodra 29 to fedora 31 success,but I always get these conflicting requests print when i try to update my system.I feel it’s :disappointed:.I want to find a solution to eliminate these tips.

@twohot when i type command

$ sudo dnf update --best --allowerasing

I get these tips

 Problem: The operation would result in removing the following protected packages: dnf
(try to add '--skip-broken' to skip uninstallable packages)

is there something wrong?

Don’t do that! :sweat_smile:

Could you post the content of these files?

1 Like

+1 (supporting @alciregi here)
You need dnf – do NOT remove it

@alciregi sure

Fedora release 31 (Thirty One)

$ cat /etc/os-release
VERSION="31 (Server Edition)"
PRETTY_NAME="Fedora 31 (Server Edition)"
VARIANT="Server Edition"

Can TS now use a “system upgrade plugin” to “upgrade” form 31 to 31. Something like “distro-sync”?

I think that the problem is caused by some erroneous behavior in Fedora modularity. Modularity in F29 was switched on by default and if you are consuming some modular content, you can arrive into troubles, because that modular content might stop exist in F30 or F31, so there is no way to upgrade, because the target is simply missing.

You should try the following:

  • Run dnf module list --enabled to see if you have some modular streams enabled.
  • Run dnf module list --installed if you have some modules installed.
  • If so, you might want to remove them with dnf module remove <module>.
  • Even more importantly, you need to reset the state of the modules using dnf module reset <module> to drop the modular information.
  • Then you can try upgrading the system.
  • If you want to be on the safe side, disabling modular repos, after you have uninstalled and reset everything might help, too.

If you need an application that is only provided by a module, which in F31 should not generally be the case, you will reinstall it, when you have upgraded.


In the worst case your can firstly backup everything of value, then reinstall Fedora (preferably not touching /home), then dnf upgrade.

Finally-also: Your can make a list of all installed packages with something like:

# dnf creates list
# awk takes only package names
# tail skips first line with word "Installed"
# sed removes .x86_64 .noarch et all.
# final output stored in my_treasures.txt
dnf list --installed |\
    awk '{print $1}' |\
    tail -n+2        |\
    sed 's@\(.\+\)\(\..\+\)@\1@' >\
# install it all with
dnf install `cat my_treasures.txt`

:sob: maybe this is my only way now.

Do you have third party repos enabled when doing the upgrade? When I have issues updating packages, or anytime I’m gonna upgrade my system, I’ll clean my cache and run the dnf transaction with just the official repos:

dnf clean all
dnf upgrade -y --disablerepo=* --enablerepo=fedora,updates

  Why it’s not a --enablerepo=*fedora* ?  (Is fedora and updates are aliases for all that fedora-modular and fedora-updates-modular things too?)

Because if you do a “dnf repolist” you’ll see those are the names of the repos. Those are the two main repos needed for a full system upgrade. Anything else is just going to complicate it.

1 Like

I have reinstalled Fedora 31 and upgrade from Fedora 31 to Fedora 32, this time it went smoothly.thanks for both you replys. :smile:

By the way, if anyone comes across this looking for help on exporting a list of user instaleld packages, here is an easier way for achiving this:

dnf repoquery --qf "%{name}" --userinstalled > my_treasures.txt


any difference between --installed and --userinstalled?

$ repoquery --help
  --installed           Display only installed packages.
  --userinstalled       Display only packages that were installed by user.