天天看點

linux下ruby使用tcl/tk程式設計環境設定

正常情況下最新的ruby都是不帶tcl/tk選項編譯的,是以我們在運作tcl/tk代碼時都會發生找不到tk庫的錯誤。解決辦法很簡單隻要以tcl/tk選項編譯ruby即可。

這裡以ubuntu 15.04為例,前提是先安裝rvm;如果不用rvm也可以,不過要自己下載下傳源代碼回來編譯,不如一步到位用rvm省事。

首先到ActiveTcl官網下載下傳tcl:

<a href="http://www.activestate.com/activetcl/downloads">http://www.activestate.com/activetcl/downloads</a>

注意不要選擇最新的8.6.x,因為可能相容性有問題,需要下載下傳8.5.x或8.4.x:

linux下ruby使用tcl/tk程式設計環境設定

解壓後直接運作install.sh,如果要安裝到特定目錄可能要用sudo安裝。一路next之後,ActiveTcl和Tk就裝好了。

接下來可以使用rvm安裝最新的ruby,别忘了加上tcl/tk選項支援:

如果安裝失敗,很有可能是tcl/tk環境沒有設定好;可以進入對應ruby的源代碼目錄:

最後一句指令的輸出可以看到到底是由于神馬原因rvm reinstall ruby失敗。如果你的源代碼檔案裡沒有ext檔案夾表示源代碼不完整,需要下載下傳完整的ruby源代碼。

(PS:rvm不同版本ruby的可執行檔案放在~/.rvm/rubies目錄下;不同版本ruby的源代碼放在~/.rvm/src目錄下)

接下來我們可以寫一個測試代碼看看:

使用 ./1.rb運作,如果沒問題則應該有視窗出現:

linux下ruby使用tcl/tk程式設計環境設定

最後我們還要做點rvm的“收尾”工作:

(PS: Ruby/Tk 擴充

TkButton、TkCanvas 等都是 Tk 的核心小部件。除此之外,還有很多第三方的小部件,我們稱它們為“Tk 擴充”。這些第三方的 Tk 小部件往往比核心小部件更加強大。既然有“Tk 擴充”,就必然有“Ruby/Tk 擴充”與之對應。您可以在 Ruby 的安裝目錄中找到它們:目錄“RUBY_INSTALL_DIR\lib\ruby\RUBY_VERSION_NUMBER\tk”中是核心 Ruby/Tk 代碼,而目錄“RUBY_INSTALL_DIR\lib\ruby\RUBY_VERSION_NUMBER\tkextlib”中是 Ruby/Tk 擴充代碼。 )

繼續閱讀