최근 Ubuntu 16.04에 패키지를 설치하는 명령을 실행했습니다.apt-get
% sudo apt-get install <package>
apt-get
설치할 수 없으며 일부 상태 메시지가 인쇄되었습니다. 마지막 줄은 다음과 같습니다.
[ output truncated... ]
E: Unable to correct problems, you have held broken packages.
내가 아는 한, apt에는 dpkg
패키지 설치 상태에 대한 선호도를 표현할 수 있는 패키지 태그 시스템이 있습니다.
다음 명령을 사용하여 이 목록을 볼 수 있습니다.
dpkg -l
따라서 결과 목록에서 "필수" 또는 "설치" 상태의 모든 패키지를 사용하여 다른 시스템에서 응용 프로그램의 설치 상태를 다시 생성할 수 있습니다.
하다손상된 패키지 보관이게 관련이 있나요? dpkg -l
즉, 패키지 상태에 표시된 패키지 설치 기본 설정을 apt-get
설치하면 최종 결과는 종속성 충돌이 발생합니까?
소유한다는 것은 무엇을 의미하는가?손상된 패키지 보관?
답변1
이 메시지는 apt가 아무 것도 변경하지 않았으며 해결하려는 손상된 패키지가 동일한 상태로 남아 있음을 나타냅니다. 이 경우 '보류'는 '유지'로 사용됩니다. 다시 말하면 다음과 같습니다.
문제를 수정할 수 없으므로 패키지는 변경되지 않은 상태로 유지됩니다.
답변2
다른 대답은 불완전하고 완전히 정확하지 않습니다.
dpkg
"보류" 상태가 있습니다. 기본적으로 이 상태는 최신 버전을 사용할 수 있더라도 시스템이 특정 상태의 패키지를 업그레이드하지 않기를 원한다는 것을 의미합니다. 이 상태는 수동으로만 설정할 수 있습니다. 이 상태의 패키지가 있는지 확인하려면 를 실행하세요 dpkg -l|grep ^h
. 출력이 생성되면 패키지가 보류됩니다. 이 상태의 패키지가 있고 업그레이드가 필요할 때 apt
표시되는 오류 메시지를 받게 됩니다 .
불행하게도 당신은반품apt
패키지를 보고 설치하고 싶지만 적절한 고정이나 기타 이유로 설치할 수 없는 경우 오류 메시지를 참조하세요. 이 상황은 특정 파일을 설치할 수 있는 권한을 부여하여(일시적으로?) 해결할 수 있습니다 apt
. 예를 들어 설치할 패키지 및 버전을 명시적으로 나열하거나 매개변수를 -t target-distribution
apt에 전달하거나 고정된 구성을 변경하여 해결할 수 있습니다.