Dns-lexicon requirements issue

Please fill out the fields below so we can help you better. Note: you must provide your domain name to get help. Domain names for issued certificates are all made public in Certificate Transparency logs (e.g. crt.sh | example.com), so withholding your domain name here does not increase secrecy, but only makes it harder for us to provide help.

My domain is: eddienetworks.ddnsfree.com

I ran this command:
sudo certbot renew -v --authenticator dns-dynu --dns-dynu-credentials /home/eddie/.dynu-credentials.ini --dns-dynu-propagation-seconds 240

It produced this output:

An unexpected error occurred: pkg_resources.VersionConflict: (dns-lexicon 3.11.6 (/usr/lib/python3.10/site-packages), Requirement.parse('dns-lexicon<=3.5.6,>=3.2.4'))

Logs:

2022-10-15 21:45:13,113:DEBUG:certbot._internal.log:Exiting abnormally:
Traceback (most recent call last):
  File "/usr/bin/certbot", line 33, in <module>
    sys.exit(load_entry_point('certbot==1.31.0', 'console_scripts', 'certbot')())
  File "/usr/lib/python3.10/site-packages/certbot/main.py", line 19, in main
    return internal_main.main(cli_args)
  File "/usr/lib/python3.10/site-packages/certbot/_internal/main.py", line 1705, in main
    plugins = plugins_disco.PluginsRegistry.find_all()
  File "/usr/lib/python3.10/site-packages/certbot/_internal/plugins/disco.py", line 241, in find_all
    plugin_ep = cls._load_entry_point(entry_point, plugins, with_prefix=False)
  File "/usr/lib/python3.10/site-packages/certbot/_internal/plugins/disco.py", line 261, in _load_entry_point
    plugin_ep = PluginEntryPoint(entry_point, with_prefix)
  File "/usr/lib/python3.10/site-packages/certbot/_internal/plugins/disco.py", line 60, in __init__
    self.plugin_cls: Type[interfaces.Plugin] = entry_point.load()
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 2470, in load
    self.require(*args, **kwargs)
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 2493, in require
    items = working_set.resolve(reqs, env, installer, extras=self.extras)
  File "/usr/lib/python3.10/site-packages/pkg_resources/__init__.py", line 800, in resolve
    raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.VersionConflict: (dns-lexicon 3.11.6 (/usr/lib/python3.10/site-packages), Requirement.parse('dns-lexicon<=3.5.6,>=3.2.4'))
2022-10-15 21:45:13,114:ERROR:certbot._internal.log:An unexpected error occurred:
2022-10-15 21:45:13,114:ERROR:certbot._internal.log:pkg_resources.VersionConflict: (dns-lexicon 3.11.6 (/usr/lib/python3.10/site-packages), Requirement.parse('dns-lexicon<=3.5.6,>=3.2.4'))

My web server is (include version):
nginx version: nginx/1.22.0

The operating system my web server runs on is (include version):
Alpine Linux Latest

My hosting provider, if applicable, is:

I can login to a root shell on my machine (yes or no, or I don't know): yes

I'm using a control panel to manage my site (no, or provide the name and version of the control panel): no

The version of my client is (e.g. output of certbot --version or certbot-auto --version if you're using Certbot):
certbot-nginx-1.31.0-r0

Thanks,

Eddie

This requirement comes from your DNS plugin certbot-dns-dynu:

How did you install the plugin? And dns-lexicon? My guess is not from the same package manager?

3 Likes

Hi Osiris,

You are right. The problem here is that certbot-dns-dynu was installed with pip and the other packages with apk. I tried to fix that trying to install everything using pip but I ran into other problems that I could not fix. Unfortunately, I am rather busy with university stuff at the moment and since this is personal stuff I will put this off till the other of the semester.

Thanks for the help anyway,

Eddie

2 Likes

@eddie Another option is to use acme.sh. If nothing else the packaging is easier given it is a shell script. And, has broad dns support including dynu. It is noted in the Let's Encrypt list of clients and its github is here

2 Likes

When using pip, always use a virtual environment. For dependency reasons. Although I'm not sure what pip does when you already have a certain package installed system wide using apt. I'm guessing installing the older, "correct" version in the venv so that it has priority? But I'm not sure.

Another option, although I don't know if Alpine offers it, is downgrading dns-lexicon systemwide using apt. I can only find the most recent version on pkgs.alpinelinux.org, not sure if older ones are also still offered.

3 Likes

Hi guys,

Installing the package in a venv was enough to so solve this problem.

Thanks everyone again

2 Likes

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