[心得] Ubuntu + ES2lib 架站(1)
0、寫在前頭
目前仍在學習架設及深入了解運作原理。
在這期間感謝 laechan撥空指導及經驗傳授。
感謝gasbomb 在本版(ptt mud)張貼使用Ubuntu架站心得分享。
一、準備工具
OS: Ubuntu 12.10
MUDOS: FluffOS 2.24
MUDLIB: ES2_lib.v1.3b
1) 有空機器就直接在機器上安裝Ubuntu,我是用VMPlayer安裝一個Linux虛擬機。
這步驟谷哥大神會教。
2) 在Ubuntu上安裝 zlib dev
apt-get install zlib1g-dev
3) 將抓下來的FluffOS 解開,放在工作目錄下。
1. mkdir /mud
2. mv fluffos-2.24.tar /mud
3. tar -xvf fluffos-2.24.tar
4) 接下來要開始編譯fluffos
1. cd /mud/fluffos-2.24
2. 改編options.h(or local_options)
在fluffos-2.24底下已經有很多options.h的範本,但是它們的名稱都是用
local_option開頭,例如local_options.tmi2
我們可以使用這些範本做改寫,改寫完之後再將檔名改成"local_options"
這樣等等在編譯的時候,會直接採用我們改寫好的local_options檔
這邊要注意的是,每一個mudlib都會使用不同的local_options,最好的方
法,就是拿mudlib裡面所附的options.h來直接使用,但是有些mudlib並不
會附上這個檔案,這時候就要靠自己翻文件或是不停的TRY&ERROR。
我在ES2網站上抓的MUDLIB並沒有附這個文件,於是我在谷哥上又花了一些
時間找十多年前被採用的options.h檔。
比較重要的option如下:
#define DEFAULT_PRAGMAS
#define PACKAGE_UIDS
#define AUTO_SETEUID
#define AUTO_TRUST_BACKBONE
#define PROG_REF_TYPE
#define CALLOUT_CYCLE_SIZE
#define CFG_MAX_GLOBAL_VARIABLES
#define ALLOW_INHERIT_AFTER_FUNCTION
黃色:DEFAULT_PRAGMAS有一些不同的屬性可以做開關,這關係到
MUD在執行的時候的行為,在mudlib裡面可以找到"#pragma"關鍵字,
它的後面會帶有參數,就根據你mudlib裡有的參數去做這個開關的設
定。而PRAGMA_WARNINGS這個開關會讓你的mud執行時吐出warning
message,可以先把它給關掉。
紫色:這三個是跟UID有關,我是都把它給打開。不然跑ES2lib會
有錯誤。
藍色:在編譯fluffos時會出現錯誤訊息,根據錯誤訊息去增減。
紅色:這一個在我抓來的ES2 options.h裡面沒有,但是不加載這
個參數,會造成mudlib運作時,繼承物件錯誤
我這幾個參數的設定如下:
#define DEFAULT_PRAGMAS PRAGMA_SAVE_TYPES + PRAGMA_STRICT_TYPES +
PRAGMA_SAVE_BINARY
#define PACKAGE_UIDS
#define AUTO_SETEUID
#define AUTO_TRUST_BACKBONE
#define PROG_REF_TYPE int
#define CALLOUT_CYCLE_SIZE 512
#define CFG_MAX_GLOBAL_VARIABLES 256
#define ALLOW_INHERIT_AFTER_FUNCTION
3. 改編好local_options之後,開始編譯工作。
4. ./build.FluffOS
5. make
6. make install
7. 在步驟4~5可能會有錯誤,請根據錯誤訊息退回第2步修改。
如果一切順利,就會在/mud底下產生"bin"資料夾,並將執行檔放到bin下。
5) 將ES2lib解壓到你要運行的目錄下,我是將它放在/mud/mudlib
1. tar -zxvf /tmp/ES2_lib.v1.3b.tar.gz
2. mv mudlib /mud
6) 設定mudlib config
1. 將/mud/mudlib/adm/etc/es2.conf copy 到 /mud/bin
cp /mud/mudlib/adm/etc/es2.conf /mud/bin
*這步可以不做,只要執行時讓/mud/bin/driver吃得到config就行
放在執行目錄下方便管理
2. 修改/mud/bin/es2.conf
a) name: 你mud的名稱,可以中文可以英文
b) external_port_1: telnet xxxx
xxxx請填入你想給人連線的port number
c) mudlib directory : 你的mudlib放的位置
請填入絕對路徑,這裡的例子是:
mudlib directory : /mud/mudlib
d) binary directory : 你的mud執行檔的位置
請一樣填入絕對路徑,這裡的例子是:
binary directory : /mud/bin
e) 其它請依需求修改
3. 修改 /mud/mudlib/include/globals.h
a) 將第一個#define拿掉:
//#define MUD_NAME
不然執行的時候會有重覆命名的錯誤
b) MUD_PORT: 請對應上面的external_port_1 設定
7) config 設定好之後,令人開心的時候就到了。
接下來只要執行 "/mud/bin/driver /mud/bin/es2.conf" 這串指令就ok了
如果有那麼簡單,我就不用寫這篇騙P幣了:(
下一篇是運行MUDLIB的除錯篇....
to be continue...
補充:
在Ubuntu裡面我有額外安裝這幾個套件,如果編譯出現問題可以試看看有沒有幫助:
apt-get install build-essential
apt-get install bison
apt-get install dos2unix
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.66.174.184
推
01/24 17:44, , 1F
01/24 17:44, 1F
→
01/24 17:48, , 2F
01/24 17:48, 2F
※ 編輯: neca 來自: 210.66.174.184 (01/24 18:25)
推
01/24 23:50, , 3F
01/24 23:50, 3F
推
01/24 23:54, , 4F
01/24 23:54, 4F
推
01/28 23:28, , 5F
01/28 23:28, 5F
→
01/29 13:12, , 6F
01/29 13:12, 6F
mud 近期熱門文章
PTT遊戲區 即時熱門文章