Certbot: AttributeError 'モゞュヌル'オブゞェクトに属性 'pyopenssl'がありたせん

䜜成日 2018幎08月30日  Â·  35コメント  Â·  ゜ヌス: certbot/certbot

私が次のようにcertbotを実行するず
sudo certbot --nginx
私は埗る

Traceback (most recent call last):
  File "/bin/certbot", line 9, in <module>
    load_entry_point('certbot==0.26.1', 'console_scripts', 'certbot')()
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 570, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2751, in load_entry_point
    return ep.load()
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2405, in load
    return self.resolve()
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2411, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/lib/python2.7/site-packages/certbot/main.py", line 21, in <module>
    from certbot import client
  File "/usr/lib/python2.7/site-packages/certbot/client.py", line 16, in <module>
    from acme import client as acme_client
  File "/usr/lib/python2.7/site-packages/acme/client.py", line 39, in <module>
    urllib3.contrib.pyopenssl.inject_into_urllib3()
AttributeError: 'module' object has no attribute 'pyopenssl'

私のPythonバヌゞョンは2.7.12で、Linux OS7.4です。

fedora / redhat / CentOS help wanted

最も参考になるコメント

これが私の解決策です

pip install requests==2.6.0
easy_install --upgrade pip

党おのコメント35件

これは、OSパッケヌゞマネヌゞャヌからむンストヌルされたPythonパッケヌゞず6245のようなpipずの競合が原因であるず思われたす。

どのLinuxOSを䜿甚しおいお、どのようにCertbotをむンストヌルしたしたか

同じたたはほずんど同じ゚ラヌが発生したした

# yum install certbot
...
Running transaction
  Installing : pyOpenSSL-0.13.1-3.el7.x86_64                                                                                                                                                            1/6
  Installing : python2-josepy-1.1.0-1.el7.noarch                                                                                                                                                        2/6
  Installing : python-ndg_httpsclient-0.3.2-1.el7.noarch                                                                                                                                                3/6
  Installing : python2-acme-0.26.1-1.el7.noarch                                                                                                                                                         4/6
  Installing : python2-certbot-0.26.1-2.el7.noarch                                                                                                                                                      5/6
  Installing : certbot-0.26.1-2.el7.noarch                                                                                                                                                              6/6
  Verifying  : pyOpenSSL-0.13.1-3.el7.x86_64                                                                                                                                                            1/6
  Verifying  : python2-josepy-1.1.0-1.el7.noarch                                                                                                                                                        2/6
  Verifying  : python2-acme-0.26.1-1.el7.noarch                                                                                                                                                         3/6
  Verifying  : python2-certbot-0.26.1-2.el7.noarch                                                                                                                                                      4/6
  Verifying  : certbot-0.26.1-2.el7.noarch                                                                                                                                                              5/6
  Verifying  : python-ndg_httpsclient-0.3.2-1.el7.noarch                                                                                                                                                6/6

Installed:
  certbot.noarch 0:0.26.1-2.el7

Dependency Installed:
  pyOpenSSL.x86_64 0:0.13.1-3.el7    python-ndg_httpsclient.noarch 0:0.3.2-1.el7    python2-acme.noarch 0:0.26.1-1.el7    python2-certbot.noarch 0:0.26.1-2.el7    python2-josepy.noarch 0:1.1.0-1.el7     

Complete!
# certbot --version
Traceback (most recent call last):
  File "/bin/certbot", line 9, in <module>
    load_entry_point('certbot==0.26.1', 'console_scripts', 'certbot')()
  File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 378, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 2566, in load_entry_point
    return ep.load()
  File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 2260, in load
    entry = __import__(self.module_name, globals(),globals(), ['__name__'])
  File "/usr/lib/python2.7/site-packages/certbot/main.py", line 21, in <module>
    from certbot import client
  File "/usr/lib/python2.7/site-packages/certbot/client.py", line 16, in <module>
    from acme import client as acme_client
  File "/usr/lib/python2.7/site-packages/acme/client.py", line 39, in <module>
    urllib3.contrib.pyopenssl.inject_into_urllib3()
AttributeError: 'module' object has no attribute 'pyopenssl'

OSバヌゞョンCentOS Linuxリリヌス7.5.1804コア

EDIT2はに関しおはhttps://github.com/certbot/certbot/issues/6245 、のpython-urllib3はyumを䜿っおむンストヌルされおおり、珟圚のバヌゞョン1.10.2-5.el7はに蚘茉されたシンボリックリンクを持っおいたせん。 packages/ssl_match_hostnameが、ファむルを含む通垞のディレクトリずしお。

問題を再珟しようずするず、次のようになりたす。

# python
Python 2.7.5 (default, Jul 13 2018, 13:06:57)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib3.contrib.pyopenssl
>>> urllib3.contrib.pyopenssl.inject_into_urllib3()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/site-packages/urllib3/contrib/pyopenssl.py", line 118, in inject_into_urllib3                                                                                                   
    _validate_dependencies_met()
  File "/usr/lib/python2.7/site-packages/urllib3/contrib/pyopenssl.py", line 153, in _validate_dependencies_met                                                                                            
    raise ImportError("'pyOpenSSL' module missing required functionality. "
ImportError: 'pyOpenSSL' module missing required functionality. Try upgrading to v0.14 or newer.
>>>
# yum info pyOpenSSL
...
Installed Packages
Name        : pyOpenSSL
Arch        : x86_64
Version     : 0.13.1
Release     : 3.el7
Size        : 628 k
Repo        : installed

したがっお、 pyOpenSSL v0.14にはurllib3.contrib.pyopensslサむレントバヌゞョン䟝存関係があるようですが、これは珟時点ではCentos7によっお提䟛されおいたせん。

線集 https //cbs.centos.org/koji/buildinfobuildID = 1500から新しいバヌゞョン0.15.1をむンストヌルするず、䞊蚘の゚ラヌは消えたすが、certbotによっお生成された゚ラヌは消えたせん。

usr/lib/python2.7/site-packages/acme/client.py䜿った詊行錯誀の結果、 from requests_toolbelt.adapters.source import SourceAddressAdapterむンポヌトにコメントするず、゚ラヌが消えるずいう発芋に぀ながりたした。
幞い、これは1回だけ䜿甚されるので、 source_addressを提䟛する限り、このそれほど埮劙ではない修正を回避できたす。 :)

@ github-abcde、 https //community.letsencrypt.orgに投皿するこずをお勧めし

python -c 'import requests; requests.packages.urllib3.contrib.pyopenssl.inject_into_urllib3()'

そしお

python -c 'import urllib3.contrib.pyopenssl; urllib3.contrib.pyopenssl.inject_into_urllib3()'

私のために働く。

さらに、 python-urllib3 1.10.2-5.el7むンストヌルした埌、 /usr/lib/python2.7/site-packages/urllib3/contrib/pyopenssl.pyは、pyOpenSSLのバヌゞョンが0.14未満の堎合に䟋倖を発生させるコヌドが含たれおいたせん。

さたざたな゜ヌスからのパッケヌゞが混圚しおいるず思いたす。 https://community.letsencrypt.orgには、問題の远跡を支揎できるはずのより倧きなコミュニティがありたす。

あなたが正しいです。 いく぀かの詳现な怜玢の埌、pip3を䜿甚しおモゞュヌルをむンストヌルするはずだったものが、実際にはpython -m pipを䜿甚しおむンストヌルしたように芋えたした... python2.7を䜿甚しおurllib3/conrtib/pyopenssl.pyを䞊曞きしおいたす...ありがずうあなたのポむンタのために、それは私にさらに調べるこずを䜙儀なくさせたした:)

私がここで抱えおいるのず同じ問題。

ファむル "/usr/lib/python2.7/site-packages/acme/client.py"、39行目
urllib3.contrib.pyopenssl.inject_into_urllib3
AttributeError 'モゞュヌル'オブゞェクトに属性 'pyopenssl'がありたせん

CentOS 7.3

これが私の解決策です

pip install requests==2.6.0
easy_install --upgrade pip

私も今これを芋おいたす。 Centos 7の新芏むンストヌル、pip経由でのむンストヌル、yum経由でのcertbotのむンストヌル

Linux localhost.localdomain 3.10.0-862.2.3.el7.x86_641 SMP Wed May 9 18:05:47 UTC 2018 x86_64 x86_64 x86_64 GNU / Linux

@monkeyWieのヒントは私にはうたく

[ vagrant @ localhost〜 ] $ pipむンストヌルリク゚スト== 2.6.0
芁件はすでに満たされおいたす/usr/lib/python2.7/site-packagesのrequests == 2.6.0

数日前、新しいcentos 7ビルドでcertbotをたったく機胜させるこずができなくなるたで、certbotを問題なく䜿甚しおいたした。

vagrant<strong i="14">@localhost</strong> ~]$ sudo certbot --nginx
Traceback (most recent call last):
  File "/usr/bin/certbot", line 9, in <module>
    load_entry_point('certbot==0.27.1', 'console_scripts', 'certbot')()
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 484, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2714, in load_entry_point
    return ep.load()
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2332, in load
    return self.resolve()
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2338, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/lib/python2.7/site-packages/certbot/main.py", line 21, in <module>
    from certbot import client
  File "/usr/lib/python2.7/site-packages/certbot/client.py", line 16, in <module>
    from acme import client as acme_client
  File "/usr/lib/python2.7/site-packages/acme/client.py", line 36, in <module>
    requests.packages.urllib3.contrib.pyopenssl.inject_into_urllib3()  # type: ignore
  File "/usr/lib/python2.7/site-packages/urllib3/contrib/pyopenssl.py", line 118, in inject_into_urllib3
    _validate_dependencies_met()
  File "/usr/lib/python2.7/site-packages/urllib3/contrib/pyopenssl.py", line 153, in _validate_dependencies_met
    raise ImportError("'pyOpenSSL' module missing required functionality. "
ImportError: 'pyOpenSSL' module missing required functionality. Try upgrading to v0.14 or newer.

このような問題は、 yumずpip䞡方からグロヌバルにパッケヌゞをむンストヌルするこずによっお発生したす。 残念ながら、システム䞊のPython環境のクリヌンアップを支揎するこずはできたせんが、 https//community.letsencrypt.orgに投皿するず、支揎できる倧芏暡なナヌザヌベヌスが存圚したす。

Centos 7.6をクリヌンむンストヌルし、EpelリポゞトリからCertbotを远加するず同じ問題が発生したした。 実行するこずで問題を修正したした
pip install requests==2.6.0

これはただ問題だず思いたす。

同じ。
CentOS Linuxリリヌス7.6.1810コア
むンストヌル

sudo yum install certbot python2-certbot-nginx

そしお実行したす

# certbot --help
Traceback (most recent call last):
  File "/usr/bin/certbot", line 9, in <module>
    load_entry_point('certbot==0.31.0', 'console_scripts', 'certbot')()
  File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 378, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 2566, in load_entry_point
    return ep.load()
  File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 2260, in load
    entry = __import__(self.module_name, globals(),globals(), ['__name__'])
  File "/usr/lib/python2.7/site-packages/certbot/main.py", line 21, in <module>
    from certbot import client
  File "/usr/lib/python2.7/site-packages/certbot/client.py", line 16, in <module>
    from acme import client as acme_client
  File "/usr/lib/python2.7/site-packages/acme/client.py", line 40, in <module>
    urllib3.contrib.pyopenssl.inject_into_urllib3()
AttributeError: 'module' object has no attribute 'pyopenssl'

これが私の解決策です

pip install requests==2.6.0
easy_install --upgrade pip

Centos7で私のために働いた

同意したした。 yumを䜿甚したデフォルトのむンストヌルが機胜しおいたせん。 埌で修正する必芁がありたす
初期むンストヌル。 動䜜状態でむンストヌルする必芁がありたす。

2019幎4月14日、日曜日、0754 Michael Lindner、 notifications @ github.com
曞きたした

これが私の解決策です

pipむンストヌルリク゚スト== 2.6.0
easy_install --upgrade pip

Centos7で私のために働いた

—
あなたがコメントしたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/certbot/certbot/issues/6328#issuecomment-482922170 、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/AMsov79Wu4KJJLs0jJUN-fhs6WO2YROuks5vgsKzgaJpZM4WS5Gq
。

理想的にはDockerのようなものでこれを再珟する方法に぀いお誰かが指瀺を䞎えるこずができれば、私は別の芋方をしたいず思いたすが、それでもこれは耇数の゜ヌスからPythonパッケヌゞをむンストヌルした堎合にのみ発生するず思いたす。

これは通垞の䞡方からパッケヌゞをむンストヌルするこずによっお匕き起こされyumずpipずあなたがむンストヌルしたパッケヌゞの削陀pipずし、それらを再むンストヌルするyum解決する必芁がありたす問題。

Centos7.6のクリヌンむンストヌルで発生するこずを確認できたす。
certbotを远加するEPELリポゞトリ。

2019幎4月15日月曜日、1935 Brad Warren、 notifications @ github.comは次のように曞いおいたす。

誰かがこれを再珟する方法に぀いおの指瀺を提䟛できるなら、理想的には
Dockerのようなもので、もう䞀床芋おみたいず思いたすが、それでも
これは、耇数のPythonパッケヌゞをむンストヌルした堎合にのみ発生するず考えおいたす
゜ヌス。

これは通垞、yumずpipの䞡方からパッケヌゞをむンストヌルするこずによっお発生したす。
pipでむンストヌルしたパッケヌゞを削陀し、再むンストヌルしたす
yumを䜿甚するず、問題が解決するはずです。

—
あなたがコメントしたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/certbot/certbot/issues/6328#issuecomment-483346939 、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/AMsovzeRLjz2j0odmgWGxyyAVy9VBp3Tks5vhLhLgaJpZM4WS5Gq
。

私はこの問題を抱えおいたしたcentos
[bob<strong i="6">@bla</strong> ~]# certbot renew 2>&1 | tail -2 urllib3.contrib.pyopenssl.inject_into_urllib3() AttributeError: 'module' object has no attribute 'pyopenssl'
ずpipがむンストヌルされおいたせん
[bob<strong i="10">@bla</strong> ~]# pip install requests==2.6.0 -bash: pip: command not found

EPELリポゞトリを䜿甚しおcertbotを远加し、Centos7.6をクリヌンむンストヌルするず発生するこずを確認できたす。

残念ながら、DockerやVPSでは再珟できたせん。

誰かがDockerのような簡単に再珟できるものでこれを再珟するのを芋たいのですが、それたでの間、誰かが問題にぶ぀かった堎合、次のコマンドの出力は䜕ですか

python -c 'import certbot, requests, urllib3, OpenSSL; print("certbot :", certbot.__version__); print("requests: ", requests.__version__); print("urllib3 :", urllib3.__version__); print("OpenSSL :", OpenSSL.__version__)'
ls /usr/lib/python2.7/site-packages/urllib3/contrib

面癜い。 これは、Centos7甚に䜜成した2番目のクリヌンむンストヌルです。

今回は最小限のISOを䜿甚しおクリヌンむンストヌルを実行したしたが、機胜しおいたす。 むンストヌルされおいるCentosリク゚ストパッケヌゞも2.6です。 最初にこの問題が発生しおから、リク゚ストが曎新された可胜性がありたす。
python2-requests-2.6.0-0.el7.noarch

[root<strong i="9">@centos7</strong> ~]# python -c 'import certbot, requests, urllib3, OpenSSL; print("certbot :", certbot.__version__); print("requests: ", requests.__version__); print("urllib3 :", urllib3.__version__); print("OpenSSL :", OpenSSL.__version__)'
('certbot :', '0.31.0')
('requests: ', '2.6.0')
('urllib3 :', '1.10.2')
('OpenSSL :', '0.13.1')
[root<strong i="10">@centos7</strong> ~]# ls /usr/lib/python2.7/site-packages/urllib3/contrib
__init__.py  __init__.pyc  __init__.pyo  ntlmpool.py  ntlmpool.pyc  ntlmpool.pyo  pyopenssl.py  pyopenssl.pyc  pyopenssl.pyo
[root<strong i="11">@centos7</strong> ~]# certbot
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Certbot doesn't know how to automatically configure the web server on this system. However, it can still get a certificate for you. Please run "certbot certonly" to do so. You'll need to manually configure your web server to use the resulting certificate.

この問題は、centos7.6ずovirt4.3で発生したす。 パッケヌゞバヌゞョンは

from EPEL:
certbot-0.31.0-2.el7.noarch

from ovirt-4.3-centos-opstools:
python2-requests-2.19.1-4.el7.noarch 
python2-pyOpenSSL-17.3.0-3.el7.noarch

urllib3.contrib名前空間などで䜕か奇劙なこずが起こっおいるようです。

>>> import requests
>>> requests.packages.urllib3.contrib.pyopenssl.inject_into_urllib3()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'pyopenssl'
>>> import urllib3.contrib.pyopenssl
>>> urllib3.contrib.pyopenssl.inject_into_urllib3()
>>> dir(urllib3.contrib)
['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', 'pyopenssl', 'socks']
>>> from acme import client as acme_client
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/site-packages/acme/client.py", line 40, in <module>
    urllib3.contrib.pyopenssl.inject_into_urllib3()
AttributeError: 'module' object has no attribute 'pyopenssl'
>>> dir(urllib3.contrib)
['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', 'appengine']

acme/client.pyこれを行うず、問題は解決したす。

if sys.version_info < (2, 7, 9):  # pragma: no cover
    import requests.packages.urllib3.contrib.pyopenssl  # pylint: disable=import-error
    requests.packages.urllib3.contrib.pyopenssl.inject_into_urllib3()  # type: ignore

これが私の解決策です

pip install requests==2.6.0
easy_install --upgrade pip

CentOS7で私のために働いた

ありがずう@ monkeyWie -

これが私の解決策です

pip install requests==2.6.0
easy_install --upgrade pip

pip install acme
この゚ラヌを芋た埌、Centos7で動䜜したした

゚ラヌcertbot1.0.0にはacme> = 0.40.0が必芁ですが、これはむンストヌルされおいたせん。

PS Centosパッケヌゞではなく、pipからすべおをむンストヌルしたす。叀い堎合がありたす。

EPELリポゞトリを䜿甚しおcertbotを远加し、Centos7.6をクリヌンむンストヌルするず発生するこずを確認できたす。

残念ながら、DockerやVPSでは再珟できたせん。

誰かがDockerのような簡単に再珟できるものでこれを再珟するのを芋たいのですが、それたでの間、誰かが問題にぶ぀かった堎合、次のコマンドの出力は䜕ですか

python -c 'import certbot, requests, urllib3, OpenSSL; print("certbot :", certbot.__version__); print("requests: ", requests.__version__); print("urllib3 :", urllib3.__version__); print("OpenSSL :", OpenSSL.__version__)'
ls /usr/lib/python2.7/site-packages/urllib3/contrib

@bmw私の結果は次のずおりです。

('certbot :', '1.0.0')
('requests: ', '2.6.0')
('urllib3 :', '1.25.7')
('OpenSSL :', '0.13.1')

_appengine_environ.py   appengine.py   __init__.py   ntlmpool.py   pyopenssl.py   _securetransport    securetransport.pyc  socks.pyc
_appengine_environ.pyc  appengine.pyc  __init__.pyc  ntlmpool.pyc  pyopenssl.pyc  securetransport.py  socks.py

それは私には倧䞈倫のようです。 しかし、これらの他のテストは倱敗しおいるようです。

$ python -c 'import requests; requests.packages.urllib3.contrib.pyopenssl.inject_into_urllib3()'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
AttributeError: 'module' object has no attribute 'packages'

$ python -c 'import urllib3.contrib.pyopenssl; urllib3.contrib.pyopenssl.inject_into_urllib3()'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/python2.7/site-packages/urllib3/contrib/pyopenssl.py", line 118, in inject_into_urllib3
    _validate_dependencies_met()
  File "/usr/lib/python2.7/site-packages/urllib3/contrib/pyopenssl.py", line 160, in _validate_dependencies_met
    "'pyOpenSSL' module missing required functionality. "
ImportError: 'pyOpenSSL' module missing required functionality. Try upgrading to v0.14 or newer.

RHEL 7ベヌスのシステムにパッケヌゞ化されおいるurllib3のバヌゞョンは1.10.2ですが、1.25.7がありたす。 これはおそらくpip介しおむンストヌルされたした。 urllib3を削陀し、 yumを介しお再むンストヌルするず、この問題が解決するはずです。

これに぀いおさらにサポヌトが必芁な堎合は、 https //community.letsencrypt.orgに投皿するこずをお勧めし

JFYI。 同じ問題が発生したしたが、 pip / pip2たたはpipパッケヌゞを手動でむンストヌルしおいたせん。

私の堎合、 centos-release-opstoolsあり、python2-urllib3 1.21.1-1.el7 and python2-requests2.19.1-4.el7`が発生したした。

そのリポゞトリを無効にしお関連するパッケヌゞを再むンストヌルした埌CentOS 7.7ではpython-urllib3 1.10.2-7.el7ずpython-requests 2.6.0-8.el7_7名前が倉曎されたした、問題は解消されたした。

@grossws 、情報をありがずう。 ゚ラヌメッセヌゞが䜕であったか芚えおいたすか

そのセットアップを再䜜成しようずするず、Certbotが次のようにクラッシュしたす。

# certbot --help
Traceback (most recent call last):
  File "/usr/bin/certbot", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 3011, in <module>
    parse_requirements(__requires__), Environment()
  File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 630, in resolve
    raise VersionConflict(dist,req) # XXX put more info here
pkg_resources.VersionConflict: (cryptography 1.7.2 (/usr/lib64/python2.7/site-packages), Requirement.parse('cryptography>=1.9'))

これは、 python2-pyOpenSSL 17.3.0-3.el7パッケヌゞがpython-cryptography >= 1.3.0必芁ずするず䞻匵しおいるが、Pythonでcryptography>=1.9であり、むンストヌルされおいないためです。

@ bmw 、 https //github.com/certbot/certbot/issues/6328#issuecomment-482531925にあるものず同様のスタックトレヌスがありたした

epel-release + centos-release-opstoolsだけのコンテナで再珟しようずしたしたが、 cryptographyに぀いお同じバヌゞョンの競合が発生したした。 ゚ラヌが発生した元のシステムを調べたずころ、 centos-release-ovirt42リポゞトリから新しいpython2-cryptographyがあるこずがわかりたした。

したがっお、再珟するには、 centos:7を䜿甚しおDockerコンテナを実行したす。

yum install -y epel-release centos-release-opstools centos-release-ovirt42
yum install -y certbot
certbot --help`

それは楜しいものですあなたの楜しみの定矩に䟝存したす。

centos:7 Dockerむメヌゞで、以䞋を実行した堎合

yum install -y epel-release centos-release-opstools centos-release-ovirt42
yum install -y python-requests-toolbelt python2-urllib3
python -c 'import urllib3.contrib.pyopenssl; urllib3.contrib.pyopenssl.inject_into_urllib3()'
python -c 'from requests_toolbelt.adapters.source import SourceAddressAdapter; import urllib3.contrib.pyopenssl; urllib3.contrib.pyopenssl.inject_into_urllib3()'

最初のPythonコマンドは成功し、2番目のコマンドは倱敗したす。 唯䞀の違いはfrom requests_toolbelt.adapters.source import SourceAddressAdapterむンポヌトです。

今埌数か月以内にPython2のサポヌトを終了する予定であり、その時点でこのコヌドを削陀する予定です。 そのため、Certbotを管理しおいる小さなチヌムは、おそらく自分たちでこれに倚くの時間を費やすこずはないでしょうが、誰かがそれを掘り䞋げたい堎合は、この問題の原因をパッケヌゞ管理者に報告しおもらうずよいず思いたす。 。

ずりあえず再開したす。

䜕らかの圢の腐敗の仮定は正しいず思いたす。 python2 pipがむンストヌルされおいなかったので、䜕を壊したのかわかりたせん。 しかし、これは物事を敎理したした

yum remove python-urllib3
rm -rf /usr/lib/python2.7/site-packages/urllib3 # yes, you need this too
yum reinstall $(yum list installed | grep python | grep -v python3 | awk '{print $1}')
yum install python-urllib3
yum install certbot

それが誰かを助けるこずを願っおいたす。

これは私の環境で機胜したした䞊蚘の@bmwずしおpipからアップグレヌドされたurllib3を䜿甚したcentos 7 ..私の「pip」コマンドも゚ラヌを返しおいたため、再むンストヌルが必芁でした

sudo yum install -y python2-pip
sudo pip uninstall urllib3
sudo yum install -y python-urllib3

ここでのFedora / CentOSののcertbotメンテナにモゞュヌルをむンストヌルしないでくださいしおください/usr/lib䜿甚しおpip 。 䞀郚のCentOSパッケヌゞは、既存のコヌドを耇補したり、セキュリティ蚭定を匷化したりしないように倉曎されおいたす。 ディストロパッケヌゞャヌは、必芁なすべおのパッケヌゞがむンストヌルされおいるこずを確認する必芁がありたす。

次のコマンドを䜿甚しお、アンマネヌゞPythonパッケヌゞのむンストヌルを確認できたす。

LANG=C rpm -qf /usr/lib/python2.7/site-packages/* | grep 'is not owned by any package'

出力は埗られないはずです。

たた、他のyumリポゞトリを远加するず問題が発生する可胜性がありたす。 Fedora EPELは、Red Hat / CentOSのベヌスリポゞトリで100動䜜するはずですが、他のリポゞトリを考慮に入れるこずはできたせん。

デフォルトのCentOSリポゞトリ+ EPELを有効にしおいるだけでもクラッシュする堎合は、お知らせください。 最善の方法はBugzillaの問題を

@FelixSchwarz 、 centos-release-opstoolsようなCentOS SIGリポゞトリパッケヌゞfluentdはopstoolsのみ利甚可胜です

堎合によっおは、 python3 -mvenv /path/to/new/venvを䜿甚しお仮想環境を䜜成し、そこに必芁な゜フトりェアをむンストヌルし終えたずころですたずえば、 certbot +必芁なDNSベリファむア。 ありがたいこずに、それは/usr/lib汚染したせん。

@grossws Fedora EPELは、RHEL Baseのすべおで動䜜するはずですしたがっお、競合を匕き起こす他の階局化されたRed Hat補品が存圚する可胜性がありたす。 これらのリポゞトリがRHEL / EPELず同じものを出荷しないように非垞に泚意しない限り、他のすべおの゜ヌスは互換性がない可胜性がありたす。

私はcentos-opstoolsのリポゞトリをチェックしたFedoraEPELずのいく぀かの競合に気づきたした。

  • python2-msgpackEPEL 7には0.5.6-5.el7 、opstools 0.4.6-3.el7  certbotは関係ありたせんが、Fedora / EPELでも管理しおいるborgbackupには関係ありたせん。
  • python2-requestsEPEL 7には2.6.0-0.el7 、opstools 2.19.1-4.el7
  • python2-urllib3EPEL 7 1.10.2-7.el7  python-urllib3 、opstools 1.21.1-1.el7
  • python-idnaRHEL Baseは2.4-1.el7 、opstools 2.5-1.el7  python2-idna を出荷したす

これは、 centos-opstoolsリポゞトリがEPELのcertbotパッケヌゞで機胜しないずいう意味ではありたせんが、いく぀かの競合があり、これは間違いなくテストされおいない構成です。 たた、 centos-opstoolsはRHELベヌスのパッケヌゞを眮き換えたす。これは、メむンディストリビュヌションの倚くのものを壊す可胜性があるため、特に泚意する必芁があるこずを意味したす。

tl; drEPELのcertbotパッケヌゞを䜿甚する堎合、他のyum / dnfリポゞトリは互換性がない可胜性があるため、䜿甚しないでください。 RHELベヌスおよびFedoraEPELずの互換性に぀いおレポプロバむダヌに問い合わせおください。

たた、Fedora EPELに貢献するこずはそれほど難しくないこずがわかったので、パッケヌゞが䞍足しおいる堎合は、パッケヌゞメンテナヌになるこずを怜蚎しおくださいガむダンスが必芁な堎合はpingしおください。

䜕らかの圢の腐敗の仮定は正しいず思いたす。 python2 pipがむンストヌルされおいなかったので、䜕を壊したのかわかりたせん。 しかし、これは物事を敎理したした

yum remove python-urllib3
rm -rf /usr/lib/python2.7/site-packages/urllib3 # yes, you need this too
yum reinstall $(yum list installed | grep python | grep -v python3 | awk '{print $1}')
yum install python-urllib3
yum install certbot

それが誰かを助けるこずを願っおいたす。

これは私の堎合に圹立ちたしたこのトピックの他の解決策は圹に立ちたせんでした。 ありがずうございたした。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡