Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FreeBSD error #3221

Closed
Fastidious opened this issue Jun 28, 2016 · 18 comments
Closed

FreeBSD error #3221

Fastidious opened this issue Jun 28, 2016 · 18 comments

Comments

@Fastidious
Copy link

After installing (from ports), I get this error:

An unexpected error occurred:
VersionConflict: (acme 0.8.1 (/usr/local/lib/python2.7/site-packages), Requirement.parse('acme==0.5.0'))
Please see the logfile 'certbot.log' for more details.

The certbot.log contains:

Traceback (most recent call last):
  File "/usr/local/bin/certbot", line 9, in <module>
    load_entry_point('certbot==0.8.1', 'console_scripts', 'certbot')()
  File "/usr/local/lib/python2.7/site-packages/certbot/main.py", line 700, in main
    plugins = plugins_disco.PluginsRegistry.find_all()
  File "/usr/local/lib/python2.7/site-packages/certbot/plugins/disco.py", line 174, in find_all
    plugin_ep = PluginEntryPoint(entry_point)
  File "/usr/local/lib/python2.7/site-packages/certbot/plugins/disco.py", line 33, in __init__
    self.plugin_cls = entry_point.load()
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2379, in load
    self.require(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2396, in require
    items = working_set.resolve(reqs, env, installer)
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 833, in resolve
    raise VersionConflict(dist, req).with_context(dependent_req)
VersionConflict: (acme 0.8.1 (/usr/local/lib/python2.7/site-packages), Requirement.parse('acme==0.5.0'))
@Bobzikwick
Copy link

Bobzikwick commented Jun 28, 2016

What condition are your ports in? I don't see the same as you.

I see:

root@piglet:~ # pkg which `which certbot`
/usr/local/bin/certbot was installed by package py27-certbot-0.8.1,1
root@piglet:~ # pkg info -d py27-certbot-0.8.1,1 | grep acme
        py27-acme-0.8.1,1
root@piglet:~ #

@Fastidious
Copy link
Author

Brand new FreeBSD install. All ports up-to-date.

@Bobzikwick
Copy link

Bobzikwick commented Jun 28, 2016

I'm not a python guru, but does your computer really say:

# pkg which `which certbot`
/usr/local/bin/certbot was installed by package py27-certbot-0.8.1,1

@Fastidious
Copy link
Author

Yup.

root@daemon:/usr/ports/security/py-certbot # pkg which `which certbot`
/usr/local/bin/certbot was installed by package py27-certbot-0.8.1,1
root@daemon:/usr/ports/security/py-certbot # pkg info -d py27-certbot-0.8.1,1 | grep acme
    py27-acme-0.8.1,1
root@daemon:/usr/ports/security/py-certbot # 

@Bobzikwick
Copy link

Well, looking at your error:
VersionConflict: (acme 0.8.1 (/usr/local/lib/python2.7/site-packages), Requirement.parse('acme==0.5.0'))

In my /usr/local/lib/python2.7/site-packages/certbot-0.8.1-py2.7.egg-info/requires.txt file I have a line:
acme==0.8.1

What does yours say?

@Fastidious
Copy link
Author

The same. Complete requires.txt:

acme==0.8.1
ConfigArgParse>=0.9.3
configobj
cryptography>=0.7
parsedatetime>=1.3
psutil>=2.2.1
PyOpenSSL
pyrfc3339
python2-pythondialog>=3.2.2rc1
pytz
setuptools>=1.0
six
zope.component
zope.interface
mock

[dev]
astroid==1.3.5
coverage
nose
nosexcover
pep8
pylint==1.4.2
tox
twine
wheel

[docs]
repoze.sphinx.autointerface
Sphinx>=1.0
sphinx_rtd_theme
sphinxcontrib-programoutput

@Fastidious
Copy link
Author

To add to this, a portmaster -a will always render certbot as available to re-install:

root@daemon:~ # portmaster -a
===>>> Gathering distinfo list for installed ports

===>>> Starting check of installed ports for available updates

    ===>>> The security/py-letsencrypt port moved to security/py-certbot
    ===>>> Reason: The LetsEncrypt project has renamed the utility

===>>> Launching child to reinstall py27-letsencrypt-0.5.0,1

===>>> All >> py27-letsencrypt-0.5.0,1 (1/1)

    ===>>> The security/py-letsencrypt port moved to security/py-certbot
    ===>>> Reason: The LetsEncrypt project has renamed the utility


===>>> Currently installed version: py27-certbot-0.8.1,1
===>>> Port directory: /usr/ports/security/py-certbot

===>>> Launching 'make checksum' for security/py-certbot in background
===>>> Gathering dependency list for security/py-certbot from ports
===>>> Initial dependency check complete for security/py-certbot

===>>> Returning to update check of installed ports


===>>> All >> (1)

===>>> The following actions will be taken if you choose to proceed:
    Re-install py27-certbot-0.8.1,1

===>>> Proceed? y/n [y] 

@Bobzikwick
Copy link

Your requires.txt is identical to mine
I just ran certbot renew again to be sure and it worked ok...

I would have thought portmaster would do the right thing. I didn't use it though. I use pkg or make. Looks like a FreeBSD ports problem to me rather than a certbot thing.

@Fastidious
Copy link
Author

I have pinged the maintainer to see if he can shed some light.

@koobs
Copy link
Contributor

koobs commented Jun 29, 2016

Tracking in FreeBSD Issue #210617

If the root cause turns out to be the port, I'll reference this issue in the commit message

Long term, it would be great for all certbot requirements to be >=

@koobs
Copy link
Contributor

koobs commented Jun 29, 2016

Issue has been resolved.

Cause: stale/multiple letsencrypt versions due to use of pip to install/manage/update packages in system site-packages rather than strictly ports/packages. pkg_resources importing the older version, resulting in the mismatched (stale) version requirement

@bmw
Copy link
Member

bmw commented Jun 29, 2016

Great! I'm glad this was resolved.

@bmw bmw closed this as completed Jun 29, 2016
@jmarca
Copy link

jmarca commented Jul 10, 2016

@koobs can you post a quick synopsis of how to clean up the issue? I am hitting the same problem on slackware linux, but my python skills are super weak.

update: What seems to work okay for me is:

sudo pip uninstall letsencrypt

then sudo pip list | grep encrypt and sudo pip list | grep certbot to make sure all is cleaned up.

@Fastidious
Copy link
Author

@jmarca did as you wrote, yet each time I run portmaster -a it will re-install py27-certbot-0.8.1,1. Running pip list |grep encrypt renders no results, while pip list |grep cerbot renders certbot (0.8.1). Any idea on what to do from here, @koobs?

@koobs
Copy link
Contributor

koobs commented Jul 15, 2016

@Fastidious Don't use pip to manage system site-packages? :)

@Fastidious
Copy link
Author

@koobs I didn't. I have not used pip, I first used the ports (make install), then I used pkg to install. Still py27-certbot will insist on re-installing each time.

@koobs
Copy link
Contributor

koobs commented Jul 16, 2016

@Fastidious Let's take this off upstreams issue tracker :) Email me the full log of pkg version -v | grep certbot -> install certbot with portmaster and we'll go from there. I'm koobs freebsd org

@vbotka
Copy link

vbotka commented Sep 3, 2016

For the record.:

 pkg_deinstall py27-certbot
 pkg_deinstall py27-letsencrypt
 portinstall -R py27-certbot

solved the problem.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants