종속성이 충돌하는 패키지를 식별하는 방법은 무엇입니까?

종속성이 충돌하는 패키지를 식별하는 방법은 무엇입니까?

실행할 때 sudo apt upgrade다음과 같은 오류 메시지가 나타납니다.

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libcurl4 : Conflicts: libcurl3 but 7.60.0-1 is to be installed
E: Broken packages

나는 이 문장의 의미를 이해합니다:

  • 이전에 종속성 패키지 X를 설치했으므로 이미 libcurl4설치 libcurl4되어 있습니다.
  • 업그레이드에는 (버전 7.60.0-1) 에 대한 새로운 종속성이 있는 패키지 Y가 포함되어 있습니다 libcurl3.
  • libcurl3와 관련되어 있어서 설치할 수 없습니다 libcurl4.

libcurl3 및 libcurl4가 필요한 패키지 목록을 보기 위해 GNOME 패키지를 사용했지만 목록이 길어서 범위를 좁힐 수 없습니다. 특히 어떤 패키지가 이미 설치되어 있는지 또는 곧 설치될 패키지인지 표시하지 않습니다.

적절한 디버그를 시도했지만 정보가 추가되지 않은 것 같습니다.

$ sudo apt -o Debug::pkgProblemResolver=yes upgrade                                                                                                           
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Entering ResolveByKeep 10%
  Dependencies are not satisfied for libcurl4:amd64 < 7.60.0-2 @ii mK Ib >
Keeping package libcurl4:amd64
  Dependencies are not satisfied for libcurl4:amd64 < 7.60.0-2 @ii mK Ib >
Package libcurl4:amd64 libcurl4:amd64 Conflicts on libcurl3:amd64 < none -> 7.60.0-1 @un uN >
  Dependencies are not satisfied for libcurl4:amd64 < 7.60.0-2 @ii mK Ib >
  Dependencies are not satisfied for libcurl4:amd64 < 7.60.0-2 @ii mK Ib >
  Dependencies are not satisfied for libcurl4:amd64 < 7.60.0-2 @ii mK Ib >
Calculating upgrade... Done
<repeats previous error message>

패키지 X(기존 패키지)와 패키지 Y(새 패키지 또는 새 종속성이 있는 기존 패키지)를 식별하는 방법은 무엇입니까?

답변1

패키지 업그레이드 중에 충돌(또는 기타 문제)을 일으키는 패키지를 식별하기 위해 제가 찾은 가장 유용한 방법은 확인자의 디버그 모드를 활성화하는 것입니다.

apt -o Debug::pkgProblemResolver=yes upgrade

그러면 파서가 직면한 모든 문제와 문제가 있는 종속성을 고려하게 만든 패키지가 표시됩니다.

답변2

@StephenKitt의 탁월한 답변에 추가하는 또 다른 방법은 aptitude.

aptitude일반적으로 패키지를 보다 지능적으로 관리하며 특히 유용하며 충돌이 발생할 때 대안을 제안합니다.

apt사용법도 , aptitude install및 를 사용하는 것과 aptitude update매우 유사 합니다 aptitude upgrade. 인수 없이 호출 하면 aptitude텍스트 메뉴 인터페이스가 호출됩니다.

~에서man aptitude

aptitude - 패키지 관리자를 위한 고급 인터페이스

aptitude는 Debian GNU/Linux 패키지 시스템을 위한 텍스트 기반 인터페이스입니다.

이를 통해 사용자는 패키지 목록을 보고 패키지 설치, 업그레이드, 제거와 같은 패키지 관리 작업을 수행할 수 있습니다. 시각적 인터페이스나 명령줄에서 작업을 수행할 수 있습니다.

자세한 내용은 다음을 참조하세요.적성 - 명령줄 참조

관련 정보