yum +既存のrpmdbの問題+ yumがインストールされているパッケージについて不平を言う

yum +既存のrpmdbの問題+ yumがインストールされているパッケージについて不平を言う

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のパッケージマネージャが制御するシステム全体の場所にパッケージをインストールします。ただし、パッケージマネージャはパッケージを認識しないため、インストールがインストールされているパッケージのデータベースと一致しなくなります。極端な場合は、yumPythonを使用するシステムレベルのアプリケーション(Python自体など)に問題が発生する可能性があります。

通常、Pythonモジュールをグローバルにインストールするときは、システムのデフォルトのパッケージマネージャを優先する必要があります。これらのパッケージは特定のバージョンのオペレーティングシステムでテストされているため、より安定しています。

実際にインストールパッケージを使用したい場合は、pip仮想環境を使用することをお勧めします。を使用すると、virtualenv必要に応じて変更できるローカルインストールが行われます。システム全体の整合性を損なうことなく、必要なパッケージをインストールできます。

いつものように、2つのアプローチの間には長所と短所があります。続行する前に慎重に評価してください。


状況に応じて を使用してモジュールを取り外し、 をpip使用して再インストールできますyum。これがうまくいくことを保証することはできませんので、まず最初に方法をテストしてください。

実際のパッケージに関して見つけることができました。CentOS 7リスト。 RHELでは、このパッケージを入手するにはソフトウェアコレクションストアが必要になる場合があります。このパスに従うことを決定する前に、実際にいくつかのソースを介してRPMパッケージにアクセスできることを確認してください。

おすすめ記事