libtabe naming convention
Hello,
目前 libtabe 的檔名是長這樣的:
libtabe-0.2.5.so.0.2.1
其中 0.2.5 是 libtabe 的 release number (也就是 libtabe-0.2.5 版),
而 0.2.1 是其 API version number, 這是來自 libtool 所建議的,為的
是維持各版的 libtabe 與其「應用程式」(如 xcin) 之間,在 run-time
dynamic link 時可以有適當的 compatibility。例如: 0.2.1 可以和 0.2.2,
但不能與 1.0.0 相容 .... 等。
就 library 的角度而言,其實 API version number 是比 release number
還要有意義的。例如下一版新出來的 libtabe 可能只修改了 tsi.src, 函
式庫本身完全沒變,自然函式庫本身是與前一版相容的。
然而,以目前的檔名命名規則:
libtabe-<release number>.so.<API version number>
會造成: 就算 API version number 不變,但每次一改變 release number,
就會造成與前一版不相容,而造成 dynamic link 的錯誤,錯誤的發生原因
純粹是因為 library 的「名字」不一樣了。為了避免此情況,我想最好的
方式還是將檔名的命名規則改回:
libtabe.so.<API version number>
也就是按照 info libtool 的建議。
那麼,如果我想知道目前系統的 libtabe 版本,怎麼辦呢?因為光看那些
.so 的檔名已經不準了 .... (用 rpm 或 deb 來查的不算 :-)) 為了解決
此問題,我將所有的 utilities: tsiadd, tsidel .... 等都加入了可以
顯示版本資訊的部分,例如,您只要執行:
tsiadd
就會列出:
tsiadd: libtabe-0.2.5
Usage: tsiadd -d <TsiDB> [-f input file -r -y]
-d <TsiDB> path to TsiDB
-f <input file> input file in plain text (default: stdin)
-r incorporate reference count (default: not)
-y incorporate yin data (default: not)
-v verbose output for debugging
如此就知道目前安裝的是 libtabe-0.2.5 版了。
以上的改變已進 cvs :-) 在此感謝 Roger So <roger.so@sw-linux.com>
兄的提醒 :-)
T.H.Hsieh
Reply to: