다음과 같은 것을 실행하면:
rpm -q --fileprovide foo-1.0.0-0.x86_64
파일 목록을 얻었고 그 중 일부는 오른쪽에 식별자가 있습니다. 예를 들면 다음과 같습니다.
/usr/lib64/bar.so.4 bar.so.4()(64bit)
내가 아는 한, 이러한 식별자에는 SONAME, (), (CPU-ARCH)를 포함하여 3개의 구성 요소가 있는 것 같습니다. 그러나 온라인에서 이러한 구성 요소의 공식 이름이나 귀하가 말하는 오른쪽 식별자를 찾을 수 없습니다. 빈 ()이 있는 이유는 무엇이며 그 안에 어떤 값이 포함될 수 있나요? 모든 것이 어떤 관례를 따르는 것 같은데, 그게 뭔지 모르겠어요...
답변1
RPM은 ELF 링커/로더와 마찬가지로 soname 추적 라이브러리를 사용합니다.
버전이 지정된 기호가 glibc에 추가되면 RPM은 첫 번째 대괄호 세트 내에 고유 버전을 추가합니다. 많은 예를 보려면 "rpm -q --fileprovide glibc"를 참조하세요.
multilib(동일 시스템의 32비트 및 64비트 라이브러리)를 추가할 때 "(64비트)" 태그가 추가되어 구별됩니다.
불행하게도 잘못된 통신으로 인해 버전 기호 없이 라이브러리에 빈 "()"가 추가되었습니다. 원칙적으로 기호 버전은 빈 "()"로 표시되지만 glibc를 제외하고 기호 버전 관리를 사용하는 라이브러리는 거의 없습니다.