이 RPM이 "제거 가능"한 이유는 무엇입니까?

이 RPM이 "제거 가능"한 이유는 무엇입니까?

가끔 Zypper에 설치를 요청하면 다음과 유사한 메시지가 표시됩니다.

Problem: foo-tools requires foo-lib, but this requirement cannot be provided

Problem: foo-tools requires foo-lib, but this requirement cannot be provided
  uninstallable providers: foo-lib.7.31.13.x86_64
Solution 1: do not install foo-tools
Solution 2: break foo-tools by ignoring some of its dependencies

도대체 왜 Zypper는 내가 의도적으로 이런 정확한 이유로 제공한 RPM을 "제거할 수 없는 공급자"라고 생각합니까? 이 메시지는 무엇을 의미합니까?평균? RPM 파일을 읽을 수 없습니까? 아치가 틀렸나요? 버전이 잘못되었나요?뭔데 화났어??

답변1

그 자체에는 충족되지 않은 종속성이 있는 것으로 나타났습니다 foo-lib. 이를 추가하면 문제가 해결되었습니다.

그런데 문제는... Zypper는 왜 그러지 않았는가 입니다.말하다그게 문제였어? 일반적으로 종속성 문제가 발생하면 찾을 수 없는 특정 패키지에 대해 알려줍니다. 왜 이 불투명한 "제거 가능한 공급자" 메시지가 표시됩니까?

답변2

RPM은 시스템에 설치된 파일(예: 바이너리 실행 파일 및 공유 라이브러리)의 데이터베이스를 유지합니다.

foo-tools와 같은 일부 소프트웨어가 제대로 작동하려면 다른 소프트웨어(예: foo-lib)가 필요합니다. 이 종속성 정보는 RPM 패키지 프로그램에 의해 결정됩니다.

foo-lib 및 foo-tools를 RPM 파일로 사용할 수 있지만 둘 다 설치되지 않은 경우 명령줄에서 둘 다(모두) RPM에 제공하거나 zypper와 동등한 방식으로 제공하여 RPM이 모든 것을 볼 수 있도록 할 수 있습니다. 종속성이 충족됩니다. 또 다른 옵션은 필수 구성 요소 패키지를 먼저 설치하는 것입니다.

foo-lib에 자체 종속성이 있는 경우 해당 종속성도 충족되어야 합니다. 그렇지 않다면 foo-lib는 foo-lib의 설치 가능한 공급자가 아닙니다.

권장되지 않음: 다른 방법으로 전제 조건이 충족되었는지 확인하세요. 필요한 항목을 소스에서 수동으로 설치하고 Zypper가 종속성을 무시하도록 강제합니다. 이렇게 하면 나중에 문제가 발생할 수 있으므로 실행하지 마세요.

관련 정보