Troubleshooting

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

by , , revisited on


We have by far the largest RPM repository with dynamic stable NGINX modules and VMODs for Varnish 4.1 and 6.0 LTS. If you want to install nginx, Varnish and lots of useful modules for them, this is your one stop repository to get all performance related software.
You have to maintain an active subscription in order to be able to use the repository!

;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.