看板 mud 關於我們 聯絡資訊
※ 引述《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://www.ptt.cc/bbs/mud/M.1703087890.A.550.html ※ 編輯: WalkingIce (220.133.210.243 臺灣), 12/21/2023 00:00:29
kyoe : 厲害, 順便做個 Dockerfile XD? 12/21 08:41
nutelld : kyoe大 順便來個聖誕活動XD? 12/21 20:09
glo6e : 推 12/26 13:42
tsetsethatha: 厲害! 12/30 20:47
dsnsid : 謝謝分享 :) 01/02 11:37