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필요에 따라 수정할 수 있는 로컬 설치가 이루어집니다. 전체 시스템의 무결성을 손상시키지 않고 원하는 패키지를 설치할 수 있습니다.

항상 그렇듯이 두 가지 접근 방식 사이에는 장단점이 있습니다. 계속하기 전에 신중하게 평가하십시오.


상황에 따라 를 사용하여 모듈을 제거한 pip후 를 사용하여 다시 설치할 수 있습니다 yum. 이것이 작동한다고 보장할 수 없으므로 주의해서 먼저 방법을 테스트해 보세요.

실제 패키지와 관련하여 찾을 수 있었습니다.CentOS 7 목록. RHEL에서는 이 패키지를 얻으려면 소프트웨어 컬렉션 저장소가 필요할 수 있습니다. 이 경로를 따르기로 결정하기 전에 실제로 일부 소스를 통해 RPM 패키지에 액세스할 수 있는지 다시 확인하십시오.

관련 정보