2018-03-06

Critcl and TCLLIBPATH

critcl-spec


在最近使用的過程中,我意外的發現我之前並沒有全部搞定。在最後編譯 md5c 的時候沒有成功,只是 openSUSE build service 還是成功的建立 RPM,所以可以使用部份的功能。

經過研究 critcl 的安裝過程,在 RPM spec 加入下列的修正:
+export TCLLIBPATH=" %{buildroot}/usr/lib64/tcl/critcl-app3.1.17 %{buildroot}/usr/lib64/tcl/critcl3.1.17 \
+%{buildroot}/usr/lib64/tcl/dict841 %{buildroot}/usr/lib64/tcl/lassign841.0.1 \
+%{buildroot}/usr/lib64/tcl/lmap841"


在安裝過程中,Critcl 會複製本身的套件到 Tcl library 目錄下,所以最後的步驟編譯 md5c 的時候,所有需要的套件都可以被 Tcl 找到。

而製造 RPM 的過程中,套件會被複製到 buildroot 目錄下,所以在這個時候 Tcl 會找不到需要的套件。因此只要讓 Tcl 可以找到套件,就可以完成編譯 md5c 的步驟。

在嘗試以後,既然我知道這些套件的安裝地點,就表示我可以使用設定 TCLLIBPATH 的方式解決,所以在安裝以前先設定環境變數,然後再執行安裝程式,這樣 Tcl 就會找到需要的套件完成編譯。

沒有留言: