가능한 중복에 대한 참고 사항 :
AFAIK, PPA를 추가 한 후 충족되지 않은 종속성을 해결하려면 어떻게해야합니까? 그렇지 않으면 아래 언급 한 답변을 사용하여 아래 언급 한 테스트 문제를 해결하여 증명하십시오.
배경:
우분투 14.04.3LTS 64 비트에서 설치 와인을 수정하는 방법 전에이 문제에 직면했습니다 . 대상 패키지의 모든 재귀 종속성에 대한 수동 / 인간 검토를 통해 해결되었습니다 ( wine
).
문제를 재현하십시오 (테스트 케이스).
단 하나의 문제 패키지로 조용히 동일한 상황을 만들겠습니다.
- VirtualBox에 새로운 Ubuntu 14.04를 설치하십시오.
- 리포지토리를 열고
software-properties-gtk
활성화backports
합니다. 마지막 패키지 목록 가져 오기
sudo apt-get update
설치
apt-get -s install wine
가 가능한지 확인 하십시오wine
.libcgmanager0
백 포트 에서 문제 해결 패키지 설치$ apt-cache policy libcgmanager0 libcgmanager0: Installed: 0.24-0ubuntu5 Candidate: 0.24-0ubuntu7.5 Version table: 0.39-2ubuntu2~ubuntu14.04.1 0 100 http://dz.archive.ubuntu.com/ubuntu/ trusty-backports/main amd64 Packages 0.24-0ubuntu7.5 0 500 http://dz.archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages 0.24-0ubuntu7.1 0 500 http://security.ubuntu.com/ubuntu/ trusty-security/main amd64 Packages *** 0.24-0ubuntu5 0 500 http://dz.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages 100 /var/lib/dpkg/status
버전
apt
설치 강제libcgmanager0
0.39-2ubuntu2~ubuntu14.04.1
sudo apt-get install libcgmanager0=0.39-2ubuntu2~ubuntu14.04.1
이제 우리는 배경에서 언급 한 질문에서 사용자와 동일한 상황에 처하게되며 와인 설치는 충족되지 않은 종속성으로 실패하고 첫 번째 수준의 종속성 패키지 만 표시합니다.
apt-get -s install wine
Reading package lists... Done Building dependency tree Reading state information... Done 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: wine : Depends: wine1.6 but it is not going to be installed E: Unable to correct problems, you have held broken packages.
apt-get -s install wine1.6
Reading package lists... Done Building dependency tree Reading state information... Done 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: wine1.6 : Depends: wine1.6-i386 (= 1:1.6.2-0ubuntu4) E: Unable to correct problems, you have held broken packages.
apt-get -s install wine1.6-i386
Reading package lists... Done Building dependency tree Reading state information... Done 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: wine1.6-i386:i386 : Depends: libglu1-mesa:i386 but it is not going to be installed or libglu1:i386 Depends: libgphoto2-6:i386 (>= 2.5.2) but it is not going to be installed Depends: libgphoto2-port10:i386 (>= 2.5.2) but it is not going to be installed Recommends: libsane:i386 but it is not going to be installed E: Unable to correct problems, you have held broken packages.
의존성을 apt-get install
하나씩 따라가는 것은 실용적이지 않습니다 .
이상적인 솔루션 :
여기서 진짜 문제
apt
설치할 수 없습니다libcgmanager0:i386
버전을0.39-2ubuntu2~ubuntu14.04.1
백 포트는 낮은 우선 순위가 저장소 있기 때문에100
적은 다음 버전0.24-0ubuntu7.5
에서updates
와 저장소를500
apt
설치할 수 없습니다libcgmanager0:i386
버전을0.24-0ubuntu7.5
하기 때문에libcgmanager0:amd64
다른 버전과 함께 설치됩니다0.39-2ubuntu2~ubuntu14.04.1
가장 빠른 수정은 백 포트에서 동일한 i386 버전을 강제로 설치하는 것입니다.
sudo apt-get install libcgmanager0:i386=0.39-2ubuntu2~ubuntu14.04.1
또는 일반 리포지토리의 모든 버전으로 다운 그레이드 (amd64)
sudo apt-get install libcgmanager0=0.24-0ubuntu7.5
내가 시도한 방법 / 도구 :
- PPA를 비활성화하면 문제와 관련이 없습니다.
aptitude
대화식 모드에서 사용하면 많은 제거 ( > 200 !!! )가있는 솔루션 만 제공됩니다 .apt-get install
종속성 트리에 따라 수동으로 사용하십시오 . 첫 번째 및 두 번째 수준의 종속성이 충돌에 대한 의미있는 메시지를 생성하지 않았으므로 실용적이지 않습니다.debfoster
재귀 종속성을 생성 할 수 있지만 이미 설치된 패키지에 대해서만 가능합니다. 그러나wine
아직 설치되지 않았습니다.
주제 / 관심 분야 :
libcgmanager0
패키지 문제 (또는 libcgmanager0:amd64=0.39-2ubuntu2~ubuntu14.04.1
이미 설치된 것)에 대해 모르고 와인을 설치하고 싶다고합시다 .
디버그 방법이나 문제 패키지의 이름을 알고 진행 상황을 신속하게 이해하는 방법을 찾고 있습니다.
일반적으로 충족되지 않은 종속성 문제를 디버깅하는 방법은 무엇입니까?
내부 종속성 해결 프로그램을 추적하는 새로운 옵션이
dpkg
/apt
/ 에있을 수 있습니다aptitude
.libcgmanager0
출력에 표시 될 수 있습니다 .이에 대한 정식 답변이 없다면 누구나 재귀 종속성 목록을 생성하거나 문제 해결에 도움이 될 수있는 자세한 내용으로 종속성 해결자를 시뮬레이션하는 더 나은 방법을 보여줄 수 있습니까?
왜 모든 의존성입니까? 모든 패키지에 대해 한 번에 아래 명령의 출력을 확인하고 싶습니다.
apt-cache policy <all-dependencies>
apt-get -s install <all-dependencies>
libcgmanager
종속성이 있습니까? 반복적으로 종속성을 나열하는 것을 언급했습니다. 시도 했습니까 apt-rdepends
?
wine
하거나 영향을받는 다른 패키지 를 설치하려고하면 어떻게됩니까 -o Debug::pkgProblemResolver=yes
?
backports
버전 이 필요 합니까?