2013-10-18 79 views
0

我們希望在我們的產品中包含RabbitMQ,它還需要Erlang OTP。我們不希望我們的客戶在安裝我們的產品之前安裝Erlang,並希望找到在我們自己的產品安裝程序中包含Erlang的方法。在COTS產品中捆綁Erlang OTP

有什麼策略可以做到這一點?我們希望支持Windows & Linux。目前我的理解是,在Windows上沒有Erlang的ZIP版本。因此,這裏是我的想法

  1. 包括Erlang的OTP安裝程序,並當我們的產品安裝程序運行
  2. 安裝二郎OTP踢它關閉,壓縮的安裝目錄,並有我們的產品安裝程序解壓縮它的客戶機
  3. 上。 。 。 ?

感謝您的任何建議。

編輯於10月21日

我想通了。當erl.exe啓動時,會爲分佈式erlang啓動一個名稱解析器守護進程(epmd.exe)。該exe文件的位置在/otp/install/path/bin/erl.ini中被硬編碼。

將otp安裝從C:\ Program Files複製到我選擇的目錄後,我必須更新erl.ini文件以反映empd進程路徑中的更改。之後,我從c:\ Program Files中卸載了OTP,並能夠從複製它的目錄中啓動erlang。

蘭吉特

+0

我認爲應用程序wings3d是按照您所期望的方式製作的(它不使用OTP,而是從頭開始安裝),您可以在這裏查看源代碼:[link](http:// sourceforge .net/projects/wings/files/wings/1.5.1 /) – Pascal

+0

我安裝了wings32,看到安裝程序簡單地提取erl.exe和一堆編譯後的erlang程序。我將安裝erlang otp並觀察它是否寫入了哪些註冊表項。 –

回答

0

另一個是用於發佈標準的方法選擇是使用rebar。這捆綁了OTP,它比複製已安裝的Windows二進制文件更簡潔,並且更改erl.ini或更改linux中的erl腳本。

+0

對不起,我花了這麼長時間迴應。到目前爲止,在我的有限閱讀中,rebar似乎是針對在erlang中編寫的應用程序的構建和依賴管理工具。它也預設了一臺機器上的Erlang OTP安裝。我試圖找出將Erlang OTP捆綁到COTS產品中的方式,因此它可以作爲RabbitMQ的依賴項。我會再讀一點關於螺紋鋼的信息,看看它是否符合法案。我不會有任何自定義的Erlang代碼。實質上,當我們的產品安裝完成後,我想設置一些東西,以便RabbitMQ能夠在Windows和Linux上解決出錯的路徑。 –