
여러 배포판에서 손상된 패키지를 수정하는 방법에 대한 많은 답변을 보았는데, 이는 매우 도움이 되고 문제를 해결하는 것 같습니다. 그런데 패키지가 어떻게 파손되는지 궁금합니다.
명령 을 사용하는 파이프라인의 문제를 해결하고 있었는데 apt-get install
일부 종속성을 설치할 수 없었습니다. 몇 번의 재시도 끝에 파이프라인을 작동시킬 수 있었습니다. 그러나 솔루션을 검색하면서 apt-get에 매우 유용한 플래그가 있다는 것을 알았고 --fix-broken
이를 통해 내 문제가 해결되었습니다. 하지만 문제는 남아있습니다.문제는 무엇 이었습니까?--fix-broken
나에게 해결된 정확한 문제를 찾는 방법이 명확하지 않습니다 .
매뉴얼 페이지를 살펴보면 다음과 같은 몇 가지 일반적인 정보가 있습니다.
Fix; attempt to correct a system with broken dependencies in place. This option, when
used with install/remove, can omit any packages to permit APT to deduce a likely
solution. If packages are specified, these have to completely correct the problem. The
option is sometimes necessary when running APT for the first time; APT itself does not
allow broken package dependencies to exist on a system. It is possible that a system's
dependency structure can be so corrupt as to require manual intervention.
현재 시스템이 인스턴스화되어 있는 파이프라인의 경우, 이를 중단시킨 패키지에 어떤 일이 일어날 수 있었을까요? 이 플래그가 어떻게 작동하는지 자세히 알아볼 수 있는 사람이 있나요? 가장 구체적으로, 패키지가 어떻게 파손되는가?
답변1
해결되는 일반적인 중단은 apt install --fix-broken
종속성 누락입니다. 일반적인 방법저것발생은 dpkg
패키지를 직접 설치하는 데 사용됩니다. dpkg
종속성이 누락되었는지 여부를 알지만 누락된 종속성을 검색할 수 없으므로 패키지가 부분적으로 설치됩니다(설치되었지만 구성되지 않음). apt install --fix-broken
손상된 종속성을 해결하고 필요한 패키지를 설치합니다. 또는 종속성을 해결할 수 없는 경우 완전히 손상된 패키지를 제거합니다.
만약 너라면~이다직접 사용하는 dpkg
경우 일반적으로 사용하는 것이 더 좋습니다 apt install
. 로컬 패키지를 가리키면 설치 중에 종속성을 해결할 수 있습니다.
답변2
패키지는 종속성 목록이 포함된 소프트웨어의 일부일 뿐입니다. 시스템에 일부 비표준 설치(예: 소스에서 빌드)가 있거나 다른 설치가 중단되는 것을 방지하기 위해 특정 버전의 패키지를 고정한 경우("dpkg Hold" 또는 "dnf --exclude" 사용) , 모든 종속 패키지의 다른 상태가 필요한 패키지를 설치하려고 하면 실패하여 "손상된" 패키지가 발생합니다.
패키지나 시스템 상태에는 아무런 문제가 없을 수 있다는 점에 유의하는 것이 중요합니다. 원래 패키지는 손으로 컴파일한 것이라면 괜찮을 수도 있지만, 원래 패키지는 그렇지 않기 때문입니다.예상되는깨진 것으로 보입니다.