reltool使用入門

2021-08-30 07:39:08 字數 1976 閱讀 7964

[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...