dnf – CentOS upgrade hosed


I decided to upgrade a remote ‘live’ server from CentOS 7 to 8. I followed the instructions here https://www.tecmint.com/upgrade-centos-7-to-centos-8/ and got into an endless loop of failures.

# dnf upgrade (or --refresh)
Error: Transaction check error:
file /usr/lib/python2.7/site-packages/six.py from install of python2-six-1.11.0-5.module_el8.2.0+381+9a5b3c3b.noarch conflicts with file from package python-six-1.9.0-2.el7.noarch
file /usr/lib/python2.7/site-packages/six.pyc from install of python2-six-1.11.0-5.module_el8.2.0+381+9a5b3c3b.noarch conflicts with file from package python-six-1.9.0-2.el7.noarch
file /usr/lib/python2.7/site-packages/six.pyo from install of python2-six-1.11.0-5.module_el8.2.0+381+9a5b3c3b.noarch conflicts with file from package python-six-1.9.0-2.el7.noarch

# dnf update --best --allowerasing
CentOS-8 - Base
CentOS-8 - Updates
CentOS-8 - Extras
CentOS-8 - Plus
Failed to synchronize cache for repo 'base', ignoring this repo.
Failed to synchronize cache for repo 'updates', ignoring this repo.
Failed to synchronize cache for repo 'extras', ignoring this repo.
Failed to synchronize cache for repo 'centosplus', ignoring this repo.
Last metadata expiration check: 0:00:38 ago on Sun 18 Oct 2020 07:20:52 AM UTC.
Error: 
Problem: The operation would result in removing the following protected packages: dnf

Other attempts lead to obscure messages about duplicate repos or using mirrorlist instead of baseurl. None of the solutions I find on the web work and it’s the 1st time I use dnf (was using yum before that attempt).