rhel 7.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が文句を言うのかわかりません。
答え1
パッケージをインストールしながらpip
使用しているようです。yum
インストールされたパッケージのペアpip
が表示されないため、yum
インストールが失敗します。
opensource.comのこの記事では、これらの問題について詳しく説明します。Pythonパッケージを正しい方法で管理する。ここで重要なメッセージをまとめてみましょう。
pip
(with)を使用してグローバルにパッケージをインストールする場合は、通常、オペレーティングシステムsudo pip install
のパッケージマネージャが制御するシステム全体の場所にパッケージをインストールします。ただし、パッケージマネージャはパッケージを認識しないため、インストールがインストールされているパッケージのデータベースと一致しなくなります。極端な場合は、yum
Pythonを使用するシステムレベルのアプリケーション(Python自体など)に問題が発生する可能性があります。
通常、Pythonモジュールをグローバルにインストールするときは、システムのデフォルトのパッケージマネージャを優先する必要があります。これらのパッケージは特定のバージョンのオペレーティングシステムでテストされているため、より安定しています。
実際にインストールパッケージを使用したい場合は、pip
仮想環境を使用することをお勧めします。を使用すると、virtualenv
必要に応じて変更できるローカルインストールが行われます。システム全体の整合性を損なうことなく、必要なパッケージをインストールできます。
いつものように、2つのアプローチの間には長所と短所があります。続行する前に慎重に評価してください。
状況に応じて を使用してモジュールを取り外し、 をpip
使用して再インストールできますyum
。これがうまくいくことを保証することはできませんので、まず最初に方法をテストしてください。
実際のパッケージに関して見つけることができました。CentOS 7リスト。 RHELでは、このパッケージを入手するにはソフトウェアコレクションストアが必要になる場合があります。このパスに従うことを決定する前に、実際にいくつかのソースを介してRPMパッケージにアクセスできることを確認してください。