[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: