DNF 충돌 패키지의 원인을 확인하기 위한 역 종속성

DNF 충돌 패키지의 원인을 확인하기 위한 역 종속성

최근에 내 (fedora 27, x64) 컴퓨터에서 일부 패키지를 업데이트하려고 시도했는데 dnf충돌에 대해 불평했습니다. 그러나 dnf갈등의 원인을 어떻게 말해야 할지 모르겠습니다 .이 관련 질문--best사용해야 한다고 하더군요해결하다질문이 있지만 아직까지는 알 수 없습니다갈등이 없는 것으로 보이는 상황은 갈등으로 간주됩니다.

이 질문의 요약은 다음과 같습니다.dnf충돌하는 패키지와 관련 종속성은 무엇인지 어떻게 알 수 있나요 ?

다음은 충돌 상황입니다.

$dnf update
Last metadata expiration check: 1:49:45 ago on Tue 27 Nov 2018 03:16:34 PM CET.
Dependencies resolved.

 Problem: problem with installed package i3status-2.12-1.fc27.x86_64
  - package i3status-2.12-1.fc27.x86_64 requires libconfuse.so.1()(64bit), but none of the providers can be installed
  - cannot install both libconfuse-3.2.2-1.fc27.x86_64 and libconfuse-3.2-3.fc27.x86_64
  - cannot install both libconfuse-3.2-3.fc27.x86_64 and libconfuse-3.2.2-1.fc27.x86_64
  - cannot install the best update candidate for package libconfuse-3.2-3.fc27.x86_64

나는 dnf --deplist info그것이 i3status-2.12-1.fc27.x86_64다음에 달려 있다는 것을 발견했습니다 libconfuse-3.2-3.fc27.x86_64.

  dependency: libconfuse.so.1()(64bit)
   provider: libconfuse-3.2-3.fc27.x86_64

그러나 나는 평생 동안 어떤 물건이 낡은 libconfuse-3.2.2-1.fc27.x86_64가방에 달려 있는지 알아낼 수 없습니다. 설치된 패키지의 역의존성은 검색이 쉽다고 생각하는데 해결방안을 제시해 드립니다여기지침은 dnf repoquery --available --alldeps --source --whatrequires libconfuse-3.2.2-1.fc27.x86_64트릭을 수행해야 하지만 출력은 다음과 같습니다.

Last metadata expiration check: 1:59:58 ago on Tue 27 Nov 2018 03:16:34 PM CET.
libconfuse-3.2.2-1.fc27.src.rpm

그리고 이 rpm에는 전혀 종속성이 없습니다. 즉, 이를 요구하는 유일한 패키지는 패키지 자체이지만 항상 발생하는 것은 아니므로 이 목록은 어떤 면에서는 불완전하다고 생각됩니다. dnf repoquery좀 더 깊이 파고들면 이것이 dnf repoquery --all --installed --whatrequires libconfuse내가 원하는 결과를 얻을 수 있다는 것을 알았습니다. 이것은 말한다:

i3status-0:2.12-1.fc27.x86_64

어떤 패키지가 처음에 업데이트하려는 패키지로 나열되어 있는지에 따라 다르지만 위에서 이미 지적한 바와 같이 이는 이 출력에 따라 충돌이 libconfuse.so.1()(64bit)있어서는 libconfuse-3.2-3.fc27.x86_64안 됩니다. 내가 여기서 무엇을 놓치고 있는 걸까요?

답변1

다음 명령은 목록을 반환합니다.설치됨종속 패키지난독화 라이브러리그리고 그들이 의존하는 정확한 버전과 아키텍처는 다음과 같습니다.

sudo dnf repoquery --whatdepends libconfuse \
--queryformat "%{name}.%{arch} %{version}-%{release}" 2>/dev/null \
| grep -F -f <(sudo dnf list installed \
| tr -s '[[:space:]]' | cut -d ' ' -f-2) \
| xargs -L1 sudo dnf repoquery --deplist 2>/dev/null \
| grep 'package\|libconfuse'

(반드시 교체하세요.둘 다~의 출현난독화 라이브러리버전 번호가 없는 라이브러리 이름 dnf와 충돌이 있습니다. 그렇지 않으면 실행할 수 없습니다.)

관련 정보