2012-06-15 62 views
3

我正在尋找一種在OS X上部署獨立Ruby-Tk桌面應用程序的直接方法。在Mac上部署桌面Ruby GUI應用程序的所有現有選項(例如standaloneify.rb)假設你正在使用RubyCocoa或MacRuby,並緊密地綁定到Xcode/Interface Builder項目結構;或者,也可以通過Platypus包裝一個不涉及部署整個Ruby運行時的簡單腳本。我找到的其他現有選項(rubyscript2exe,ocra,crate)都不支持Mac和/或支持Ruby 1.9。在OS X上部署Ruby-Tk應用程序

我希望有人能指點一個shell腳本或Ruby腳本執行以下操作:

  1. 曲目所有依賴/寶石中的應用程序。
  2. 將Ruby解釋器和依賴項複製到應用程序包中。
  3. 在Ruby解釋器和所有dylib上運行install_name_tool以使它們可移植。

應用程序包可以是Platypus創建的東西,使用Cocoa存根啓動器,或者甚至是shell腳本 - 我知道如何處理它們。我遇到的問題是將Ruby運行時以可移植的方式進行包裝。

http://weft-qda.rubyforge.org/svn/trunk/weft-qda/rake/rake_osx.rb有一個rakefile,它包含了我期望實現的任務,但是這個rakefile是我無法在我的Mac上運行的更大的構建結構的一部分。我對rakefile結構不夠熟悉,無法通過「ruby rake_osx.rb」甚至「rake」將它重構爲一個我可以運行的簡單腳本。

如果有人可以向我建議如何修改這個rakefile來獨立運行,或者指向另一個示例項目,甚至分享一些代碼,我將不勝感激。我正在開發的這個項目更適合Ruby而不是Python(Ruby中更好的庫支持),但是如果部署不起作用,我不會投入時間。 (Python比Ruby有更豐富的部署工具的傳統,這是我從未完全理解的東西)。

回答

0

事實上這有點晚,但是以經典的方式,因爲我找不到桌面應用程序部署工具對Ruby-TK在Mac上,我寫我自己:

ruby2app

ruby​​2app是一個簡單的命令行工具,通過類似的Mac工具,如py2app Python的啓發,捆綁了Ruby腳本與Ruby運行到獨立的Mac應用程序中。它讀取一個基本配置文件以找到適當的Ruby安裝,編譯一個嵌入Ruby解釋器的小型C程序,將整個Ruby安裝複製到應用程序包中,並將相關庫重新鏈接到主可執行文件。

它試圖爲Mac提供ocra和exerb爲Windows提供的內容。希望這會對其他人有用。

相關問題