作者neca (寻找一片海洋)
看板mud
标题[心得] Ubuntu + ES2lib 架站(1)
时间Thu Jan 24 17:16:22 2013
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
1F:推 kyoe :我昨天也想写第一次架站就上手说-.- 1.163.7.248 01/24 17:44
2F:→ laechan :./driver /mud/bin/es2.conf & 210.61.157.53 01/24 17:48
※ 编辑: neca 来自: 210.66.174.184 (01/24 18:25)
3F:推 saxontai :推分享。不过 Ubuntu 版本比较建议装 111.80.105.88 01/24 23:50
5F:推 hakman :32bits or 64 bits? 119.14.102.184 01/28 23:28
6F:→ neca :为了让情况不复杂 先用32bit 210.66.174.184 01/29 13:12