이틀 전 나는 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
귀하의 경우 라이브러리가 아닌 심볼릭 링크에 연결해야 합니다.