作者WalkingIce ( 杀手哥吉拉 13)
看板mud
标题Re: [问题] 关於在ubuntu架设MUD的问题
时间Wed Dec 20 23:58:06 2023
※ 引述《dsnsid (大颗寿司)》之铭言:
: 我爬了一些文,也google过,但找不到问题的解答。
: 因此上来请问各位,希望能帮助我解决这个问题。
: 我在github 下载了ES2的mudlib。
: https://github.com/taedlar/es2_mudlib
: 然後使用他推荐的neolith作为我的LPmud drivers。
: https://github.com/taedlar/neolith
: 我照着档案内install的指引。
: 在我新安装的ubuntu 版本22.04.3 LTS 里面
: $ sudo apt install build-essential
: $ sudo apt install libtool
: $ sudo apt install gettext
: $ sudo apt install bison
: 到这边都没有问题。
: 接下来,在build的时候,一样跟着说明操作。
: $ ./bootstrap
: $ ./configure
: $ make
: 但没有在他所说的资料夹内(src)找到 名为neolith的执行档。
: 於是我试着把它建立在别的资料夹,照着他的指示。
: $ ./configure --prefix=/home/mud/local --disable-shared
: $ make install
: 虽然看到执行档,但是没有办法执行。
: 直接key入neolith 也说没有这个指令。
: 真的找不到解答,所以上来请益,希望可以帮帮我解决这个问题。
: 谢谢看到这里的各位。
我刚刚试着在 docker 里面编译,有看到
东 方 故 事 Ⅱ
天 朝 帝 国
应该是有成功编译,在这边记录一下我的作法
因为我现在手边的电脑是用 Mac,所以我是抓下 debian 的 docker image
原则上应该跟用 ubuntu 没什麽差别
1. Clone source code
我都假设在 /tmp 底下做事,你可以换到其他目录
$ mkdir /tmp/mud
$ cd /tmp/mud
$ git clone
https://github.com/taedlar/neolith.git
$ git clone
https://github.com/taedlar/es2_mudlib.git
2. Prepare docker container
如果是用 Ubuntu 的人,可以直接跳过这段
# 抓下 debian image
$ docker pull debian
# 用 debian image 跑起一个 container,并且把本机的 4444 连到 4000
# 因为接下来在 container 里面要把 mud 跑在 4000 port
# 把这个 container 命名为 es2
$ docker run -dit --name es2 -p 4444:4000 debian
# 把刚刚 clone 的原始码放进 docker 里面
$ docker exec es2 mkdir -p /tmp/mud
$ docker cp neolith es2:/tmp/mud
$ docker cp es2_mudlib es2:/tmp/mud
# 进入那个 docker container,并且移动到工作目录 /tmp/mud
$ docker exec -u 0 -it es2 /bin/bash
$ cd /tmp/mud
到这边应该已经开始准备编译了
3. Start compiling
# 用 debian/ubuntu 系统的人,应该用 aptitude 安装就可以了
$ sudo aptitude install build-essential libtool gettext bison
# 用 docker 的人,请先更新再安装
# 因为之前进入 container 时已指定 uid 为 0,所以已经是 root 权限
$ apt-get update
$ apt-get install build-essential libtool gettext bison
# 先编译 driver
$ cd neolith
$ ./bootstrap
# 用 prefix 决定接下来编译完之後要把东西放在那里
$ ./configure --prefix=/tmp/mud/driver
$ make
$ make install # 一切顺利的话,东西就在 /tmp/mud/driver 底下
# 移动到 es2_mudlib 修改 conf 档
$ cd ../es2_mudlib
$ cp neolith.conf my.conf
编辑 my.conf,修改 MudlibDir 这一行,指定我们 clone 下来的路径
MudlibDir /tmp/mud/es2_mudlib/mudlib
# 用 docker 的人,可以先在本机上编辑完之後再 copy 过去
$ docker cp my.conf es2:/tmp/mud/es2_mudlib/
4. Run
# 刚刚把东西安装到 /tmp/mud/driver 底下
# 现在就用刚刚安装的执行档来读入 my.conf
$ /tmp/mud/driver/bin/neolith -f my.conf
# 本机是 Debian/Ubuntu 的人,应该连上预设的 4000 port 即可
$ telnet localhost 4000
# 像我一样用 docker 的人,则是连上本机的 4444
# 让 docker 把你 forword 到 container 里面的 4000
$ telnet localhost 4444
虽然有跑起来,希望上面的手打指令没有 typo
如果我有写错什麽麻烦请提醒我,让我修改
我尽量把每个能客制化的参数都用不同的路径
希望这样能让你比较好理解
--
有一天小明跟朋友打牌,有张牌不小心掉进水里。此时女神出现了
女神:「你掉的是这张红中,还是这张白板?」
小明:「都不是,我掉的是青发。快还我吧大婶,我缺那张就听牌了」
女神:「.................(不爽)」
「你真是诚实的好孩子,红中跟白板都送你吧」
於是小明就相公了。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.133.210.243 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/mud/M.1703087890.A.550.html
※ 编辑: WalkingIce (220.133.210.243 台湾), 12/21/2023 00:00:29
1F:推 kyoe : 厉害, 顺便做个 Dockerfile XD? 12/21 08:41
2F:→ nutelld : kyoe大 顺便来个圣诞活动XD? 12/21 20:09
3F:→ glo6e : 推 12/26 13:42
4F:推 tsetsethatha: 厉害! 12/30 20:47
5F:推 dsnsid : 谢谢分享 :) 01/02 11:37