rhel7.2サーバーに次のrpmをインストールしようとしていますが成功しません
uname -r
3.10.0-327.el7.x86_64
yum install python2-cryptography-1.7.2-2.el7.x86_64.rpm
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
.
.
.
--> Processing Dependency: python-cffi >= 1.4.1 for package: python2-cryptography-1.7.2-2.el7.x86_64
--> Processing Dependency: python-idna >= 2.0 for package: python2-cryptography-1.7.2-2.el7.x86_64
--> Processing Dependency: python-pyasn1 >= 0.1.8 for package: python2-cryptography-1.7.2-2.el7.x86_64
--> Processing Dependency: libcrypto.so.10(OPENSSL_1.0.2)(64bit) for package: python2-cryptography-1.7.2-2.el7.x86_64
--> Processing Dependency: python-ipaddress for package: python2-cryptography-1.7.2-2.el7.x86_64
--> Finished Dependency Resolution
Error: Package: python2-cryptography-1.7.2-2.el7.x86_64 (/python2-cryptography-1.7.2-2.el7.x86_64)
Requires: python-ipaddress
Error: Package: python2-cryptography-1.7.2-2.el7.x86_64 (/python2-cryptography-1.7.2-2.el7.x86_64)
Requires: libcrypto.so.10(OPENSSL_1.0.2)(64bit)
Error: Package: python2-cryptography-1.7.2-2.el7.x86_64 (/python2-cryptography-1.7.2-2.el7.x86_64)
Requires: python-cffi >= 1.4.1
Available: python-cffi-0.8.6-2.el7.x86_64 (local)
python-cffi = 0.8.6-2.el7
Error: Package: python2-cryptography-1.7.2-2.el7.x86_64 (/python2-cryptography-1.7.2-2.el7.x86_64)
Requires: python-pyasn1 >= 0.1.8
Available: python-pyasn1-0.1.6-2.el7.noarch (local)
python-pyasn1 = 0.1.6-2.el7
Error: Package: python2-cryptography-1.7.2-2.el7.x86_64 (/python2-cryptography-1.7.2-2.el7.x86_64)
Requires: python-idna >= 2.0
You could try using --skip-broken to work around the problem
** Found 2 pre-existing rpmdb problem(s), 'yum check' output follows:
containerd.io-1.2.13-3.1.el7.x86_64 has installed conflicts containerd: containerd.io-1.2.13-3.1.el7.x86_64
containerd.io-1.2.13-3.1.el7.x86_64 has installed conflicts runc: containerd.io-1.2.13-3.1.el7.x86_64
私たちが得るので pre-existing rpmdb problem(s)
以下を行いました
package-cleanup --dupes
package-cleanup --cleandupes
しかし、問題はまだ残っていました
また、yumが必要とするPythonパッケージが実際にインストールされていることがわかりました
例
pip list | grep idna
idna 2.10
pip list | grep pyasn1
pyasn1 0.1.9
そのため、Pythonパッケージが適切なバージョンですでにインストールされているのにyumが文句を言う理由がわかりません
パッケージのインストールpip
だけでなく、使用しているようですyum
。によってインストールされたパッケージpip
は、に表示されませんyum
。これが、インストールが失敗する理由です。
opensource.comのこの記事では、懸念事項について詳しく説明しています。Pythonパッケージを正しい方法で管理する。ここで重要な情報を要約します。
pip
(with sudo pip install
)を使用してパッケージをグローバルにインストールする場合、通常はOSパッケージマネージャーによって制御されるシステムレベルの場所にパッケージをインストールします。ただし、パッケージマネージャーはパッケージを認識しないため、インストールがインストールされたパッケージのデータベースと矛盾します。極端な場合、これにより、Pythonに依存するシステムレベルのアプリケーション(yum
それ自体など)で問題が発生する可能性があります。
一般に、Pythonモジュールをグローバルにインストールする場合は、システムのネイティブパッケージマネージャーを使用する必要があります。これらのパッケージは特定のバージョンのOSでテストされているため、信頼性が高くなります。
本当にpip
パッケージのインストールに使用したい場合は、仮想環境を使用することをお勧めします。を使用するとvirtualenv
、必要に応じて変更できるローカルインストールを取得できます。システム全体の整合性を損なうことなく、必要なパッケージをインストールできます。
いつものように、両方のアプローチの間にはトレードオフがあります。先に進む前に、それらを注意深く評価してください。
特定のケースでは、でモジュールを削除してpip
から、を使用して再インストールすることで続行できる場合がありますyum
。これが機能することを保証することはできませんので、注意して最初にアプローチをテストしてください。
実際のパッケージに関しては、CentOS7のリストを見つけることができました。RHELでは、このパッケージを取得するためにソフトウェアコレクションリポジトリが必要になる場合があります。繰り返しになりますが、このルートを続行する前に、RPMパッケージが実際にいくつかのチャネルで利用可能であることを確認してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加