Troubleshooting

Quick fix for installing python2-certbot-dns-route53 (python2-boto3) in CentOS 7

by , , revisited on


;tldr

yum --enablerepo=epel-testing install python2-boto3

For previous, fix, read below:

yum install --setopt=obsoletes=0 python2-certbot-dns-route53

If you’re here then you want to install python2-certbot-dns-route53 (or anything that depends on python2-boto3) and it fails due to the yum error:

yum install python2-certbot-dns-route53

Loaded plugins: priorities
7 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package python2-certbot-dns-route53.noarch 0:0.27.1-1.el7 will be installed
--> Processing Dependency: python2-boto3 for package: python2-certbot-dns-route53-0.27.1-1.el7.noarch
--> Running transaction check
---> Package python2-boto3.noarch 0:1.4.6-1.el7 will be installed
--> Processing Dependency: python2-s3transfer >= 0.1.10 for package: python2-boto3-1.4.6-1.el7.noarch
Package python2-s3transfer is obsoleted by python-s3transfer, but obsoleting package does not provide for requirements
--> Processing Dependency: python2-jmespath >= 0.7.1 for package: python2-boto3-1.4.6-1.el7.noarch
--> Processing Dependency: python2-botocore >= 1.5.0 for package: python2-boto3-1.4.6-1.el7.noarch
--> Processing Dependency: python-futures >= 2.2.0 for package: python2-boto3-1.4.6-1.el7.noarch
--> Running transaction check
---> Package python2-boto3.noarch 0:1.4.6-1.el7 will be installed
--> Processing Dependency: python2-s3transfer >= 0.1.10 for package: python2-boto3-1.4.6-1.el7.noarch
Package python2-s3transfer is obsoleted by python-s3transfer, but obsoleting package does not provide for requirements
---> Package python2-botocore.noarch 0:1.6.0-1.el7 will be installed
--> Processing Dependency: python-docutils >= 0.10 for package: python2-botocore-1.6.0-1.el7.noarch
--> Processing Dependency: python-dateutil >= 1.4 for package: python2-botocore-1.6.0-1.el7.noarch
---> Package python2-futures.noarch 0:3.1.1-5.el7 will be installed
---> Package python2-jmespath.noarch 0:0.9.0-3.el7 will be installed
--> Running transaction check
---> Package python-dateutil.noarch 0:1.5-7.el7 will be installed
---> Package python-docutils.noarch 0:0.11-0.3.20130715svn7687.el7 will be installed
---> Package python2-boto3.noarch 0:1.4.6-1.el7 will be installed
--> Processing Dependency: python2-s3transfer >= 0.1.10 for package: python2-boto3-1.4.6-1.el7.noarch
Package python2-s3transfer is obsoleted by python-s3transfer, but obsoleting package does not provide for requirements
--> Finished Dependency Resolution
Error: Package: python2-boto3-1.4.6-1.el7.noarch (epel)
           Requires: python2-s3transfer >= 0.1.10
           Available: python2-s3transfer-0.1.10-1.el7.noarch (epel)
               python2-s3transfer = 0.1.10-1.el7
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

The key issue here is:

Package python2-s3transfer is obsoleted by python-s3transfer, but obsoleting package does not provide for requirements

And it has been filed as a bug here. But if you want to resolve this earlier, and be able to install your stuff, you can! Just run:

yum install --setopt=obsoletes=0 python2-certbot-dns-route53
Loaded plugins: priorities
7 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package python2-certbot-dns-route53.noarch 0:0.27.1-1.el7 will be installed
--> Processing Dependency: python2-boto3 for package: python2-certbot-dns-route53-0.27.1-1.el7.noarch
--> Running transaction check
---> Package python2-boto3.noarch 0:1.4.6-1.el7 will be installed
--> Processing Dependency: python2-s3transfer >= 0.1.10 for package: python2-boto3-1.4.6-1.el7.noarch
--> Processing Dependency: python2-jmespath >= 0.7.1 for package: python2-boto3-1.4.6-1.el7.noarch
--> Processing Dependency: python2-botocore >= 1.5.0 for package: python2-boto3-1.4.6-1.el7.noarch
--> Processing Dependency: python-futures >= 2.2.0 for package: python2-boto3-1.4.6-1.el7.noarch
--> Running transaction check
---> Package python2-botocore.noarch 0:1.6.0-1.el7 will be installed
--> Processing Dependency: python-docutils >= 0.10 for package: python2-botocore-1.6.0-1.el7.noarch
--> Processing Dependency: python-dateutil >= 1.4 for package: python2-botocore-1.6.0-1.el7.noarch
---> Package python2-futures.noarch 0:3.1.1-5.el7 will be installed
---> Package python2-jmespath.noarch 0:0.9.0-3.el7 will be installed
---> Package python2-s3transfer.noarch 0:0.1.10-1.el7 will be installed
--> Running transaction check
---> Package python-dateutil.noarch 0:1.5-7.el7 will be installed
---> Package python-docutils.noarch 0:0.11-0.3.20130715svn7687.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

============================================================================================================================================================================================================
 Package                                                    Arch                                  Version                                                       Repository                             Size
============================================================================================================================================================================================================
Installing:
 python2-certbot-dns-route53                                noarch                                0.27.1-1.el7                                                  epel                                   22 k
Installing for dependencies:
 python-dateutil                                            noarch                                1.5-7.el7                                                     base                                   85 k
 python-docutils                                            noarch                                0.11-0.3.20130715svn7687.el7                                  base                                  1.5 M
 python2-boto3                                              noarch                                1.4.6-1.el7                                                   epel                                  131 k
 python2-botocore                                           noarch                                1.6.0-1.el7                                                   epel                                  2.4 M
 python2-futures                                            noarch                                3.1.1-5.el7                                                   base                                   29 k
 python2-jmespath                                           noarch                                0.9.0-3.el7                                                   extras                                 39 k
 python2-s3transfer                                         noarch                                0.1.10-1.el7                                                  epel                                   82 k

Transaction Summary
============================================================================================================================================================================================================
Install  1 Package (+7 Dependent packages)

Total download size: 4.3 M
Installed size: 32 M
Is this ok [y/d/N]: y
Downloading packages:
(1/8): python-dateutil-1.5-7.el7.noarch.rpm                                                                                                                                          |  85 kB  00:00:00
(2/8): python-docutils-0.11-0.3.20130715svn7687.el7.noarch.rpm                                                                                                                       | 1.5 MB  00:00:00
(3/8): python2-boto3-1.4.6-1.el7.noarch.rpm                                                                                                                                          | 131 kB  00:00:00
(4/8): python2-botocore-1.6.0-1.el7.noarch.rpm                                                                                                                                       | 2.4 MB  00:00:00
(5/8): python2-futures-3.1.1-5.el7.noarch.rpm                                                                                                                                        |  29 kB  00:00:00
(6/8): python2-certbot-dns-route53-0.27.1-1.el7.noarch.rpm                                                                                                                           |  22 kB  00:00:00
(7/8): python2-jmespath-0.9.0-3.el7.noarch.rpm                                                                                                                                       |  39 kB  00:00:00
(8/8): python2-s3transfer-0.1.10-1.el7.noarch.rpm                                                                                                                                    |  82 kB  00:00:00
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                       5.5 MB/s | 4.3 MB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : python2-futures-3.1.1-5.el7.noarch                                                                                                                                                       1/8
  Installing : python2-jmespath-0.9.0-3.el7.noarch                                                                                                                                                      2/8
  Installing : python-dateutil-1.5-7.el7.noarch                                                                                                                                                         3/8
  Installing : python-docutils-0.11-0.3.20130715svn7687.el7.noarch                                                                                                                                      4/8
  Installing : python2-botocore-1.6.0-1.el7.noarch                                                                                                                                                      5/8
  Installing : python2-s3transfer-0.1.10-1.el7.noarch                                                                                                                                                   6/8
  Installing : python2-boto3-1.4.6-1.el7.noarch                                                                                                                                                         7/8
  Installing : python2-certbot-dns-route53-0.27.1-1.el7.noarch                                                                                                                                          8/8
  Verifying  : python-docutils-0.11-0.3.20130715svn7687.el7.noarch                                                                                                                                      1/8
  Verifying  : python2-jmespath-0.9.0-3.el7.noarch                                                                                                                                                      2/8
  Verifying  : python-dateutil-1.5-7.el7.noarch                                                                                                                                                         3/8
  Verifying  : python2-boto3-1.4.6-1.el7.noarch                                                                                                                                                         4/8
  Verifying  : python2-botocore-1.6.0-1.el7.noarch                                                                                                                                                      5/8
  Verifying  : python2-futures-3.1.1-5.el7.noarch                                                                                                                                                       6/8
  Verifying  : python2-s3transfer-0.1.10-1.el7.noarch                                                                                                                                                   7/8
  Verifying  : python2-certbot-dns-route53-0.27.1-1.el7.noarch                                                                                                                                          8/8

Installed:
  python2-certbot-dns-route53.noarch 0:0.27.1-1.el7

Dependency Installed:
  python-dateutil.noarch 0:1.5-7.el7    python-docutils.noarch 0:0.11-0.3.20130715svn7687.el7 python2-boto3.noarch 0:1.4.6-1.el7 python2-botocore.noarch 0:1.6.0-1.el7 python2-futures.noarch 0:3.1.1-5.el7
  python2-jmespath.noarch 0:0.9.0-3.el7 python2-s3transfer.noarch 0:0.1.10-1.el7

Complete!
  1. JIm

    On a CentOS 7.5 system, running

    yum –enablerepo=epel-testing -y install python2-boto3
    yum –enablerepo=epel -y install certbot python2-certbot-dns-route53

    completes without errors, but ‘certbot –version’ (or –anything) dies with

    An unexpected error occurred:
    VersionConflict: (s3transfer 0.0.1 (/usr/lib/python2.7/site-packages), Requirement.parse(‘s3transfer>=0.1.10,<0.2.0’))

    What did I miss?

    Reply
    • Danila Vershinin

      Tried it on 7.6 without issue. Looks like your python-s3transfer is too old,
      so you can try upgrading it first:

      yum update python2-s3transfer 
      

      Or

      yum update python2-s3transfer
      

      Verify what is your package version with yum list installed | grep s3transfer.

      If certbot reports that your current version is 0.0.1 but yum says otherwise, then you likely have screwed your system by doing things like pip install (which is a no-no) as root.
      If that is so, then you can see this post for resolution – basically doing the fix for consequences of playing with pip as root.

      Reply

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.