[b]一、用例項感受一下reltool的功能[/b]
[b]先來看看典型的目錄結構[/b]
/home/arksea
|--client
|--ebin
|--include
|--nbproject
|--priv
|--src
|--test
[b]用reltool生成目標系統的過程為[/b]
1、寫配置檔案client.config
2、啟動erl,如果提示需要以smp方式啟動要加上引數erl -smp
3、生成目標系統
eshell v5.7.3 (abort with ^g)
1> =reltool:start_server().
2> reltool:create_target(server, "target").
ok3>
就這麼簡單,我們看看生成的目標系統的目錄結構
target
|--bin
|--erts-5.7.3
|--release
| |--0.1
| | |--client.boot
| | |--client.rel
| | |--client.script
| |--start_erl.data
|--lib
|--client-0.1
| |--priv
|--client-0.1.ez
|--erts-5.7.3.ez
|--kernel-2.13.3.ez
....
對,沒錯,所有的lib下的beam檔案都被打包到乙個.ez壓縮包中了,這對於嵌入到客戶端的系統來說是個好特性,啥時候再支援一下包認證就更棒了。
[b]二、部署描述檔案例項[/b]
看完了reltool的效果,現在來看看重點,也就是部署描述檔案client.config的結構
下面是這個例子的部署描述檔案,因為是嵌入到客戶端程式中所以要盡量小,剔除了比較多的東西,服務端系統通常無需使用如此複雜的包含規則。最終的target目錄裡只剩12m的東東,還算可以接受,當然如果你願意應該還是有不少東西是可以剔除的。
erlang的文件中有關於reltool部署描述的詳細解釋,說得很清楚了。需要說明的是別看reltool文件中列出了一坨的引數,不要害怕,基本上只要使用預設值就行了,比如以上的部署描述檔案只要這樣寫就能正常工作了:
是不是簡單了許多?只是打出來的包要大不少。
[b]三、部署描述檔案的編寫[/b]
下面對一些常用的引數進行解釋
1、首先是 lib_dirs,文件中說是系統依賴庫的位置,實際上你也應該把專案路徑的[color=red]父目錄[/color]填在這裡,這點[color=red]很重要[/color],否則就搜尋不到你的系統咯。比如這裡,專案client所在的父目錄是/home/arksea,[b]可以填寫相對路徑比如../server[/b]
2、檔案包含規則有一系列的引數,這些引數都支援正規表示式
[list]
[*][b]sys[/b]是指erlang安裝目錄下的檔案(除了lib目錄),如果你配置了root_dir則為你指定的目錄;
[/list]
強調一點,這裡的檔名都是相對路徑喲,寫正規表示式的時候要注意
[list]
[*]sys的起始位置是root_dir
[/list]舉個例子
root_dir/lib/mnesia-4.4.11/doc將被表示為
docroot_dir/lib/mnesia-4.4.11/examples/bench將被表示為
examples/bench
所以要剔除這些檔案應該這樣寫正規表示式:
.
Struts使用入門使用
struts 官網位址 那麼我們知道strtus只乙個web框架,用它可以來替換我們之前所用過的servlet技術,它幫我們封裝了 請求資料的功能,簡化國際化,簡化檔案上傳,後台資料校驗等等。既然使用它,我們先來看下它執行的過程 乙個請求在struts2框架中的處理分為以下幾個步驟 1.客戶端發出乙...
Mysql入門使用
設定遠端使用者root密碼 mysql update user set password password 12345 where user root and host 查詢所有使用者 select user,host,password from mysql.users 遠端登入 mysql h i...
Linux cmake入門使用
linux cmake guide 由於除錯需要因此研究了一下cmake這個誇平台的編譯工具的使用方法.1.本人的機器為ubuntu 10.04,在連網的情況下直接在終端輸入 root zsh linux apt get install cmake 安裝完畢之後可以在 var cache apt a...