내 패키지에 대한 종속성이 깨지는 것을 방지하는 방법은 무엇입니까?

내 패키지에 대한 종속성이 깨지는 것을 방지하는 방법은 무엇입니까?

이틀 전 나는 Calamares를 편집했습니다. 다음날 아침에 실행하려고 하면 다음과 같은 결과가 나타납니다.

/usr/bin/calamares: 공유 라이브러리 로드 오류: libkpmcore.so.11: 공유 객체 파일을 열 수 없습니다. 해당 파일 또는 디렉터리가 없습니다.

내 배포판 Manjaro가 kpmcore를 libkpmcore.so.12로 업데이트한 것을 확인했습니다.

내 초보자 질문은 다음과 같습니다. 내 Calamares 패키지로 이를 방지할 수 있는 가장 좋은 기회는 무엇입니까?

당신의 도움을 주셔서 감사합니다.

답변1

calamares또는 가 무엇인지 모르겠습니다 libkpmcore. 하지만 존재하지 않는 라이브러리를 해결하려고 하면 문제가 발생합니다.

Unix 라이브러리 이름 지정은 일반적으로 규칙을 따릅니다 lib{name}.so[.major[.minor[.patch]]](괄호는 []선택 사항을 나타냄).

이 명명 체계의 문제점은 lib{name}.so.0.1.0예를 들어 에 링크한 다음 라이브러리를 로 업데이트 하면 0.1.1파일이 로 바뀌기 때문에 더 이상 존재하지 않는다는 것입니다 lib{name}.so.0.1.1.

이 문제를 해결하기 위해 라이브러리에는 실제 공유 라이브러리에 대한 심볼릭 링크가 있습니다.

lib{name}.so.0.1 -> lib{name}.so.0.1.0

따라서 라이브러리가 업데이트되면 0.1.1심볼릭 링크는 여전히 존재하지만 새 버전을 가리키므로 이전 버전을 사용하는 프로그램은 계속 작동합니다.

lib{name}.so.0.1 -> lib{name}.so.0.1.1

귀하의 경우 라이브러리가 아닌 심볼릭 링크에 연결해야 합니다.

관련 정보