두 개의 적절한 패키지가 동일한 패키지의 서로 다른 두 버전에 의존하면 어떻게 되나요?

두 개의 적절한 패키지가 동일한 패키지의 서로 다른 두 버전에 의존하면 어떻게 되나요?

MyPackage.deb이는 2.20에서 더 이상 사용되지 않는 기능을 기반으로 하기 때문에 GTK 2.19에 의존하는 것으로 가정됩니다 . apt-get install TheirProgramOR을 원 dpkg -i TheirProgram.deb하고 GTK 2.21+가 필수 종속성인 경우 어떻게 되나요? 이런 상황에서는 어떻게 해야 합니까?

답변1

일반적으로 이전 버전과의 비호환성을 도입하는 새 버전의 라이브러리는 이름을 변경해야 합니다.새 패키지 이름 생성런타임 라이브러리의 경우(예를 들어GTK+ libgtk2.0-0libgtk2.1-0/또는 적합한 모든 경우). 이 규칙을 따르지 않고 주요 버전 업그레이드를 도입하는 것은 일반적으로 심각한 오류로 간주됩니다.

즉, 대부분의 경우 런타임 라이브러리와 종속 패키지를 동시에 설치할 수 있습니다. 즉, MyPackage.deb이전 라이브러리를 가져오고 TheirProgram.deb새 라이브러리를 가져옵니다. 이는 데비안 라이브러리 변환 중에 사용됩니다: 이전 버전과 호환되지 않는 새로운 라이브러리 버전을 업로드할 때,이행시작 후 모든 종속 패키지가 다시 빌드될 때까지 라이브러리의 두 버전을 모두 아카이브에서 사용할 수 있습니다.

물론, 일반적으로 배포판은 한 번에 하나의 라이브러리 버전만 전달하려고 하므로 이전 라이브러리는 아카이브에서 사라지지만, 설치되어 있는 한 MyPackage계속 작동해야 합니다. 하지만 이전 버전의 라이브러리에서는 보안 지원을 받을 수 없으며 계속 작동할 것이라는 보장이 없습니다(또는 다른 패키지가 이를 손상시키지 않을 것이라는 보장도 없습니다). 따라서 장기적으로는 문제를 해결하는 것이 더 나을 것입니다. MyPackageGTK+와 함께 사용되는 최신 버전에서 작동할 수 있습니다 .

GTK+의 새 버전이 이전 버전과 호환되는 경우 패키지 이름은 변경되지 않지만(버그 제외) 런타임 라이브러리는 계속 MyPackage작동할 수 있습니다. 따라서 설치 시 TheirProgramGTK+ 업그레이드가 강제로 수행되지만 MyPackage영향을 받아서는 안 됩니다. (실행 중에 더 많은 지원 중단 경고가 인쇄될 수 있습니다.)

관련 정보