New install Certbot : conflict Acme version

Hello dear community,

I am using Lets Encrypt to add certificate on Heroku. My personal working environment is a Mac. I was using ./letsencrypt-auto script.

I upgraded to certbot using simply

brew install certbot

I ran into the following problem : no certbot script work, they all fail on a requirement of version of acme 0.3.0, when I have the 0.8.1 installed. The trace is:

Traceback (most recent call last):
File "/usr/local/Cellar/certbot/0.8.1/libexec/bin/certbot", line 9, in
load_entry_point('certbot==0.8.1', 'console_scripts', 'certbot')()
File "/usr/local/Cellar/certbot/0.8.1/libexec/lib/python2.7/site-packages/certbot/main.py", line 700, in main
plugins = plugins_disco.PluginsRegistry.find_all()
File "/usr/local/Cellar/certbot/0.8.1/libexec/lib/python2.7/site-packages/certbot/plugins/disco.py", line 174, in find_all
plugin_ep = PluginEntryPoint(entry_point)
File "/usr/local/Cellar/certbot/0.8.1/libexec/lib/python2.7/site-packages/certbot/plugins/disco.py", line 33, in init
self.plugin_cls = entry_point.load()
File "/usr/local/Cellar/certbot/0.8.1/libexec/vendor/lib/python2.7/site-packages/pkg_resources/init.py", line 2228, in load
self.require(*args, **kwargs)
File "/usr/local/Cellar/certbot/0.8.1/libexec/vendor/lib/python2.7/site-packages/pkg_resources/init.py", line 2245, in require
items = working_set.resolve(reqs, env, installer)
File "/usr/local/Cellar/certbot/0.8.1/libexec/vendor/lib/python2.7/site-packages/pkg_resources/init.py", line 834, in resolve
raise VersionConflict(dist, req).with_context(dependent_req)
VersionConflict: (acme 0.8.1 (/usr/local/Cellar/certbot/0.8.1/libexec/lib/python2.7/site-packages), Requirement.parse('acme==0.3.0'))

I can't figure what is requiring acme 0.3.0 (not familiar with python). I tried

  1. restarting my computer, if it was a cached variable
  2. uninstalling certbot, deleting all letsencrypt folders except for etc/letsencrypt, then resinstalling certbot.
    None of that made any difference

Any thoughts? Thank you for your help

Anybody has any thoughts ? I can’t find any file that is requiring acme version 0.3.0
I’ve been scratching my head for hours without success !

if you are insterested, try acme.sh

I can confirm a similar problem on FreeBSD, with a different required version:
VersionConflict: (acme 0.8.1 (/usr/local/lib/python2.7/site-packages), Requirement.parse(‘acme==0.5.0’))

I’ve also not been able to track down where the requirement arises.

1 Like

Hi @Neilpang , thank you for your input. Unfortunately, I don’t understand how that’s helping solving my problem, or how it’s related? I checked out your page but couldn’t understand it. Sorry, I’m not familiar with Python and SSL in general…

Hi @niall Did you have the older version of let’s encrypt installed? I think we messed up with something when we tried to install certbot on top of it. I can confirm that a fresh install on my cofounder’s Mac is working fine, so it’s something with my system

@mvaragnat, yes: older version was installed previously. My system is FreeBSD, not Mac, where I use portsnap and portmaster (more or less corresponding to Brew on
Mac) to manage ports. I’ll try de-installing and starting afresh and report experience.

I suspect that whatever is insisting on acme version strictly matching (’==’) 0.5.0 should
be using a ‘>=’ condition instead. Chasing this down may be moot if a full re-install clears the problem. On verra …

Thanks for the quick response!

Hi,
It’s just another choice, which can save your much time.

Thanks.

No joy. After deinstalling certbot and acme, and installing certbot, which triggers
installation of acme as a dependency, it seems that some component of py27-certbot-0.8.1,1 is insisting strictly on version 0.5.0 of acme, whose current version is py27-acme-0.8.1,1.

I’ll use a different client.

It seems I hadn’t eradicated enough of the related software components. After using pkg_cutleaves with almost boundless abandon and then re-installing security/py-certbot, I’m not seeing the VersionConflict message any more.

I was able to edit as follows to get this working for the moment on my FreeBSD machine:
--- /usr/local/lib/python2.7/site-packages/letsencrypt-0.5.0-py2.7.egg-info/requires.txt 2016-08-04 11:02:40.766504000 -0500 +++ /usr/local/lib/python2.7/site-packages/letsencrypt-0.5.0-py2.7.egg-info/requires.txt.edited 2016-08-04 11:02:34.558932000 -0500 @@ -1,4 +1,4 @@ -acme==0.5.0 +acme>=0.5.0 ConfigArgParse>=0.9.3 configobj cryptography>=0.7

I was having the same error trying to run ‘certbot’ on FBSD, and this patch does enable it to run, though complains about not finding module for logging.

Suspect the old letsencrypt python stuff is interfering or in the call path of certbot so the old ‘acme’ version (0.5.0) causes error. The corresponding ‘requires.txt’ file in the ‘certbot-0.8.1’ egg directory has ‘acme==0.8.1’ which I’d assume is what’s supposed to be loaded.

My guess is the install script for ‘certbot’ did not remove the ‘letsencrypt’ package previously installed. ‘certbot’ did not install cleanly anyway, so there are some problems to fix.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.