Yum
分解共享庫文件的 rpm 標識符
如果我執行類似:
rpm -q --fileprovide foo-1.0.0-0.x86_64
我得到一個文件列表,其中一些在右側有一個標識符,例如:
/usr/lib64/bar.so.4 bar.so.4()(64bit)
據我所知,這些標識符似乎有 3 個組件,包括 SONAME、()、(CPU-ARCH)。但是,我在網上的任何地方都找不到這些組件的正式名稱,也找不到您所說的右側標識符。為什麼有一個空的(),裡面可以有什麼值?這一切似乎都遵循某種約定,只是不知道它是什麼……
RPM 使用 soname 跟踪庫,就像 ELF 連結器/載入器一樣。
當將版本符號添加到 glibc 時,RPM 在第一組括號內附加了唯一版本。有關許多範例,請參見“rpm -q –fileprovide glibc”。
添加 multilib(同一系統上的 32 位和 64 位庫)時,會附加一個“(64 位)”標記以進行區分。
不幸的是,溝通不暢導致在沒有版本符號的庫中添加了一個空的“()”。原則上,符號版本會出現在空的“()”中,但除了 glibc 之外,很少有庫使用符號版本控制。